您好我想知道我是否可以比我更好地整理我的代码。
基本上答案就像x = "£1,094.99 "
我使用x.strip()
和x.strip("£")
以及x.replace(",")
然后x = float(x) * 1.18
将数字转换为欧元。
有什么方法可以提高效率?我是新手,所以我只是想知道。
答案 0 :(得分:8)
我经常使用的漂亮的衬垫是:
x = ''.join([c for c in x if c in '1234567890.'])
这样的事情:
x = "$1,094.99"
x = ''.join([c for c in x if c in '1234567890.'])
print x
会输出:
1094.99
然后你可以像往常一样使用你的浮动(x)* 1.18。我发现这是一个很好的方法,因为它是一些强大的东西。流浪的人物和美元符号而不是英镑符号不应该阻止它工作。
答案 1 :(得分:5)
您可以将其替换为''
float(data.replace(',','').replace('£',''))*1.18
答案 2 :(得分:1)
虽然它没有使用.split,但我总是找到你想要抓取所有非分隔符字符串(在这种情况下为数字)的问题,值得使用正则表达式。你只需要找到非白色或'。'
import re
x = "£1,094.99 "
number = float(''.join(re.findall('\w+|\.',s)))
euro = number * 1.18
答案 3 :(得分:0)
您可以使用re
和decimal
模块优雅地执行此操作,如下所示:
# -*- coding: utf-8 -*-
from re import sub
from decimal import Decimal
x = "£1,094.99"
value = Decimal(sub(r'[^\d.]', '', x))
print(value)
value_euro = float(value) * 1.18
print(value_euro)
这将导致:
1094.99
1292.0882