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