Python课后作业列表【1】动动手第1题
本帖最后由 Mr.KKKK 于 2023-4-1 16:45 编辑以下代码哪里错了,结果总是为'没找到'
nums = []
isinput = True
while isinput == True:
a = input('请录入一个整数(输入STOP结束):')
if a != 'STOP':
nums.append(a)
else:
isinput = False
target = input('请输入目标整数:')
n = len(nums)
for i in range(n):
for j in range(i+1,n):
if nums + nums == target:
print()
else:
print('没找到')
代码中有两个问题需要解决。
首先,从输入中获取的整数被存储为字符串类型,而我们需要将它们转换为整数类型。
第二个问题是,在else子句中使用print('没找到')是不正确的,
因为这会在每次循环没有找到匹配时都输出"没找到"。我们需要在循环之外检查是否找到了匹配的元素对。
请参阅修改后的代码:
nums = []
isinput = True
while isinput == True:
a = input('请录入一个整数(输入STOP结束):')
if a != 'STOP':
nums.append(int(a))# 将输入的数字转换为整数类型
else:
isinput = False
target = int(input('请输入目标整数:'))# 将目标整数转换为整数类型
n = len(nums)
found = False# 设置一个标志来检查是否找到匹配的元素对
for i in range(n):
for j in range(i + 1, n):
if nums + nums == target:
print()
found = True# 如果找到匹配的元素对,将found设置为True
if not found:
print('没找到')
现在代码应该能够正常工作并给出正确的结果。 代码中的问题出现在第 15 行,具体原因如下:
1. 在代码中,从输入的 a 中得到的是字符串类型,而不是整数类型,需要将其转换为整数类型才能进行数值计算。
2. 在代码中,判断 nums + nums 是否等于目标整数 target 的方式是错误的,应该是 nums + nums == int(target)。
3. 在代码中,如果找到了满足条件的值,应该直接打印结果并退出循环,而不是每次循环都打印一次。
修改后的代码如下所示:
nums = []
isinput = True
while isinput == True:
a = input('请录入一个整数(输入STOP结束):')
if a != 'STOP':
nums.append(int(a))
else:
isinput = False
target = input('请输入目标整数:')
n = len(nums)
found = False
for i in range(n):
for j in range(i+1,n):
if nums + nums == int(target):
print()
found = True
break
if found:
break
if not found:
print('没找到')
修改后的代码中,首先将输入的字符串类型的整数转换为了整数类型,然后修改了判断条件,最后添加了一个 found 变量,用于标记是否找到了符合条件的值,如果找到了则直接退出循环并打印结果,否则在循环结束后打印 '没找到'。 sfqxx 发表于 2023-4-1 16:50
代码中的问题出现在第 15 行,具体原因如下:
1. 在代码中,从输入的 a 中得到的是字符串类型,而不是整数 ...
呃被你们几个chatgpt给抢了 c,凭什么不选我!!!!!!
页:
[1]