鱼C论坛

 找回密码
 立即注册
查看: 1958|回复: 1

程序执行不了是为什么呀

[复制链接]
发表于 2023-12-18 16:56:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
nums=[]
a=input('请输入一个整数(输入STOP结束):')
while a!='STOP':
    nums.append(int(a))
    a=input('请输入一个整数(输入STOP结束):')
else:
    target=input('请录入目标整数:')

n=len(nums)
i=0
j=i+1
if nums+nums[i+j]==target:
                print('[',i,',',i+j,']')
i=i+1

想问一下这个程序为什么进行不下去了啊。就只能进行到‘请输入目标整数’那里

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-12-18 16:57:02 | 显示全部楼层
在你的代码中,有几个地方出现了错误。

首先,你没有给变量 "nums" 赋初值。在程序开始之前,你需要添加一行代码来创建一个空列表:
  1. nums = []
复制代码

其次,你在比较 `nums+nums` 和目标整数时使用的是加法操作符 `+`,这是错误的。如果你想检查列表中的两个元素之和是否等于目标整数,你需要遍历列表的所有可能组合,然后进行比较。可以使用嵌套循环来实现:
  1. found = False
  2. for i in range(n):
  3.     for j in range(i+1, n):
  4.         if nums[i] + nums[j] == target:
  5.             found = True
  6.             break
  7. if found:
  8.     print('存在两个数的和等于目标整数')
  9. else:
  10.     print('不存在两个数的和等于目标整数')
复制代码

最后,你的循环逻辑也有一些问题。请注意,你使用的是 `while` 循环,而不是 `for` 循环。因此,在循环结束后,`i` 的值并没有增加,导致代码进入无限循环。

修复了上述问题之后,你的完整代码应该如下所示:
  1. nums = []
  2. a = input('请输入一个整数(输入STOP结束):')
  3. while a != 'STOP':
  4.     nums.append(int(a))
  5.     a = input('请输入一个整数(输入STOP结束):')
  6. target = int(input('请录入目标整数:'))
  7. n = len(nums)
  8. found = False
  9. for i in range(n):
  10.     for j in range(i+1, n):
  11.         if nums[i] + nums[j] == target:
  12.             found = True
  13.             break
  14. if found:
  15.     print('存在两个数的和等于目标整数')
  16. else:
  17.     print('不存在两个数的和等于目标整数')
复制代码

希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-24 00:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表