Sam1111_- 发表于 2021-9-25 21:26:55

关于 《零基础入门学习python第二版》第19讲练一练的问题

课后作业有一题让生成一个随机列表,然后找到其中两个数值的和等于目标数值的问题
我写的代码每次都无法找到两个数值的和等于目标数值,但是答案的代码每次都能找到好多
烦请大家帮看看是什么原因
#我写的
import random
nums = []

for i in range(0,10000):
    nums =
a = input("type your target number")
for www in range (0, len(nums)):
    for j in range(1, len(nums)-www):
      c = nums + nums
      #print(c)
      if c == a:
            print(nums, "+", nums, "=", a)
            
            break
    if c == a:
      break

else:
    print("no such number")


#答案
import random

nums = []

for i in range(10000):
    x = random.randint(1, 65535)
    nums.append(x)

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

isFind = False
n = len(nums)
for i in range(n):
    for j in range(i+1, n):
      if nums + nums == target:
            print()
            isFind = True

if isFind == False:
    print("找不到!")
   

冬雪雪冬 发表于 2021-9-25 21:47:57

主要问题a是字符串,不可能和一个整数相等。
另外两个for循环的range范围要像答案那样写。
页: [1]
查看完整版本: 关于 《零基础入门学习python第二版》第19讲练一练的问题