Mr.KKKK 发表于 2023-4-1 16:43:26

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('没找到')
   

isdkz 发表于 2023-4-1 16:47:30

代码中有两个问题需要解决。

首先,从输入中获取的整数被存储为字符串类型,而我们需要将它们转换为整数类型。

第二个问题是,在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('没找到')

现在代码应该能够正常工作并给出正确的结果。

sfqxx 发表于 2023-4-1 16:50:10

代码中的问题出现在第 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 变量,用于标记是否找到了符合条件的值,如果找到了则直接退出循环并打印结果,否则在循环结束后打印 '没找到'。

歌者文明清理员 发表于 2023-4-1 16:51:49

sfqxx 发表于 2023-4-1 16:50
代码中的问题出现在第 15 行,具体原因如下:
1. 在代码中,从输入的 a 中得到的是字符串类型,而不是整数 ...

呃被你们几个chatgpt给抢了

sfqxx 发表于 2023-4-1 17:50:36

c,凭什么不选我!!!!!!
页: [1]
查看完整版本: Python课后作业列表【1】动动手第1题