4 回答
![?](http://img1.sycdn.imooc.com/54584f6d0001759002200220-100-100.jpg)
TA贡献1815条经验 获得超13个赞
您正在将字符串分配'%'给变量,但您想要除该字符之外的所有内容。将函数的开头更改为:
def format_change(string):
if string[-1] == "%":
string = string[:-1] # added ':'
![?](http://img1.sycdn.imooc.com/545869390001b87802200220-100-100.jpg)
TA贡献2041条经验 获得超4个赞
尝试这个:
解决方案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
![?](http://img1.sycdn.imooc.com/54584d1300016b9b02200220-100-100.jpg)
TA贡献1900条经验 获得超5个赞
如果您正在寻找单衬,您可以使用这个:
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
![?](http://img1.sycdn.imooc.com/5333a01a0001ee5302000200-100-100.jpg)
TA贡献1829条经验 获得超4个赞
尝试这个:
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%'))
添加回答
举报