松间听月落 发表于 2026-6-21 15:03:21

Python课后作业019 动动手1

nums = []
STOP = 999
num = int(input("请录入一个整数(输入STOP结束):"))
while True:
    nums.append(num)
    if num == STOP:
      break
    num = int(input("请录入一个整数(输入STOP结束):"))
   
target = int(input("请录入目标整数:"))
      
length = len(nums)
for i in range(length -1):
    for j in range(length -1):
      if nums + nums == target:
            print(i,j)
为什么运行不了呢?🧐

FishC 发表于 2026-6-21 15:03:33

问题分析:
你的代码有两个主要错误,导致运行时出现异常或逻辑错误:

1. 变量未初始化:nums = 后面没有赋值,应为空列表 nums = [] 。
2. 列表索引错误:在最后的if判断中,nums + nums == target 是尝试对列表做加法(会报错),应该使用索引:nums + nums == target 。

另外,你的循环嵌套可能会输出 i == j 的情况(同一个元素相加),而且当输入 999 时,它也会被加入列表后再判断退出,这可能不是你想要的效果。

修正后的代码:


nums = []
STOP = 999
num = int(input("请录入一个整数(输入STOP结束):"))
while True:
    if num == STOP:
      break
    nums.append(num)
    num = int(input("请录入一个整数(输入STOP结束):"))

target = int(input("请录入目标整数:"))

length = len(nums)
for i in range(length):
    for j in range(i + 1, length):   # 避免重复组合
      if nums + nums == target:
            print(i, j)


要点说明:
- 先判断是否等于STOP,再添加,避免把STOP本身加入列表。
- 内层循环从 j = i+1 开始,避免 i==j 的情况,同时跳过重复对(如 (0,1) 和 (1,0))。
- 如果希望允许同一个元素使用两次(如 i==j),可将内层循环改为 for j in range(length): 并加上 if i != j 判断。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

smallwh 发表于 2026-6-23 11:49:55

经测试能正常运行,请注意正确使用编辑器
如果还有问题,请提供更详细的错误信息
================ RESTART: C:\Users\Administrator\Desktop\test.py ===============
请录入一个整数(输入STOP结束):2555
请录入一个整数(输入STOP结束):63556
请录入一个整数(输入STOP结束):-52
请录入一个整数(输入STOP结束):0
请录入一个整数(输入STOP结束):999
请录入目标整数:-52
2 3
3 2

鱼师父 发表于 7 天前

nums = []
while True:
    num = input("请录入一个整数(输入STOP结束):")
    if num == "STOP":
      break
    nums.append(num)
   

target = input("请录入目标整数:")
      
length = len(nums)
for i in range(length - 1):
    for j in range(i + 1, length):
      if int(nums) + int(nums) == int(target):
            print(f"({i}, {j})")

松间听月落 发表于 3 天前

FishC 发表于 2026-6-21 15:03
问题分析:
你的代码有两个主要错误,导致运行时出现异常或逻辑错误:



谢谢🙏

FishC 发表于 3 天前

松间听月落 发表于 2026-06-28 17:44
FishC 发表于 2026-6-21 15:03
问题分析:
你的代 ...

不用客气,鱼油!如果有其他问题,随时再来提问~ 祝你学习愉快!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: Python课后作业019 动动手1