问题
如何阻止循环询问"输入字符串"再没有使用休息?感谢。
代码
# Remove Break
def main():
inp = 0
while inp <= 0:
inp = int(input("Enter Number: "))
if inp > 0:
string = ""
while string != "you" or string != "me":
string = input("Input string: ")
if string == "you":
stringYou(inp)
break
elif string == "me":
stringMe(inp)
break
def stringYou(inp):
sentence = "I love You"
print(sentence * inp)
def stringMe(inp):
sentence = "You love Me"
print(sentence * inp)
main()
答案 0 :(得分:0)
while string != "you" or string != "me":
这里的条件是tautology,这意味着它永远都是真的。
此变量string
有三个有趣的案例:
string
等于"you"
。第一个条件string != "you"
显然是错误的。然而,第二个不是:string != "me"
。 string
为"you"
,不等于"me"
。因此false or true
会为您提供true
。string
等于"me"
。使用相同的推理,除了相反的顺序外,我们得到的true or false
也是true
。string
是另一回事。这两个子条件都是正确的,因此true or true
给出了true
。因此条件总是正确的,而while条件永远不会自行停止。所以你必须打破才能摆脱它。
修复方法是简单地修复你的条件,使它们有意义并且循环正确地结束:
while string != "you" and string != "me":
注意and
:现在,仅当string
"you"
或"me"
时,循环才会继续。这相当于您的中断逻辑,当字符串成为这些字符串中的任何一个时,您停止迭代。
所以它现在看起来像这样:
string = ''
while string != "you" and string != "me":
string = input("Input string: ")
if string == "you":
stringYou(inp)
elif string == "me":
stringMe(inp)