这是我的代码片段,我试图制作一个拼字游戏类型的游戏,但由于某种原因,这个if语句不起作用。我打开的文件是238,000个单词的列表,英语词典和临时词由输入预定义,该输入被传递给该功能。所以我在这里尝试将tempword与文件中的每个单词进行比较,但是当它通过它时,即使我知道该单词在列表中,它也不会添加到计数器中。有什么想法吗?
def checkvalidword(tempword):
tally = 0
file = open("words.txt")
for x in file:
if x == tempword:
tally+=1
print("Added to the tally")
答案 0 :(得分:1)
因为您正在读取文件中的行,所以每行都以'\ n'
结尾尝试执行此instread。
def checkvalidword(tempword):
tally = 0
file = open("words.txt")
for x in file:
if x.strip() == tempword:
tally+=1
print("Added to the tally")
注意x.strip()
答案 1 :(得分:0)
为了比较这些值,您应该将.strip()
与if
一起使用:
if x.strip() == 'abc':
因为在每一行的末尾,存在一个新的行字符\n
。您可以通过将x
的{{3}}值打印为:
print repr(x)
你会看到类似的东西:
'abc\n'
最好使用file.readlines()
,因为它会根据\n
拆分文件内容。因此,您不必明确strip
新行字符。