我是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)
我正在输入文件的正确内容,即正确位置的大写字母,以便注意。 我肯定答案很明显,但我很茫然,所以任何帮助都会受到赞赏。
谢谢!
答案 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脚本。
祝你好运。