【发布时间】:2017-03-07 08:15:25
【问题描述】:
我的代码如下:
def randword():
#american-english-small can be replaced with american-english[-large|-huge]
DICT = open('/usr/share/dict/american-english-small', 'r')
length = len(DICT.readlines())
print(length)
randline = randint(1, length)
print(randline)
word = DICT.readline(randline)
print(word)
DICT.close()
return word
#return DICT.readline(randint(1, len(DICT.readlines())))
最后一行是我的原始代码,剩下的就是我拆开找问题。在我的终端中,一切都正确:
>>> DICT = open('/usr/share/dict/american-english-small', 'r')
>>> word = DICT.readline(46957)
>>> print(word)
AIDS's
但是,当我运行我的文件时,在查找行和读取行之间出现错误:
51175
18132
运行时错误的回溯:
+---+
| |
O |
/|\ |
/ \ |
|
==========
Incorrect guesses: a b c d e f
Traceback (most recent call last):
File "/home/joshua/Documents/Coding/Python/hangman.py", line 123, in <module>
main()
File "/home/joshua/Documents/Coding/Python/hangman.py", line 117, in main
"\nThe word was " + secretWord + ".")
TypeError: Can't convert 'int' object to str implicitly
知道我做错了什么吗?提前致谢。
【问题讨论】:
-
该错误会有所帮助...另外,您要完成什么?
-
@juanpa.arrivillaga 添加。我正在尝试从字典文件中选择一个随机单词。每个单词都在自己的行中,如下所示:
a\n an\n animal\n -
您向我们展示的错误消息与您发布的代码无关。
-
嗯,首先,
readline(46957)并没有做你认为它正在做的事情。它正在读取 下一行 并设置字节大小的上限,而不是读取第 46957 行。其次,您显示的错误只是说secretWord是int,并且您试图将其与+添加到字符串中,这是不允许的。最后,既然你已经做了readlines(),你已经用尽了文件,readline将返回空字符串:'' -
@juanpa.arrivillaga 哦,我明白了。在这种情况下,我如何阅读第 46957 行?感谢您的帮助。
标签: python python-3.x file-io