课后作业不懂的地方
import randomnums = []
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("找不到!")
大佬可以解析一下这段代码吗?看不怎么懂 就是看看随机生成的数,有没有两数之和等于输入的数,如果有的话,就把所有的这些数的位置打印出来,如果没有的话,就打印没有
import random
# 创建随机数
nums = []
for i in range(10000):
x = random.randint(1, 65535)
nums.append(x)
# 输入目标值
target = int(input("请录入目标整数:"))
# 此变量为标志变量,初始化为 False 表示在 nums 列表中未找到两数和为目标值的,反之为 True 表示找到两数和为目标值的数
isFind = False
# 获取整个随机列表的长度
n = len(nums)
# 遍历整个随机数列表,开始查找两数和等于目标值的数
# 第一个 for 循环从 0 索引位置元素开始,第二个 for 循环从 1 索引位置开始(不允许自身加自身,否则可以也从 0 开始)
# 直到第二个 for 循环结束,若找到符合条件的数,那么标志变量(isFind)赋值为 True,说明此次随机数组中至少有一个被找到
# 等到 for 循环结束时,只要找到一个数,就不会执行最后的 if ,因为 isFind 参数被赋值为 True
for i in range(n):
for j in range(i+1, n):
if nums + nums == target:
print()
isFind = True
if isFind == False:
print("找不到!") 本帖最后由 wisone 于 2022-9-7 21:20 编辑
import random #导入 random模块
nums = [] #定义一个空的 nums 列表
for i in range(10000): # i 取值 从0-9999即循环10000次
x = random.randint(1, 65535) # 返回 一个 1-65535 之间的整数并赋值给x
nums.append(x) #将x添加到空列表。
#以上循环就是生成一个 10000个整数组成的nums列表
target = int(input("请录入目标整数:")) # 输入一个目标整数
isFind = False #设置找到标识为 假
n = len(nums) #获得nums列表的成员个数,即10000
for i in range(n): # i 从0 - 9999
for j in range(i+1, n):#j 从1-9999
if nums + nums == target:#如果nums列表中任意两个成员之和等于所输入目标整数
print() #输出两个成员的下标
isFind = True # 设置找到标识为 真
# 以上循环就是查找nums列表中任意两成员之和等于所输入目标整数的下标并输出
if isFind == False: #判断找到标识 是否被重置即上述循环没有找到符合条件的下标
print("找不到!") #没有重置(没有符合相加等于目标输入整数的下标) 输出 “找不到!”
页:
[1]