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

Python列表运算报错:can't multiply sequence by non-int of type 'float'

问题解决

错误原因

报错can't multiply sequence by non-int of type 'float'是因为你试图直接对列表bottles乘以浮点数0.1——Python中只有整数和列表相乘会重复列表元素,浮点数不能和列表做乘法操作,而你实际需求是把列表里的每个元素先乘以0.1,再求和。

修正方案

把求和的那一行代码修改为对列表中每个元素单独乘0.1后再求和,有两种写法:

写法1(推荐,更高效)

用生成器表达式传入sum():

print(sum(x * 0.1 for x in bottles))

写法2(列表推导式)

先生成每个元素乘0.1的新列表,再求和:

print(sum([x * 0.1 for x in bottles]))

完整修正后的代码

bottles = [] 

while True:
    option = str(input('would you like to continue? yes or quit '))  # 修正拼写错误contiune→continue

    if option == 'yes':
        bottles = [float(input("enter a number: ")) for _ in range(7)]
        print(sum(x * 0.1 for x in bottles))  # 修正求和逻辑

    if option == 'quit':
        quit("you get no payment")

额外说明:你代码里的contiune是拼写错误,改成continue更规范;float(sum(...))没必要,因为sum计算后的结果已经是浮点数,可直接打印。

内容的提问来源于stack exchange,提问作者jones007

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:20:52