字符串无法正常比较

时间:2014-03-24 20:47:14

标签: python string comparison

我是python的新手,所以请原谅任何可能找不到的代码

我遇到的问题是我正在尝试比较两个字符串,一个来自文件,另一个来自用户输入,以查看它们是否匹配。但是,在比较我认为相同的字符串时,if语句返回false。我已经使用str()函数将两个值都转换为字符串,但它仍然不想玩球。

作为参考,文件的行是两个字符串,用逗号分隔,'question'部分在逗号之前,'answer'在它之后。目前,两个字符串都是测试字符串,因此具有“问题”和“答案”的值

import linecache
def askQuestion(question, answer):
    choice = input(question)
    str(choice)
    if choice == answer:
        print("Correct")
    else:
        print("Bad luck")
file = "C://questions.txt"
text = linecache.getline(file, 1)
question = text.split(",", 1)[0]
answer = text.split(",", 1)[-1]
str(answer)
askQuestion(question, answer)

我正在输入文件的正确内容,即正确位置的大写字母,以便注意。 我肯定答案很明显,但我很茫然,所以任何帮助都会受到赞赏。

谢谢!

1 个答案:

答案 0 :(得分:2)

text = linecache.getline(file, 1)
question = text.split(",", 1)[0]
answer = text.split(",", 1)[-1]

这是更常见的

text = linecache.getline(file, 1)
question, answer = text.split(",", 1)

结果将是一个字符串。没有解释发生。此外,您需要存储str()的结果。

my_string = str(number)

通过调用str()但不保存它,结果将丢失。这里不重要,但要记住一些事情。

正如Alex在上面的评论中提到的那样,您错过了调用strip删除换行符的呼吁。我怎么知道?我在翻译中试过了。

$ python
>>> import linecache
>>> line = linecache.getline("tmpfile", 1)
>>> line

'*联系号码\ n'

看到'\ n'吗?那是你的问题。

另一种方法是调用pdb Python调试器。只需添加

import pdb; pdb.set_trace()

您要停止执行Python脚本。

祝你好运。