Python中使用while循环else块时如何避免元素误加入列表
问题分析与解决
原代码的核心问题出在while循环的执行顺序上:你每次先获取输入内容,紧接着就把它添加到列表里,之后才会因为输入是No触发循环退出,所以No自然会被错误地塞进列表中。
修正思路很直接:先判断输入内容,只有当输入不是No时,再将其添加到列表。
修正方案一(基于原逻辑调整)
listagosci = [] print("Party list: ") for i in range(3): n5 = input("enter name of guest: ").title() listagosci.append(n5) n5 = input("Would You like to add another guest? (yes/no): ").title() while n5 != "No": n5 = input("enter name of guest, if no, enter \"no\": ").title() # 新增判断:不是No才添加到列表 if n5 != "No": listagosci.append(n5) else: print(listagosci, len(listagosci))
修正方案二(更清晰的逻辑拆分)
把「是否继续添加」和「输入嘉宾名字」的操作拆分开,逻辑更直观,也从根源避免误加No的问题:
listagosci = [] print("Party list: ") for i in range(3): n5 = input("enter name of guest: ").title() listagosci.append(n5) # 先确认是否要继续添加 n5 = input("Would You like to add another guest? (yes/no): ").title() while n5 != "No": guest_name = input("enter name of guest: ").title() listagosci.append(guest_name) # 每次添加完后重新询问是否继续 n5 = input("Would You like to add another guest? (yes/no): ").title() print(listagosci, len(listagosci))
内容的提问来源于stack exchange,提问作者Adorovsky
相关产品推荐
相关产品推荐

