鱼C论坛

 找回密码
 立即注册
查看: 1700|回复: 2

为什么无法得到最后结果

[复制链接]
发表于 2021-2-23 00:03:23 | 显示全部楼层 |阅读模式

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

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

x
第019讲:列表(I)课后习题
动动手第1题

我的代码如下:

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

target=int(input("请录入目标整数:"))
n=len(nums)
for i in range(n):
    for j in range(i+1,n):
       if num[i]+num[j]==target:
          print([i,j])


结果是:请录入一个这整数(输入STOP结束):22
请录入一个这整数(输入STOP结束):33
请录入一个这整数(输入STOP结束):45
请录入一个这整数(输入STOP结束):18
请录入一个这整数(输入STOP结束):62
请录入一个这整数(输入STOP结束):88
请录入一个这整数(输入STOP结束):93
请录入一个这整数(输入STOP结束):72
请录入一个这整数(输入STOP结束):67
请录入一个这整数(输入STOP结束):19
请录入一个这整数(输入STOP结束):STOP
请录入目标整数:100

为什么不能打印出[i,j]??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-23 00:10:59 | 显示全部楼层
本帖最后由 Stubborn 于 2021-2-23 00:15 编辑

nums:List[str]
你添加的时候转int吗?
def hash(numbers, target):
    dct = {}
    for idx, val in enumerate(numbers):
        if val in dct:
            return [dct[val] + 1, idx + 1]
        dct[target - val] = idx
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 10:15:40 | 显示全部楼层
代码倒数第二行 num[i] 和 num[j] 与刚开始定义的列表变量名 nums 不一样
input() 接收的值是字符串格式的,你可以在  if nums[i]+nums[j]==target: 这行代码之前加上 print(nums[i]+nums[j]) 就会发现打印的值是两个数字拼接的
你可以把 nums.append(A) 这句 改为:
if A.isdigit():
    nums.append(int(A))
在添加进列表之前判断一下是否为数字,并且转为整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 10:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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