【发布时间】:2018-10-04 21:22:02
【问题描述】:
我必须制作一个石头剪刀布游戏,但是当我尝试使用 str(.....) 将输入转换为字符串时,if 语句不起作用
我在这里使用整数来确保代码正常工作,但它不能与字符串一起工作。
当我运行此代码时,我也无法在输入下划线,如何做到这一点?
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
我做错了什么?
【问题讨论】:
-
if 条件中的字符串周围缺少引号。您的
if语句需要是:if player_1 == 'S' and player_2 == 'S' -
如果您实际上使用的是 Python 3,则不需要
str(input(...))中的str。 -
替换
RPS92为'R''P''S''9'和'9'和'9'和你很好> -
下划线是一个单独的问题,与您的大部分代码无关。如果您想获得帮助,请遵循发布指南:首先查看如何下划线,进行尝试,然后然后适当地寻求帮助——如果它不起作用。
标签: python python-3.x if-statement undefined-variable