请教:19课课后练习,动动手2
本帖最后由 mlucy3636 于 2021-1-11 14:19 编辑题目:最后,回忆前面我们学习过的 random 模块,生成一个由 10000 个整数(范围是 1 ~ 65535)构成的随机列表,目标值 target 由用户输入。
{:9_218:}
if nums + nums == target: 为什么不能写成 if i + j ==target:? 不是更符合题目,两个数的和是target? 代码虽然并不全面但也看得出来,nums明显是那个随机列表么,而且这代码 的if 还有写问题,列表怎么能够和元素相加?
应该是 if nums + nums == target:吧
print()就是打印所有能够满足列表内两个元素相加等于target的值的列表元素索引值
而你说的 if i + j 是是没有意义的,这两个就是穷举的列表元素的索引值,并不是列表内元素值 import random#加载模块
nums = []#空列表
for i in range(10000):#循环10000次
x = random.randint(1, 65535)# x 随机取1-65535之间的值
nums.append(x)#将x添加进 nums 列表
target = int(input("请录入目标整数:")) #输入target目标整数
isfind = False#设定目标判断参数,找到后重新赋值 True
n = len(nums)#没什么必要,因为很明确 nums 有10000个元素,直接用就可以
for i in range(n): # n == 10000执行循环10000次,i 取值 0-9999
for j in range(i+1, n): # j == i + 1,就是找nums中第i位以后的元素
if nums + nums == target:#如果两元素相加等于目标整数
print( , nums ,' + ' , nums ,' = ', target)
# 可以再后边再加一些看起来更明确
isfind = True#判断参数重新赋值
if isfind == False:#如果判断参数没经过重新赋值
print("找不到!")#那么表示没有找到任意两个元素相加等于目标整数,打印 找不到
页:
[1]