Как исправить оператор if для работы со строками?

Я должен сделать игру "Рок-бумага-ножницы", но оператор 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 ответ

Решение

Для каждого из ваших случаев вы проверяете значение переменной по строке. Строка для каждого из них может быть "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): ")
Другие вопросы по тегам