鱼C论坛

 找回密码
 立即注册
查看: 208|回复: 8

大佬们,帮我看看哪有问题嘞?

[复制链接]
发表于 2025-3-16 14:59:22 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 爱吃菠萝包 于 2025-3-17 12:54 编辑

打出来效果:
请录入一个整数(输入STOP结束):22
请录入一个整数(输入STOP结束):33
请录入一个整数(输入STOP结束):45
请录入一个整数(输入STOP结束):18
请录入一个整数(输入STOP结束):62
请录入一个整数(输入STOP结束):88
请录入一个整数(输入STOP结束):93
请录入一个整数(输入STOP结束):72
请录入一个整数(输入STOP结束):67
请录入一个整数(输入STOP结束):19
请录入一个整数(输入STOP结束):STOP
请录入目标整数:100
[1,8]

我打的代码:有一点点问题,求帮看看
while True:
    x=input("请录入一个整数(输入STOP结束):")
    if x=="STOP":
         print("请录入目标整数:",x)
        if x==100:
            nums = [2, 7, 11, 15]
            target = 9
            
            for i in range(nums):
                for j in range(nums):
                    if i+j== target:
                        print([i,j])
    if x!=100:
        print(x)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-3-16 15:03:52 | 显示全部楼层
你的代码有几个问题,下面是具体分析:  

1. **`continue` 语句错误**  
   - `continue` 只能在循环内部使用,而你的 `if` 语句并不在循环中,所以会导致语法错误。  

2. **`nums =` 语法错误**  
   - `nums` 变量没有赋值,导致语法错误。  

3. **`num` 变量未定义**  
   - `for i in range(num):` 这里的 `num` 变量没有定义,应该是 `nums` 之类的变量。  

4. **`print()` 语句缺少内容**  
   - `print()` 语句没有参数,可能是想输出 `i, j` 之类的内容。  

---

### **修正后的代码**
  
while True:  
    x = input("请录入一个整数(输入 STOP 结束): ")  
    if x == "STOP":  
        break  
      
    x = int(x)  # 转换为整数  
      
    if x != 100:  
        print(x)  
    else:  
        print("请录入目标整数:", x)  
        nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]  # 示例数据  
        target = 9  
          
        for i in nums:  
            for j in nums:  
                if i + j == target:  
                    print(f"{i} + {j} = {target}")  


这样修改后,代码可以正常运行,并且能够找到 `nums` 中两个数相加等于 `target` 的组合。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-16 16:07:31 | 显示全部楼层
本帖最后由 jackz007 于 2025-3-16 16:13 编辑

        别说问题,你的代码根本没法看,甚至无法猜出你的意图,你应该贴出题目要求(最好有样例),别人才好评判你的代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-16 19:14:53 | 显示全部楼层
同楼上,没有人知道你的程序意图何在。我们应该把他改成什么样?

如果你的意思是不让他报错的话,删掉那行continue即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-16 21:10:59 | 显示全部楼层
同意楼上,你这基本是瞎写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-17 12:55:05 From FishC Mobile | 显示全部楼层
西西咕 发表于 2025-3-16 21:10
同意楼上,你这基本是瞎写

好嘞,我错了,我重新改了一下啊,求指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-17 12:55:36 From FishC Mobile | 显示全部楼层
jackz007 发表于 2025-3-16 16:07
别说问题,你的代码根本没法看,甚至无法猜出你的意图,你应该贴出题目要求(最好有样例),别人才 ...

好嘞,我错了,我重新改了一下啊,求指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-17 15:01:27 | 显示全部楼层
本帖最后由 jackz007 于 2025-3-17 15:08 编辑
爱吃菠萝包 发表于 2025-3-17 12:55
好嘞,我错了,我重新改了一下啊,求指教

nums = []
while True :
    x = input("请录入一个整数(输入STOP结束):")
    if x . upper() == "STOP" :
        break
    else :
        nums . append(int(x))
target = int(input("请录入目标整数:"))
for j in range(len(nums) - 1) :
    for k in range(j + 1 , len(nums)) :
        if nums[j] + nums[k] == target :
            print('[%d , %d]' % (j , k))

        运行实况:
D:\[exercise]\Python>python x.py
请录入一个整数(输入STOP结束):22
请录入一个整数(输入STOP结束):33
请录入一个整数(输入STOP结束):45
请录入一个整数(输入STOP结束):18
请录入一个整数(输入STOP结束):62
请录入一个整数(输入STOP结束):88
请录入一个整数(输入STOP结束):93
请录入一个整数(输入STOP结束):72
请录入一个整数(输入STOP结束):67
请录入一个整数(输入STOP结束):19
请录入一个整数(输入STOP结束):STOP
请录入目标整数:100
[1 , 8]

D:\[exercise]\Python>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-17 16:58:36 | 显示全部楼层
您的代码有几个主要问题需要修正:1. 输入处理逻辑需要先收集所有数字再处理;2. 停止条件判断的位置不当;3. 两数之和算法存在索引错误。建议先创建数字列表存储输入,处理完所有输入后再进行双循环查找,注意使用正确的列表长度和元素访问方式。同时需要处理非数字输入的异常情况。

已帮助分析代码问题并给出修正方案:

1. 输入处理应使用while循环收集有效数字到列表
2. 添加try-except处理非数字输入
3. 停止条件后单独处理目标值输入
4. 使用range(len(nums))获取正确索引范围
5. 修正双循环比较逻辑为索引访问元素
6. 添加结果输出格式
   修正后的代码能正确处理输入流程,准确查找两数之和索引。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-3 04:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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