Как исправить оператор if для работы со строками? - PullRequest
0 голосов
/ 05 октября 2018

Я должен сделать игру «ножницы из бумаги», но если операторы if не будут работать, когда я пытаюсь преобразовать ввод в строку с str(.....)

, я использовал здесь целые числа, чтобы убедиться, что код работает нормально, иначено он просто не будет работать со строками.

У меня также возникают проблемы с подчеркиванием ввода при запуске этого кода, как это сделать?

player_1 = str(input("Enter Player 1 choice (R, P, or S): "))
player_2 = str(input("Enter Player 2 choice (R, P, or S): "))


if player_1 == S and player_2 == S:
    print("A tie!")

elif player_1 == R and player_2 == R:
    print("A tie!")

elif player_1 == P and player_2 == P:
    print("A tie!")

elif player_1 == R and player_2 == 2:
    print("Rock beats scissors! Player 1 wins.")

elif player_1 == S and player_2 == R:
    print("Rock beats scissors! Player 2 wins.")

elif player_1 == 9 and player_2 == R:
    print("Paper beats rock! Player 1 wins.")

elif player_1 == R and player_2 == P:
    print("Paper beats rock! Player 2 wins.")

elif player_1 == S and player_2 == P:
    print("Scissors beat paper! player 1 wins.")

elif player_1 == P and player_2 == S:
    print("Scissors beat paper! player 2 wins.")

Я получаю эту ошибкукаждый раз, когда я запускаю код:

Enter Player 1 choice (R, P, or S): S
Enter Player 2 choice (R, P, or S): S
Traceback (most recent call last):
  File "D:\CP 104\**********\src\t03.py", line 16, in <module>
    if player_1 == S and player_2 == S:
NameError: name 'S' is not defined

Что я делаю не так?

1 Ответ

0 голосов
/ 05 октября 2018

Для каждого из ваших случаев вы проверяете значение переменной по строке.Строка для каждого из них может быть «R», «S» или «P», и в ваших операторах if вы должны записать их как

, например

if player_1 == "S" and player_2 == "S":

и т. д.

и, как сказал @jedwards, вы используете python3, а input () возвращает строку, поэтому обертка str () в первой и второй строках не нужна

Вы можете просто сказать

player_1 = input("Enter Player 1 choice (R, P, or S): ")
player_2 = input("Enter Player 1 choice (R, P, or S): ")
...