有没有一种方法可以将元组中的多个元组与用户输入进行比较



我在一个元组中有元组,我想将其与用户输入进行比较。到目前为止,这就是我尝试过的

grade_data = (("Samira", "Chemistry", "A"), ("Carly", "Chemistry", "B"), ("Tyler", "Chemistry", "F"))
student = input("Which student would you like to view")
for i in grade_data:
if student == i[0]:
print("student found")
else:
print("Couldn't find try again")

但是,只有当我输入正确的学生时,它才会显示错误消息。我想这是因为我在循环中这样做,循环遍历列表直到找到名称,所以Carly的输出显示为:

Couldn't find try again
student found
Couldn't find try again

我希望它在打印之前在列表中运行,这样我就不会有多行了。

我还尝试过预先定义我想要迭代的列表,例如:

for student in data:
student = student[0]
stu_name = input("Which student would you like to view")
if stu_name == student:
print("student found)
else:
print("try again")

这与第一个代码序列具有相同的输出。

有没有其他可能的方法可以遍历列表并打印";再试一次"如果在列表中根本找不到它。如果它在列表中被找到,那么它将继续哪个输出打印";找不到";每一行都找不到。

谢谢。

在第一种情况下,删除else部分并在if部分中添加break语句。

grade_data = (("Samira", "Chemistry", "A"), ("Carly", "Chemistry", "B"), ("Tyler", "Chemistry", "F"))
student = input("Which student would you like to view? ")
for data in grade_data:
if student == data[0]:
print("student found: ", data[0], " Subject: ", data[1], " Grade:", data[2])
break

输出:

Which student would you like to view? Carly
student found:  Carly  Subject:  Chemistry  Grade: B

最新更新