Python初学者 - 从列表项中提取int

时间:2014-08-29 03:13:00

标签: python list int

对于我的第一个编程'项目'我正在制作一个简单的程序,要求用户输入澳元金额,它将转换为中国人民币。我发现一些代码可以从网站上删除当前的转化率,但它的格式为CNY/AUD = 5.75218。我只想提取5.75218数字乘以用户输入。我做了很多搜索,无法找到解决方案。任何建议将不胜感激!!

from lxml import html
import requests
import re



page = requests.get('http://themoneyconverter.com/AUD/CNY.aspx')
tree = html.fromstring(page.text)


rate =  (tree.xpath('//textarea[@id="ratebox"]/text()'))


print 'The Exchange Rate is:  ', rate

2 个答案:

答案 0 :(得分:2)

我认为rateCNY/AUD = 5.75218。在处理资金时,我建议使用Decimal来准确表示十进制数字:

from decimal import Decimal

...

rate = Decimal(rate.split()[2])

事实上,请尝试考虑以下事项。想象一下,你总是有收入

0.1 + 0.1 + 0.1

现在假设您的付款总是为0.3。数学说你的收入等于0:

0.1 + 0.1 + 0.1 - 0.3 = 0

想象一下,您有10**20次这样的情景:

(0.1 + 0.1 + 0.1 - 0.3) * 10**20 = 0

您的收入仍然等于0.现在尝试在python shell中执行此操作并假设我们正在谈论美元:

(0.1 + 0.1 + 0.1 - 0.3) * 10**20 = ?

你刚刚赚了大约5551美元。

答案 1 :(得分:1)

您可以使用split方法。

对于rate = "CNY/AUD = 5.75218",您可以尝试以下代码

rate = rate.split()

使rate成为['CNY/AUD', '=', '5.75218']。然后在rate中选择第3个元素并将其转换为float:

rate = float(rate[2])

有关split

的详细信息,请参阅http://www.tutorialspoint.com/python/string_split.htm