如何让Python列表最后元素以句号结尾,其余以分号结尾?
解决错误提示列表结尾符号差异化问题
很简单,我们只需要在遍历错误列表时,判断当前项是不是最后一个元素,然后分别设置不同的结尾符号就可以啦。另外,原代码里用errors_list.index(i)来获取索引其实不太高效(如果列表有重复元素还会出错),推荐用enumerate来同时获取索引和元素,更稳妥。
修改后的完整代码
while True: if len(errors_list) != 0: print("Your name has these errors:") # 用enumerate从1开始计数,同时拿到索引和错误内容 for idx, error in enumerate(errors_list, start=1): # 判断是否是最后一条错误 if idx == len(errors_list): ending = "." else: ending = ";" print(f" {idx}- {error}{ending}") print("Try again.") errors_list.clear() name = input("My name is ").title() choose_name(name) else: print(f"Nice to meet you, {fname} {sname}.") break
关键逻辑说明
enumerate的使用:enumerate(errors_list, start=1)会直接返回从1开始的序号和对应的错误内容,不用手动+1,代码更简洁。- 结尾符号判断:通过比较当前序号
idx和列表总长度len(errors_list),如果相等说明是最后一条,用.,否则用;。
测试效果
当输入--- 时,输出会变成:
Your name has these errors:
1- It has no letters;
2- It has symbols;
3- The last letter is a space.
Try again.
My name is
完美符合你的需求~
内容的提问来源于stack exchange,提问作者user11786059
相关产品推荐
相关产品推荐

