tup_list = [(111, 'red'), (222, 'blue'), (333, 'green'), (444, 'red')]
x = input(str("colour? "))
for c in tup_list:
if x in c:
print(c[0])
else:
print("error ")
ตัวอย่างโค้ด^
หากผู้ใช้ป้อน "สีแดง" ผลลัพธ์จะเป็น:
111
error
error
444
หากผู้ใช้ป้อน "สีน้ำเงิน" ผลลัพธ์จะเป็น:
error
222
error
error
ฯลฯ หากผู้ใช้ป้อน "randomchars" (อักขระสุ่มใดๆ) ที่ไม่อยู่ใน tup_list ผลลัพธ์จะเป็น:
error
error
error
error
ฉันเข้าใจว่ารหัสของฉันกำลังพิมพ์ "ข้อผิดพลาด" สำหรับแต่ละ c ใน tup_list ฉันต้องการให้รหัสของฉันเขียน "ข้อผิดพลาด" ครั้งเดียวหากอินพุตของผู้ใช้ไม่อยู่ใน tup_list ฉันยังไม่เข้าใจด้วยว่าเหตุใดจึงพิมพ์ข้อผิดพลาดสำหรับการจับคู่เชิงลบแต่ละรายการภายใน tup_list (เช่น การป้อนสีแดงจะได้ 111 และ 444 อย่างถูกต้อง แต่ยังให้ข้อผิดพลาดสองครั้งสำหรับสิ่งอันดับสีน้ำเงินและสีเหลืองด้วย)