You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python入门求助:列表元素仍为字符串而非整数的问题排查

问题分析与解决方案

嘿,这个问题其实是Python新手非常容易踩的小坑,我来给你掰扯清楚:

你代码里的核心问题是:你调用了int(input1)做类型转换,但没有把转换后的结果保存下来!

看你循环里的这段代码:

input1 = (input('Enter 2 positive, whole numbers you would like to multiply '))
int(input1)  # 这里只是做了转换,但结果没存回变量
input_list = input_list + [input1]

int()函数会把输入的字符串转换成整数,但它不会自动修改原来的input1变量——你得把转换后的结果重新赋值给input1,或者直接在赋值的时候完成转换,否则input1还是原来的字符串,加到列表里的自然也是字符串,最后调用multiply的时候就会因为传了字符串而报错啦。

修正后的代码方案

方案一:直接在赋值时完成类型转换(推荐)

这种写法更简洁,一步到位:

def multiply(a, b):
    c = a * b
    return c

input_list = []
for items in range(1, 3):
    # 直接把输入转成整数后赋值给input1
    input1 = int(input('Enter 2 positive, whole numbers you would like to multiply '))
    # 用append往列表里加元素,比input_list + [input1]更高效
    input_list.append(input1)

result = multiply(input_list[0], input_list[1])
print(result)

方案二:先获取输入再转换赋值

如果你想把步骤拆开来写,也可以这样:

def multiply(a, b):
    c = a * b
    return c

input_list = []
for items in range(1, 3):
    input1 = input('Enter 2 positive, whole numbers you would like to multiply ')
    # 把转换后的整数存回input1变量
    input1 = int(input1)
    input_list.append(input1)

result = multiply(input_list[0], input_list[1])
print(result)

额外小提示

  • 用list.append()代替input_list = input_list + [input1]:每次用+拼接列表都会创建一个新的列表对象,而append是直接在原列表上添加元素,效率更高,代码也更简洁。
  • 可以考虑加个输入验证,比如判断用户输入的是不是正整数,避免非数字输入导致报错,但这是进阶内容,等你熟悉基础之后再尝试也没问题~

内容的提问来源于stack exchange,提问作者mike-telford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:59:16