爱吃菠萝包 发表于 2025-3-16 14:59:22

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

本帖最后由 爱吃菠萝包 于 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


我打的代码:有一点点问题,求帮看看
while True:
    x=input("请录入一个整数(输入STOP结束):")
    if x=="STOP":
         print("请录入目标整数:",x)
      if x==100:
            nums =
            target = 9
            
            for i in range(nums):
                for j in range(nums):
                  if i+j== target:
                        print()
    if x!=100:
      print(x)

FishC 发表于 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 = # 示例数据
      target = 9
         
      for i in nums:
            for j in nums:
                if i + j == target:
                  print(f"{i} + {j} = {target}")


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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2025-3-16 16:07:31

本帖最后由 jackz007 于 2025-3-16 16:13 编辑

      别说问题,你的代码根本没法看,甚至无法猜出你的意图,你应该贴出题目要求(最好有样例),别人才好评判你的代码。

player-none 发表于 2025-3-16 19:14:53

同楼上,没有人知道你的程序意图何在。我们应该把他改成什么样?

如果你的意思是不让他报错的话,删掉那行continue即可

西西咕 发表于 2025-3-16 21:10:59

同意楼上,你这基本是瞎写

爱吃菠萝包 发表于 2025-3-17 12:55:05

西西咕 发表于 2025-3-16 21:10
同意楼上,你这基本是瞎写

好嘞,我错了,我重新改了一下啊,求指教

爱吃菠萝包 发表于 2025-3-17 12:55:36

jackz007 发表于 2025-3-16 16:07
别说问题,你的代码根本没法看,甚至无法猜出你的意图,你应该贴出题目要求(最好有样例),别人才 ...

好嘞,我错了,我重新改了一下啊,求指教

jackz007 发表于 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 + nums == target :
            print('[%d , %d]' % (j , k))

      运行实况:
D:\\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


D:\\Python>

happyweeks365 发表于 2025-3-17 16:58:36

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

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

1. 输入处理应使用while循环收集有效数字到列表
2. 添加try-except处理非数字输入
3. 停止条件后单独处理目标值输入
4. 使用range(len(nums))获取正确索引范围
5. 修正双循环比较逻辑为索引访问元素
6. 添加结果输出格式
   修正后的代码能正确处理输入流程,准确查找两数之和索引。
页: [1]
查看完整版本: 大佬们,帮我看看哪有问题嘞?