如何使这种构造更简单,比如python中的类或函数?

2024-10-01 22:27:13 发布

您现在位置:Python中文网/ 问答频道 /正文

print(
    "1. Engine block \n"
    "2. Pistons \n"
    "3. Crankshaft \n"
    "4. Camshaft \n"
    "5. Cylinder head \n"
    "6. Connecting Rod \n"
)

part = int(input("Choose an engine part to show you details about it: "))

if part == 1:
    print("Engine block")
elif part == 2:
    print("Pistons")
elif part == 3:
    print("Crankshaft")

我有26条这样的语句,我想知道我是否可以让类变得更简单,
函数、列表或其他我找不到的方法


Tags: inputblockheadengineintprintpartelif
3条回答

您可以创建一个带有问答的类。还可以在类中添加函数来检查输入是否与答案相同,并相应地返回结果。您可以使用正则表达式从问题文本中获取正确答案的值

如果你真的想要一个额外的功能

print(
    "1. Engine block\n"
    "2. Pistons\n"
    "3. Crankshaft\n"
    "4. Camshaft\n"
    "5. Cylinder head\n"
    "6. Connecting Rod\n"
)

def list_dict():
    return {1: "Engine block", 2: "Pistons", 3: "Crankshaft"}

def ans(part):
    return list_dict()[part]


part = int(input("Choose an engine part to show you details about it: "))
print(ans(part))

我建议使用类似以下内容:

def info_about(parts):
    info = list(parts.values())
    print("\n".join(f"{i+1}.\t\t{name}" for i, name in enumerate(parts)))

    print()
    while True:
        part = input("Choose an engine part to show you details about it: ")
        if not part.isnumeric():
            print("Please enter a valid number")
            continue

        part = int(part)
        if part > len(info) or part < 1:
            print("Please enter a valid number")
            continue
        break

    print(info[part-1])

parts = {
    "Engine block":         "Info about engine block",
    "Pistons":              "Info about pistons",
    "Crankshaft":           "Info about crankshaft",
    "Camshaft":             "Info about camshaft",
    "Cylinder head":        "Info about cylinder head",
    "Connecting Rod":       "Info about connecting rod",
}

info_about(parts)

现在检查输入以确保它是有效的-它是数字,并且介于1和零件数之间

相关问题 更多 >

    热门问题