Cherie_23 发表于 2021-2-23 00:03:23

为什么无法得到最后结果

第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+num==target:
          print()


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

为什么不能打印出??

Stubborn 发表于 2021-2-23 00:10:59

本帖最后由 Stubborn 于 2021-2-23 00:15 编辑

nums:List
你添加的时候转int吗?

def hash(numbers, target):
    dct = {}
    for idx, val in enumerate(numbers):
      if val in dct:
            return + 1, idx + 1]
      dct = idx

来自星星的小明 发表于 2021-2-23 10:15:40

代码倒数第二行 num 和 num 与刚开始定义的列表变量名 nums 不一样
input() 接收的值是字符串格式的,你可以在if nums+nums==target: 这行代码之前加上 print(nums+nums) 就会发现打印的值是两个数字拼接的
你可以把 nums.append(A) 这句 改为:
if A.isdigit():
    nums.append(int(A))
在添加进列表之前判断一下是否为数字,并且转为整数
页: [1]
查看完整版本: 为什么无法得到最后结果