Esleepsheep 发表于 3 天前

019动动手第一题

nums = []
while True:
    x = input('请输入一个整数(输入STOP停止)')
    if x != 'STOP':
      y = int(x)
      nums.append(y)
    else:
      break

target = input('请录入目标整数')
n = len(nums)
result=[]
for i in range(n):
    for j in range(i + 1, n):
      if nums + nums == target:
            result.append((i,j))

if result:
    print(result)
else:
    print('没有符合条件的数')
为什么完不成这个任务 输入任何数都会显示没有符合条件的数{:10_249:}

jackz007 发表于 3 天前

本帖最后由 jackz007 于 2025-4-1 17:26 编辑

      原因在这里:
      if nums + nums == target:
      nums + nums 是数字,target 是字符串,二者永远不可能相等
      这一句
target = input('请录入目标整数')
      得改为
target = int(input('请录入目标整数'))
      修改后,target 也是数字,问题就解决了。

FishC 发表于 前天 20:27


nums = []# 修正1:初始化列表应使用方括号
while True:
    x = input('请输入一个整数(输入STOP停止)')
    if x != 'STOP':
      y = int(x)
      nums.append(y)
    else:
      break

target = int(input('请录入目标整数'))# 修正2:将输入转换为整数
n = len(nums)
result = []# 修正3:初始化结果列表
for i in range(n):
    for j in range(i + 1, n):
      if nums + nums == target:# 修正4:正确访问列表元素
            result.append((i,j))

if result:
    print(result)
else:
    print('没有符合条件的数')


问题分析:

[*]原代码未正确初始化列表,应该用 nums = []
[*]目标整数未转换为整型,导致比较时类型不匹配(字符串 vs 整数)
[*]条件判断错误写成 nums + nums 应改为 nums + nums
[*]结果列表未初始化会导致NameError,应添加 result = []


测试示例:
输入列表:2,7,11,15,目标值 9
输出结果应为:[(0,1)]

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