如何在Python中识别重复整数?新手代码调试求助
问题修正方案
你的代码存在几个关键问题:
- 变量名不统一:初始化的是
yourn,但循环判断用的是yorn,会触发未定义错误 - 逻辑顺序错误:先把数字添加进列表再判断重复,导致重复元素已经被存入
- 语法与冗余问题:
for rep in list缺少冒号,且无需遍历整个列表,直接用in关键字就能判断元素是否存在 - 拼写错误:
lista是笔误,应该对应你的列表变量list
下面是修正后的完整代码:
num_list = [] # 避免用list作为变量名,这是Python内置类型 yorn = 'y' # 初始设为'y',确保循环能正常启动 while yorn != 'n': # 先获取输入并转为整数,同时处理非整数输入的情况 try: num = int(input('Insert a number: ')) except ValueError: print('请输入有效的整数!') yorn = input('Continue? [Y/N]: ').strip().lower()[0] continue # 判断数字是否重复,仅当不重复时才添加到列表 if num in num_list: print('Denied, already on list') else: num_list.append(num) # 获取用户是否继续的输入 yorn = input('Continue? [Y/N]: ').strip().lower()[0] print('END!') print(f'The numbers are: {sorted(num_list)} ', end=' → ')
核心修正说明:
- 更换列表变量名为
num_list,避免覆盖Python内置的list类型 - 调整逻辑顺序:先获取输入、判断重复,再决定是否添加元素
- 加入
try-except块处理非整数输入,提升程序健壮性 - 统一变量名,修复循环初始值问题,确保循环能正常启动
内容的提问来源于stack exchange,提问作者Camponez
相关产品推荐
相关产品推荐

