我刚开始学习python一周前。我今天尝试创建一个简单的刽子手游戏。到目前为止,我的所有代码都有效,但有一点我无法想到如何实现。我想要代码打印“你赢了”#39;当玩家正确地键入' python',逐个字母。但是在他们做对了之后我似乎无法结束它。如果他们输入' python'它将结束。一次尝试,反对信件形式。我尝试这样做的目的是.join
。我似乎无法解决这个问题。对于新程序员的任何帮助或建议将不胜感激。
guesses = []
count = 1
ans = 'python'
word = ''
while count < 10:
guess = raw_input('guess a letter: ')
guesses.append(guess)
if ''.join(word) == ans:
print 'you win'
break
elif len(guess) > 1 and ans == guess:
print ans
print 'you win'
break
else:
for char in ans:
if char in guesses:
word.append(char)
print char,
else:
print '_',
count += 1
else:
print '\nyou lose'
答案 0 :(得分:1)
首先,我想首先说,除非你正在处理遗留代码或某些你只需要在2.7中工作的库,否则不要使用python 2.7,而是使用python 3.x(currently on 3.6 )。这是因为很快就会弃用2.7,而且3.6 +会有很多功能,并且会对你会欣赏的语法和语言进行大量的QOL改进(并且支持2.7现在没有的功能)。
话虽如此,我会为你翻译成3.6。它几乎没有什么区别。
guesses = []
count = 1
ans = 'python'
word = ''
while count < 10:
guess = input('guess a letter: ')
guesses.append(guess)
if ''.join(word) == ans:
print('you win')
break
elif len(guess) > 1 and ans == guess:
print(ans)
print('you win')
break
else:
for char in ans:
if char in guesses:
word.append(char)
print(char)
else:
print('_')
count += 1
else:
print('\nyou lose')
此处只有两个更改是print现在需要括号,因此每个print 'stuff'
现在都是print('stuff')
,而raw_input现在是input('input prompt')
。除此之外,我很惊讶你能够逃脱word.append(char)
。你不能在2.7或3.x的python append()
上使用str
。我认为你试图将它用作数组,因为这是你使用''.join(word)
的唯一原因。要解决此问题,我会word = []
而不是word = ''
。现在你的''.join(word)
应该正常工作了。
我建议您采取下一步并尝试对您的程序实施以下内容:如果用户未输入单个字符,请将其设置为不将字符添加到猜测列表中。如果您还没有,请尝试将其设为main.py file。使程序的一部分成为函数。添加新的游戏命令。每次在chars中添加一个实际的hangman打印出来。添加文件io来读取猜词(即不只是python,你可以在文件中添加很多单词来选择)。