我查看了有关此主题的其他帖子,但仍然无法找到我在开始时做错的事情。我使用的是python,ruby和java,而不是摇滚,纸张和剪刀。它还没有接近完成。我还没有进入if循环,但如果用户输入的内容不同于“python”,“ruby”或Java“,我希望它也打印”游戏结束了。“我收到错误说字符串我输入的内容没有定义。有人可以引导我朝着我需要去的方向前进吗?我认为在比较userInput和gameList时我很困惑,因为gameList是一个列表。
import random
def pythonRubyJava():
gameList = ["python","ruby","java"]
userInput = input("python, ruby, or java?:")
randomInput = random.choice(gameList)
if userInput != gameList:
print "The game is over"
我找到了那个部分。我需要将“python”,“ruby”和“java”存储为变量才能继续吗?或者你会去哪里?
import random
def pythonRubyJava():
gameList = ["python","ruby","java"]
userInput = raw_input("python, ruby, or java?:")
randomInput = random.choice(gameList)
print randomInput
if userInput not in gameList:
print "The game is over"
if userInput == "python" and randomInput == "python":
print "stalemate"
if userInput == "ruby" and randomInput == "ruby":
print "stalemate"
if userInput == "java" and randomInput == "java":
print "stalemate"
我没有得到相同的答案,我希望能够再次运行游戏而不是打印僵局来结束游戏,重新开始。我知道我必须删除“打印”僵局“”但我只想表明这一点。
答案 0 :(得分:3)
错误发生在第4行,它读取用户输入。问题是input(...)
在从命令行读取后解析表达式,因此必须引用字符串。
改为使用raw_input(...)
:
userInput = raw_input("python, ruby, or java?:")
答案 1 :(得分:2)
您的条件将始终为false,因为您正在将字符串与列表进行比较。你想要做的是检查字符串里面列表,如下所示:
if userInput not in gameList:
print "game is over"
答案 2 :(得分:1)
您需要使用raw_input()
代替input()
。
import random
def pythonRubyJava():
gameList = ["python","ruby","java"]
userInput = raw_input("python, ruby, or java?:")
randomInput = random.choice(gameList)
if userInput != randomInput:
print "The game is over"
使用input()
时,输入必须由用户正确格式化,即带引号的“java”。
答案 3 :(得分:1)
我想您正在尝试查看输入是否与三者之间的随机选择相同,在这种情况下,请使用randomInput
而不是gameList
。并使用raw_input
,以便可以输入python
而不是"python"
已编辑以解决您的修改问题
import random
def pythonRubyJava():
gameList = ["python","ruby","java"]
userInput = raw_input("python, ruby, or java?:")
randomInput = random.choice(gameList)
if userInput not in gameList:
print "The game is over"
if userInput == randomInput:
print "stalemate"
答案 4 :(得分:0)
使用not in
运算符:
if userInput not in gameList:
print "The game is over"
答案 5 :(得分:0)
实际上,答案是我到目前为止所见答案的两个版本的组合。
首先,
input()
不返回字符串,它返回输入的文字字符,因此当您输入' python'时,它正在查找不具有的变量python
存在。
您需要使用引号括住输入才能使其正常工作,但有更好的方法。使用raw_input()
将输入作为字符串值。
此外,一旦您解决了这个问题,您就会在第6行出现错误。在第6行,您要将答案与整个列表进行比较,但需要将其与每个项目进行比较在列表中。
轻松解决:
if userInput not in gameList:
#execute