【发布时间】:2017-09-12 15:36:29
【问题描述】:
在 SO 上没有什么完全相同的,所以问题是:
我有这个文件结构:(名为 test.csv 的 csv 文件)
1.What line is this? 1
2.What line is this? 2
3.What line is this? 3
4.What line is this? 4
5.What line is this? 5
我希望程序能够打印第一行(1. 这是哪一行?),然后要求用户输入(答案=?),如果答案等于相应列中的内容,则输出“正确”。
目前的代码:
它打印问题并要求答案,但不 1.如果正确则输出“正确” 2. 如果正确,请继续下一个问题
import csv
def main():
with open('test.csv','r') as f:
reader=csv.reader(f)
for row in reader:
questions=row
print(questions)
answer=input("answer:")
answer_correct=False
for row in reader:
for field in row:
for i in range(len(questions)):
if field==questions[i]:
currentindex=questions.index(field)
if row[currentindex+1]==answer:
answer_correct==True
if answer_correct == False :
print("Wrong answer, sorry!")
else:
print("****You're right!*****")
main()
如需解答,请:
- 建议对代码进行修复,指出错误并解释解决方案
- 建议一个更优雅的修复 /sn-p 以仅使用 csv 阅读器而不使用其他导入工具来解决问题。
如前所述,代码需要: - 提出每个问题,询问用户输入(答案),如果正确或错误(打印正确或错误),然后移动到下一个问题,直到文件结束
到目前为止的输出:
['1.What line is this?', '1']
answer:1
Wrong answer, sorry!
>>>
我也试过这个:
导入 csv
def main():
with open('test.csv','r') as f:
reader=csv.reader(f)
for row in reader:
print(row[0])
answer=input("answer:")
answer_correct=False
for row in reader:
for field in row:
if answer==row[1]:
answer_correct==True
if answer_correct == False :
print("Wrong answer, sorry!")
else:
print("****You're right!*****")
main()
【问题讨论】:
-
请查看更新 - 我可以更好地尝试。虽然仍然不起作用 - 但我觉得我很接近了!