鱼C论坛

 找回密码
 立即注册
查看: 190|回复: 3

019动动手第一题

[复制链接]
发表于 2025-4-1 17:07:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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[i] + nums[j] == target:
            result.append((i,j))

if result:
    print(result)
else:
    print('没有符合条件的数')
为什么完不成这个任务 输入任何数都会显示没有符合条件的数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-1 17:16:34 | 显示全部楼层
本帖最后由 jackz007 于 2025-4-1 17:26 编辑

        原因在这里:
  1.         if nums[i] + nums[j] == target:
复制代码

        nums[i] + nums[j] 是数字,target 是字符串,二者永远不可能相等
        这一句
  1. target = input('请录入目标整数')
复制代码

        得改为
  1. target = int(input('请录入目标整数'))
复制代码

        修改后,target 也是数字,问题就解决了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-4-2 20:27:38 | 显示全部楼层

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

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

  16. if result:
  17.     print(result)
  18. else:
  19.     print('没有符合条件的数')
复制代码


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


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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2025-4-5 19:39:08 | 显示全部楼层
nums = []
while True:
    x = input('请输入一个整数(输入STOP停止)')
    if x != 'STOP':
        y = int(x)
        nums.append(y)
    else:
        break

# 修正:将输入的target转换为整数
target = int(input('请录入目标整数'))  # 添加int转换
n = len(nums)
result=[]
for i in range(n):
    for j in range(i + 1, n):
        if nums[i] + nums[j] == target:
            result.append((i,j))

if result:
    print(result)
else:
    print('没有符合条件的数')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-10 02:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表