我是新手,正在尝试进行简单的if-elif循环。它可以在代码的其他部分工作,但是此循环的作用就像没有用户输入。它甚至不会抛出错误代码,它只会运行第一个if-body,然后跳过elif。
我尝试使用if-else,但是效果相同。 我也尝试过包括代码而不是调用函数,没有区别。 这是我第一个发布的问题,因此请随时提出建议,以帮助他人更好地理解我。
#run loop for reroll
reroll = input("Reroll? Y or N:")
if reroll == "N" or "n":
Do_Not_Reroll()
elif reroll == "Y" or "y":
Reroll_user
答案 0 :(得分:3)
说if reroll == "N" or "n":
时,实际上是在执行语句
(if reroll == "N") or ("n")
。由于字符串在Python中是真实的,因此该等式的第二部分始终被认为是正确的。因此,表达式的前半部分将被忽略。
要纠正此问题,您需要再次指定变量:
if reroll == "Y" or reroll == "y":
除此之外,请确保Reroll_user
是Reroll_user()
(假设它是一个函数)。
答案 1 :(得分:1)
尝试一下:
reroll = input("Reroll? Y or N:")
if reroll == "N" or reroll == "n":
# do some thing
elif reroll == "Y" or reroll == "y":
#do some thing
您也可以这样:
if reroll in("N","n"):
#do some thing
elif reroll in("Y","y"):
#do some thing
答案 2 :(得分:1)
微调您当前的代码以执行您要执行的操作:
替代项1:
reroll = input("Reroll? Y or N:")
if reroll in ("N","n"):
Do_Not_Reroll()
elif reroll in ("Y","y"):
Reroll_user
替代2:
reroll = input("Reroll? Y or N:")
if reroll == "N" or reroll == "n":
Do_Not_Reroll()
elif reroll == "Y" or reroll == "y":
Reroll_user
替代3:
reroll = input("Reroll? Y or N:")
if reroll.lower() == "n":
Do_Not_Reroll()
elif reroll.lower() == "y":
Reroll_user