gpt4 book ai didi

python - 如何检查for循环中的特定值然后结束它?

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:38 26 4
gpt4 key购买 nike

今天是我第一次学习csv和python。对不起,如果我问的是一个已经回答的问题。我正在使用 csv 字典阅读器。假设我有一个包含这些行的文件:

{'age': '20', 'name': 'Alice'}
{'age': '21', 'name': 'Freddie'}
{'age': '17', 'name': 'Bob'}

我将创建一个程序,允许用户输入他们的名字。如果它与数据匹配,它将输出 true。我尝试在内部使用 for 循环和 if else 语句。

但是,它会循环整个数据而不是我正在查看的特定数据。例如,如果我输入“Bob”,我会得到

Enter Name:Bob
No record found
No record found
true

代替

Enter Name:Bob
true

我相信这是因为我创建了 for 循环,但我仍然不确定如何应对它。

import  csv

name1 = input("Enter Name:")

filePath = "data.csv"
with open(filePath) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if name1 == row['name']:
print("true")
break
else:
print("No record found")

最佳答案

Bob 在最后一行,所以它必须从头开始遍历所有行,直到找到 Bob 然后它就存在了。

您可能只想在最后打印 No records found,而不是在每次迭代中打印。下面是使用标志来记住是否找到该术语的建议:

import  csv

name1 = input("Enter Name:")
was_found = False

filePath = "data.csv"
with open(filePath) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if name1 == row['name']:
print("true")
was_found = True
break

if not was_found:
# looked at every row and did not find search term
print("No record found")

关于python - 如何检查for循环中的特定值然后结束它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55517683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com