我的if语句不起作用

时间:2017-01-12 00:11:41

标签: python function file if-statement for-loop

这是我的代码片段,我试图制作一个拼字游戏类型的游戏,但由于某种原因,这个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")

2 个答案:

答案 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新行字符。