我的代码是:
def nameAndConfirm():
global name,confirm
print("What is your name? ")
name = input()
str(name)
print("Is",name,"correct? ")
confirm = input()
str(confirm)
print(confirm)
if confirm.upper() == "Y" or "YES":
classSelection()
elif confirm.upper() == "N" or "NO":
nameAndConfirm()
else:
print("Valid answers are Y/Yes or N/No!")
nameAndConfirm()
nameAndConfirm()
对这段代码的评论也很好。我知道它非常狡猾,我知道如何在某些方面使它更短,但我试图让我的if-elif-else工作。我不知道我还能做什么,因为我已经尝试了我所知道的一切。此外,我在上面的代码中缩进了4个空格。**编辑:对不起,错误是它总是运行“如果”,它永远不会超过第一个如果行,无论你输入什么进行确认
2条答案
按热度按时间5m1hhzi41#
条件
confirm.upper() == "Y" or "YES"
和另一个条件的计算结果与您预期的不同。或
您的条件相当于:
这是千真万确的:
在另一个注解中,
和
不要做任何事情。函数返回的值不会保存在任何地方,
name
和confirm
也不会改变。而且,它们开始就是字符串,因为它们保存的是input()
的返回值。dgiusagp2#
这不是在if条件中实现“or”的正确方式:
确认.上限()==“Y”或确认.上限()==“YES”
应该是这样