如何用Python编写循环:实现好友数量及姓名输入与信息输出?
修正你的Python好友信息收集代码
嘿,你的代码确实存在几个语法和逻辑上的小问题,我来帮你修正并解释清楚:
原代码的问题点
- 语法错误:
int(input("Please enter number of friends"))后面缺少闭合的括号,直接衔接for循环会导致Python解析失败。 - 缩进缺失:Python依靠缩进划分代码块,for循环的内部语句必须缩进,否则会报错。
- 静态提示文本:循环里的提示一直是
friend number 1,没法区分不同的好友序号。 - 未存储所有姓名:每次输入的姓名会覆盖之前的
Name变量,最后无法输出全部好友信息。
修正后的代码
# 获取好友数量,加入异常处理避免非数字输入崩溃 try: friend_count = int(input("Please enter number of friends: ")) except ValueError: print("Please enter a valid number!") exit() # 创建列表存储所有好友姓名 friend_names = [] # 循环输入每个好友的姓名 for i in range(friend_count): # 用i+1让序号从1开始,符合用户习惯 name = input(f"Please enter friend number {i+1}: ") friend_names.append(name) # 格式化输出收集到的信息 print("\n--- Your Friends List ---") print(f"Total friends: {friend_count}") print("Friend names:") for idx, name in enumerate(friend_names, start=1): print(f"{idx}. {name}")
代码说明
- 加入
try-except块是为了处理用户输入非数字的情况,避免程序直接崩溃(如果不需要这个优化,可以直接用friend_count = int(input(...)))。 - 用列表
friend_names存储所有姓名,不会像单个变量那样覆盖之前的输入。 - 用f-string动态生成提示文本,让每个好友的序号正确显示。
- 最后分格式输出总数量和所有好友姓名,展示效果更清晰。
内容的提问来源于stack exchange,提问作者Jay Klope
相关产品推荐
相关产品推荐

