首页 文章

TypeError:float()参数必须是字符串或数字,而不是'list' python

提问于
浏览
-5

我有一个Python的问题 . 这是我的代码:

def calcola():
            a = input()
            b = float(a[0].split("*"))
            c = float(a[0].split("/")) 
            d = float(a[0].split("-"))
            e = float(a[0].split("+"))
            j = float(a[1].split("*"))
            k = float(a[1].split("/")) 
            l = float(a[1].split("-")) 
            m = float(a[1].split("+")) 
            b = b[0]
            c = b[1]
            d = c[0]
            e = c[1]
            f = d[0]
            g = d[1]
            h = e[0]
            i = e[1]
            somma1 = b+c
            somma2 = d+e
            somma3 = f+g
            somma4 = h+i
            print(somma1)
            print(somma2)
            print(somma3)
            print(somma4)


calcola()

我有一些错误:

回溯(最近一次调用最后一次):文件“file.py”,第29行,在calcola()文件“file.py”,第3行,在calcola中b = float(a [0] .split(“*”) )TypeError:float()参数必须是字符串或数字,而不是'list'

如何在列表中转换数字?

1 回答

  • 7

    您不能直接在列表中调用 float . 您可以使用 map 在列表中的每个项目上调用 float . 像这样:

    b = map(float, a[0].split("*"))
    

    在python 3.x中

    b = list(map(float, a[0].split("*")))
    

    或者为了更具可读性,请使用列表推导 . 适用于python2和python3:

    b = [float(s) for s in a[0].split("*")]
    

    但请确保分割后的项目是可浮动的

相关问题