Python代码输入验证字典

2024-06-23 18:36:45 发布

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

我刚刚创建了一个python字典,它是可执行的。例如,如果有人在里程表读数中输入文本而不是数字,如何验证用户输入以给出异常错误?下面是代码。感谢你的反馈团队。在

Auto_details = {'Car brand': input('Car brand:'),
                'Car model': input('Car model:'),
                'Model Year': input('Model Year:'),
                'Starting odometer reading': int(input('Starting odometer reading:')),     
                'Ending odometer reading': int(input('Ending odometer reading:')),
                'Miles per gallon': int(input('Miles per gallon:')),
               }
print(Auto_details)
input ('Thank you. Please press Enter to exit')

Tags: autoinputmodelendingdetailscaryearint
2条回答

你可以这样做:

def get_number(hint):
    while True:
        try:
            value = int(input(hint))
        except ValueError:
            print('Please input a number')
            continue

        if value<0:
            print('Please input a positive value')
            continue
        else:
            break
    return value

Auto_details =     {'Car brand': input('Car brand:'),
                   'Car model': input('Car model:'),
                   'Model Year': input('Model Year:'),
                   'Starting odometer reading': get_number('Starting odometer reading:'),     
                   'Ending odometer reading': get_number('Ending odometer reading:'),
                   'Miles per gallon': get_number('Miles per gallon:'),
               }
print(Auto_details)
input ('Thank you. Please press Enter to exit')

我没试过,但可能有用。在

Auto_details = {}
phrases=[
    ["Car brand",False], ["Car model",False],
    ["Model year",False],["Starting odometer reading",True],
    ["Ending odometer reading",True],["Miles per gallon",True]
]

for phrase in phrases:
    answer=input(phrase[0])
    if phrase[1]:
        while True:
            if answer.isdigit():
                answer=int(answer)
                break
            answer=input(phrase[0])
    Auto_details[phrase[0]]=answer

相关问题 更多 >

    热门问题