【发布时间】:2021-03-28 02:50:24
【问题描述】:
这是一个小而关键的错误,因为它会影响您必须提供特定“未找到消息”的代码......但问题也可能在于我正在使用 csv 文件这一事实。 在这段代码中,我指定只有在找不到记录时才必须打印“未找到”,但无论如何它都会继续打印。
代码
import csv
with open('data.csv','w') as f:
ans='y'
while ans=='y':
s=csv.writer(f)
g=int(input("Enter GR number:"))
n=input("Enter name:")
m=float(input("Enter total marks:"))
s.writerow([g,n,m])
print()
ans=input('Enter more?')
with open('data.csv','r') as f:
print("SEARCHING FOR GR NUMBER")
print()
gr=int(input('Enter GR number to search:'))
s=list(csv.reader(f))
for i in s:
if str(gr) in i:
print(i)
if str(gr) not in i:
print('Record not found')
输出
Enter GR number:234
Enter name:Mia
Enter total marks:80
Enter more?y
Enter GR number:456
Enter name:Mark
Enter total marks:80
Enter more?n
SEARCHING FOR GR NUMBER
Enter GR number to search:234
['234', 'Mia', '80.0']
Record not found
我什至尝试过其他方法来打印未找到...但无论如何都会发生同样的错误,哈哈。任何帮助表示赞赏。谢谢!
【问题讨论】:
-
这是因为在您的
for循环找到记录之后,它无论如何都会搜索到最后,当它完成时,会点击检查找到的记录。你认为i的值是什么时候你的for循环完成? -
'i' '是列表形式的记录....但是第二个 if 在 for 循环本身之外
-
我明白 :) 我在解释为什么它不起作用。
标签: python loops csv file if-statement