【问题标题】:The loop doesn't stopped even when I used the same way to write it即使我使用相同的方式编写循环也不会停止
【发布时间】:2021-02-02 10:21:24
【问题描述】:

不工作

def player_input():
marker = ''
while 'X' or 'O' not in marker:
      marker = input("Choose between 'X' or 'O': ")
      print ("Please choose between 'X' or 'O'")
     
if marker == 'X':
    return ('X', 'O')
else:
    return ('O', 'X')
        

工作代码

def player_input():
marker = ''
while not (marker == 'X' or marker == 'O'):
    marker = input("Choose between 'X' or 'O': ")
    print ("Please choose between 'X' or 'O'")
     
if marker == 'X':
    return ('X', 'O')
else:
    return ('O', 'X')

我都跑了,但循环并没有先停止。两者有什么区别?

【问题讨论】:

  • 这能回答你的问题吗? How to test multiple variables against a value?
  • 你是第一个 while 循环被视为 while ('X') or ('O' not in number):。由于'X' 的计算结果为 True,因此循环将永远运行。
  • 在 "while 'X' or ..." 中,'X' 已经被解释为真,因此无论“or”后面的内容如何,​​整个条件都是真的。
  • 没有@jasonharper
  • 谢谢@Matthias 我明白了:)

标签: python python-3.x python-2.7 while-loop python-requests


【解决方案1】:

你有缩进错误。 if 语句不在循环中。试试这个代码。 while 循环只运行一次,因为你在 if 语句中使用了 else

def player_input():
    marker = ''
    while not (marker == 'X' or marker == 'O'):
        marker = input("Please choose between 'X' or 'O' >")
        if marker == 'X':
            return ('X', 'O')
        else:
            return ('O', 'X')
print( player_input() )

【讨论】:

    猜你喜欢
    • 2023-01-07
    • 2016-03-14
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 2022-11-29
    • 2015-10-23
    相关资源
    最近更新 更多