Python“ValueError:无法将字符串转换为浮点数:%”

Posted

技术标签:

【中文标题】Python“ValueError:无法将字符串转换为浮点数:%”【英文标题】:Python "ValueError: could not convert string to float: %" 【发布时间】:2021-01-11 17:45:51 【问题描述】:

我有一套说明:

创建一个名为 format_change 的函数,该函数接受一个字符串,例如 Change 列中的字符串,并执行以下操作:

如果最后一个字符是% 符号,请将其删除 将字符串转换为浮点数 如果浮点数为正,则乘以 100 返回结果 float

这是我的代码:

def format_change(string):
    if string[-1] == "%":
        string = string[-1]

    str_as_float = float(string)

    if str_as_float > 0:
        str_as_float = str_as_float * 100

return str_as_float

然而,当我进入函数时

format_change(0.45%)

它返回输出:

ValueError: 无法将字符串转换为浮点数:'%'

我该怎么做才能正确转换它?

【问题讨论】:

检查切片的工作原理here。您也可以使用str.replace('%','') 删除% 符号。 这是另一个好方法!下次我一定会使用它。会节省我宝贵的时间。非常感谢! 【参考方案1】:

您正在将字符串 '%' 分配给您的变量,但您想要除该字符之外的所有内容。将函数的开头更改为:

def format_change(string):
    if string[-1] == "%":
        string = string[:-1]  # added ':'

【讨论】:

【参考方案2】:

试试这个:

def format_change(string):
    if string[-1] == "%":
        string = string[:-1]
    
    str_as_float = float(string)

    if str_as_float > 0:
        str_as_float = str_as_float * 100

    return str_as_float


print(format_change('0.45%'))

【讨论】:

【参考方案3】:

试试这个:

解决方案 1

def format_change(string):
    if string.endswith("%"):
        string = string[0:-1]

    str_as_float = float(string)
    if str_as_float > 0:
        str_as_float = str_as_float * 100
    return str_as_float

print(format_change('-0.45%'))

解决方案 2

def format_change(string):
   if string.endswith('%'):
       return abs(float(string[0:-1]))*100

print(format_change('-0.45%'))

解决方案 3

def format_change(string):
    return abs(float(string.split('%')[0]))*100

print(format_change('-0.45%')

输出

45.0

【讨论】:

【参考方案4】:

如果您正在寻找单衬里,您可以使用这个:

def format_change(string):
    return float(string.replace('%',''))*100 if float(string.replace('%',''))>0 else float(string.replace('%',''))
format_change("-50%")
# -50.0
format_change("50%")
# 5000.0

【讨论】:

以上是关于Python“ValueError:无法将字符串转换为浮点数:%”的主要内容,如果未能解决你的问题,请参考以下文章

Python代写,Python作业代写,代写Python,代做Python

Python开发

Python,python,python

Python 介绍

Python学习之认识python

python初识