我正在完成一项必须制作Hangman游戏的作业。我刚从头开始使用我的基本知识。很多事情可能以不同的方式更有效率,但我喜欢搞清楚我自己的解决方案。所以这是我的代码。我的想法是我想从一个列表切换到另一个列表。但是,当我执行其余的代码失败时,它在以前工作的地方。
import random
alphabet = list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
allwords = []
with open('google-10000-english-usa-no-swears-long.txt') as inputfile:
for line in inputfile:
allwords.append(line.strip().split(','))
words = ['apple', 'banana', 'coconut']
word = random.choice(words)
guessesleft = 8
sentence1 = ('You have %d guesses!\n') % guessesleft
length = len(word)
uslist = ['_'] * length
hangword = list(word)
问题如下:在代码中,当前的单词'使用,这是有效的。但是,现在不是使用'单词'作为一个单词列表,我想使用文本文件和' allwords'作为单词列表(所以我在word = random.choice(allwords)中更改了单词= random.choice(单词)。它确实从文件中选择了一个随机单词,但之后出错了。每个单词只生成on& #39; _'而不是随机选择的单词中的每个字母都有1个。我的列表是否有所不同?我该如何解决这个问题?
答案 0 :(得分:0)
你有没有理由使用拆分功能?
allwords.append(line.strip().split(','))
split()函数返回由分隔符分隔的项目列表,因此即使在没有分隔符的字符串中,该函数也会返回一个列表
"helloworld".split(",") # returns ["helloworld"]
如果您只想要拆分后的第一个元素,可以使用:
allwords.append(line.strip().split(',')[0])