Python:验证用户';谁的输入?
我的变量Python:验证用户';谁的输入?,python,list,input,Python,List,Input,我的变量userAnswerList[]接受用户的输入,我需要验证用户的输入是否不是A,B,C,D 下面是我的代码,我想知道如何在(ABCD)范围内验证用户的输入,如果不打印错误消息 answerList = ["A","C","A","A","D","B","C","A","C","B","A","D","C","A","D","C","B","B","D","A"] userAnswerList = [] correct = 0 incorrect = 0 def main():
userAnswerList[]
接受用户的输入,我需要验证用户的输入是否不是A
,B
,C
,D
下面是我的代码,我想知道如何在(A
B
C
D
)范围内验证用户的输入,如果不打印错误消息
answerList = ["A","C","A","A","D","B","C","A","C","B","A","D","C","A","D","C","B","B","D","A"]
userAnswerList = []
correct = 0
incorrect = 0
def main():
for i in range(20):
i = i + 1
answer = input("Please Enter the answer for Question %d:" %i)
userAnswerList.append(answer)
numCorrect = [i for i in userAnswerList if i in answerList]
if len(numCorrect) > 15:
print("Congratulations You have passed the exam!")
elif len(numCorrect) < 15:
print("Failed....Please try again")
correct = len(numCorrect)
incorrect = 20 - correct
print("Correct Answers:",correct,"/ Incorrect Answers:",incorrect)
main()
answerList=[“A”、“C”、“A”、“A”、“D”、“B”、“C”、“A”、“C”、“B”、“A”、“D”、“C”、“A”、“D”、“C”、“B”、“D”、“A”]
userAnswerList=[]
正确=0
不正确=0
def main():
对于范围(20)内的i:
i=i+1
答案=输入(“请输入问题%d的答案:”%i)
userAnswerList.append(应答)
numCorrect=[i代表用户应答列表中的i,如果我在应答列表中]
如果len(numCorrect)>15:
打印(“祝贺你通过考试!”)
elif len(numCorrect)<15:
打印(“失败…请重试”)
正确=len(numCorrect)
不正确=20-正确
打印(“正确答案:,正确,”/错误答案:,不正确)
main()
您已经很好地使用了中的语法。如果您只想检查答案是A、B、C还是D,那么下面的代码可以工作
if not answer in ['A', 'B', 'C', 'D']:
print("Invalid answer.")
此脚本还可以从Python的语法中获益,例如:
if answer not in 'ABCD':
print("Invalid answer.")
这里的正则表达式似乎有些过分了。您可以只使用内置功能来解决此问题。在Python中,使用不在[…]中回答比使用不在[…]中回答更清楚。
如果这些是单字母答案,您甚至可以使用'ABCD'
而不是['A','B','C','D']
。是的,有单字母答案。。那么我是否应该尝试[ABCD]?您可以通过'ABCD'
或['A','B','C','D']
测试成员资格(答案是否在您比较的对象中)。这个决定纯粹是一种风格,因为他们会给出相同的答案。如果你的下一个问题是“好的,我知道如何检查一个变量是B C还是D。现在我如何返回并要求用户重试?”,这可能对你有用:感谢链接;我将尝试“尝试例外”
import re
if re.match("^[ABCDabcd]$", answer) is not None:
# Matched!
else:
# Didn't match!