逐梦帅年 发表于 2024-8-12 23:59:12

Python 列表1课后题


为什么我的代码就是走不到下面这个if分支里面来?求大神解答下


nums = []

while True:
    a = input("请录入一个整数(输入STOP结束):")
    #########
    if a == "STOP":
      break
    nums.append(a)

target = int(input("请录入目标整数:"))


i = 0

for i in range(len(nums)):
    for j in range(i+1,len(nums)):
      print("当前i和j是",i,j)
      if nums + nums == target:      //为什么我的代码就是走不到这个if分支里面来?
            print(nums)
            print(i,j)
   

FishC 发表于 2024-8-13 00:03:52

哈哈,不要担心,咱们来一起解决你的代码问题。首先,从你给的代码片段来看,有几个地方需要调整:

1. **列表初始化**: 你的代码中`nums = `是空的,需要初始化一个列表,比如`nums = []`。
2. **输入存储**: 您在输入后直接将其添加到`nums`中,但是输入的是字符串类型,之后你想用`int`进行比较,这可能会引发类型错误。
3. **条件判断**: 在这个条件判断`if nums + nums == target:`中,您试图将`nums`与自身相加,这并不会得出你想要的结果。你是在寻找两个元素的和是否等于目标值。

以下是修正后的代码版本:

nums = []# 初始化列表

while True:
    a = input("请录入一个整数(输入STOP结束):")
   
    if a == "STOP":
      break
    nums.append(int(a))# 将输入的字符串转换为整数并添加到列表中

target = int(input("请录入目标整数:"))

for i in range(len(nums)):
    for j in range(i + 1, len(nums)):
      print("当前i和j是", i, j)
      if nums + nums == target:# 修改条件判断
            print("找到的数字是:", nums, "和", nums)
            print("对应的索引是:", i, j)

### 关键修改说明:
- 确保初始化`nums`为一个空列表:`nums = []`
- 在添加输入时,使用`int(a)`将输入的字符串转换为整数。
- 修改if条件为`if nums + nums == target:`,这样就可以检查两个不同的列表元素是否加起来等于目标值。

希望这样可以帮助你顺利运行!如果还有其他问题,随时问我哦!

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

小甲鱼 发表于 2024-8-13 02:27:02

上述 AI 回复的第二点原因导致无法进入 if 语句。

William01 发表于 2024-8-13 07:51:42

请问你运行出来的结果是怎样的,能不能给贴出来看一下,谢谢!

343118612 发表于 2024-8-13 18:31:48

这是我运行的结果并没有出现你说的问题,可能是输入格式有问题
页: [1]
查看完整版本: Python 列表1课后题