猿问

python的用户输入验证

我有一个非常简单的问题,我似乎无法找到答案,而且我对 python 非常陌生。我需要检查用户输入以查看用户是否输入了四个操作之一。操作是'^'、'&'、'|'和'q'退出。如果用户没有输入有效的操作,将再次提示用户,因此需要一个 while 循环,有没有办法在一行中测试所有操作?这是我到目前为止的代码


    operation = input("enter an operation to be used\n")

    print('operation chosen:', operation)

    error = ("please enter |, &, ^, or q" )

    while operation != '&' 

    print(error)


弑天下
浏览 254回答 3
3回答

慕娘9325324

此设置将只接受(^&|q)循环中的输入将循环直到用户输入这些选择,开始初始化operation为不在列表中的值以启动循环。operation = 'x'while operation not in ('^&|q'):    operation = input('Enter operation from "^%|q": ')print('Operation chosen: {}'.format(operation))Enter operation from "^%|q": aEnter operation from "^%|q": sEnter operation from "^%|q": dEnter operation from "^%|q": ^Operation chosen: ^此路由将执行相同操作并提示用户Invalid消息,尽管此路由需要在循环初始化之前输入operationoperation = input('Enter operation from "^&|q": ')while operation not in ('^&|q'):    operation = input('Invalid entry. Please choose from "^%|q": ')print('Operation chosen: {}'.format(operation))

Helenr

欢迎来到您的 Python 之旅。这是一种使用递归和函数测试用户输入的方法,这对大型项目以及其中一些变量可能发生变化的项目很有帮助:def checkinput(userinput):    if userinput in ('|^&q'):        return userinput    else:        loopinputline = input("please enter |, &, ^, or q\n" )        return checkinput(loopinputline)operation = str(input("enter an operation to be used\n"))finalinput = checkinput(operation)print('operation chosen:', finalinput)

12345678_0001

您可以将所有有效操作存储在一个数组中,并根据该数组检查输入;正确的输入应该打破循环,不正确的输入应该引发错误并再次循环。下面的示例代码allowd_operations= ['|','&','^', 'q' ]operation = ''while True:    operation = input("enter an operation to be used\n")    if operation in allowd_operations:        # correct input        break    print('operation chosen:', operation)    error = ("please enter |, &, ^, or q" )    print(error)
随时随地看视频慕课网APP

相关分类

Python
我要回答