Хотя L oop не заканчивается, когда я вызываю свою функцию - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь получить ввод от пользователя, но пока l oop продолжается бесконечно. Вот мой код:

def player_Input():
    marker=""
    while marker != "X" or marker !="O":
        marker = input("Player-1: Please Choose X or O: ").upper()
    if marker == "X":
        print("X","O")
    else:
        print("O","X")

Когда я вызываю эту функцию, ввод не заканчивается и продолжается постоянно

Ответы [ 3 ]

2 голосов
/ 16 июня 2020

Идиома Pythoni c для проверки того, входит ли значение в набор допустимых значений: in / not in:

def player_Input():
    marker = None
    while marker not in ("X", "O"):
        marker = input("Player-1: Please Choose X or O: ").upper()

    if marker == "X":
        print("X", "O")
    else:
        print("O", "X")
2 голосов
/ 16 июня 2020

Измените or на and в то время как l oop:

def player_Input():
    marker=""
    while marker != "X" and marker !="O":
        marker = input("Player-1: Please Choose X or O: ").upper()
    if marker == "X":
        print("X","O")
    else:
        print("O","X")
0 голосов
/ 16 июня 2020

Попробуйте следующий код:

def player_Input():
    marker=""
    while marker not in['X','O']:
        marker = input("Player-1: Please Choose X or O: ").upper()
        if marker == "X":
            print("X","O")
        else:
            print("O","X")
...