我正在做一个登录系统。它要求用户回答问题(“你已经有账户了吗?”)虽然答案不是“是”还是“否”,但它应该继续询问。在
print('Welcome to the quiz!')
print('Do you already have an account? ')
have_acc = input()
while have_acc != ('Yes') or have_acc != ('No') or have_acc != ('yes') or have_acc != ('no'):
print('Please enter Yes or No')
have_acc = input()
输出
^{pr2}$
您的
while
-循环条件是有缺陷的,比如说我输入Yes
,它将从左到右计算条件并注意have_acc != ('Yes')
,但是由于它前面有一个or
关键字,它将计算其余条件——如果其中一个是True
,那么它将在while
循环中运行代码,这里的问题是have_acc != ('No')
将计算为True
为('Yes' != 'No') == True
,因此整个语句的求值将为True
,然后在循环中执行代码。在你需要做的是一个更干净、更简约的版本,它不容易出错,比如:
更规范的方法:
问题出在逻辑上。“是的”!='否',因此其中一个条件将始终被满足。我不熟悉python语法,从逻辑上讲,您需要的是:
在这一点上,任何一场比赛都是好的
相关问题 更多 >
编程相关推荐