【发布时间】:2010-10-28 12:01:00
【问题描述】:
我正在尝试学习 python,我正在尝试一个刽子手游戏。但是当我尝试将用户的猜测与单词进行比较时,它不起作用。我错过了什么?
import sys
import codecs
import random
if __name__ == '__main__':
try:
wordlist = codecs.open("words.txt", "r")
except Exception as ex:
print (ex)
print ("\n**Could not open file!**\n")
sys.exit(0)
rand = int(random.random()*5 + 1)
i = 0
for word in wordlist:
i+=1
if i == rand:
print (word, end = '')
break
wordlist.close()
guess = input("Guess a letter: ")
print (guess) #for testing purposes
for letters in word:
if guess == letters:
print ("Yessssh")
#guessing part and user interface here
【问题讨论】:
-
你的代码做错了什么?什么不起作用?
-
不确定你的具体错误是什么,但这里有一些关于重构的提示: - 使用 random.randint() 而不是 random.random() - 要获取单词列表,你可以使用 open("words.txt","r").readlines() - 而不是最后一个 for 循环,你只需说“如果猜测单词”
-
我赞同 RexE 的评论。你的代码对我来说很好。你能详细说明什么不起作用吗?是有错误信息,还是意外输出的问题?
-
哎呀抱歉,是的,我从劳伦斯那里得到了答案,但这是一个意外输出错误,其中 for 字母在 word 循环中
-
好的。顺便说一句,根据您的代码风格,我猜您来自 Java(或相关语言)背景。随着您对 Python 的习惯用法越来越熟悉,您会为自己的代码如此简洁明了而感到高兴:)
标签: python python-3.x