Python IF语句不比较从文件接收的值
我几天前才开始编程。我制作了这个程序,用户可以创建一个测验(所有的Q和a都写在一个文件中),当我来阅读答案文件时,我用with语句独立提取每一行,然后与Qs文件的每一行进行比较。这很好,我想要比较的值确实是。但是当答案与文件上的答案匹配时,if语句仍然返回else命令!难以置信!下面是需要澄清的输出 问题1:你叫什么名字 输入答案:abdo 对不起,那是错的!正确答案是:阿布多 你的分数是:0 问题2:我叫什么名字 输入答案:abdo1 对不起,那是错的!正确答案是:abdo1 你的分数是:0 这是我的代码:Python IF语句不比较从文件接收的值,python,file,Python,File,我几天前才开始编程。我制作了这个程序,用户可以创建一个测验(所有的Q和a都写在一个文件中),当我来阅读答案文件时,我用with语句独立提取每一行,然后与Qs文件的每一行进行比较。这很好,我想要比较的值确实是。但是当答案与文件上的答案匹配时,if语句仍然返回else命令!难以置信!下面是需要澄清的输出 问题1:你叫什么名字 输入答案:abdo 对不起,那是错的!正确答案是:阿布多 你的分数是:0 问题2:我叫什么名字 输入答案:abdo1 对不起,那是错的!正确答案是:abdo1 你的分数是:0
import sys
questions = []
answers = []
score = 0
print("+++++++++++++++Welcome to SS Quiz Maker++++++++++++++++")
save = input("Would you like to create a new quiz or load your saved one :")
if save == "y":
for i in range(0,2):
print( "Question number",i + 1)
questions.append(input("Enter a Question :"))
answers.append(input("Enter an Answer :"))
f = open("SS_QUIZ_QUESTIONS.txt", "w")
f.truncate()
for i in questions:
f.write(i)
f.write("\n")
f.close()
f = open("SS_QUIZ_ANSWERS.txt", "w")
for i in answers:
f.write(i)
f.write("\n")
f.close()
else:
for i in range(0,2):
with open('SS_QUIZ_QUESTIONS.txt') as f:
u = 1
for line in f:
if u == i + 1:
break
with open('SS_QUIZ_ANSWERS.txt') as f:
u = 1
for line2 in f:
if u == i + 1:
break
print("Question Number ",i + 1," :",line)
ans = str(input("input the Answer :" ))
if ans == line2:
print("Correct")
score = score +1
print("Your score is :",score)
else:
print("Sorry, thats Wrong!")
print("The right answer is :", line2)
print("Your score is :",score)
问题是,当您将答案写入文件时,您也会写入换行符
“\n”
。现在,当您比较字符串时,实际上是将abdo1
与abdo1\n
进行比较,这是错误的。在比较之前,请在行2
字符串上使用.rstrip()
方法
在代码中:
if ans == line2.rstrip():
应该这样做有空格吗?你能把这两行并排打印出来吗?你说的空白是什么意思对不起,python没有太多内容,所以请耐心等待me@AbdulrahmanAttia这与Python无关。空白是空格、换行符、制表符等字符。打印两个字符串时,它们看起来可能相同,但在空格中可能有所不同
“foo”
与“foo”
您的项目似乎不适合刚开始学习编程的人。非常感谢Leon Z和depperm。工作起来很有魅力!