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

2024-03-29 09:58:38 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我的第一个编程'项目',我正在做一个简单的程序,要求用户输入澳元金额,它将转换成人民币。我发现一些代码可以从一个网站上获取当前的转换率,但是它是以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

Tags: 项目text用户import程序treeratehtml
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

你的收入仍然等于零。现在试着在python shell中进行,假设我们谈论的是美元:

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

你刚刚赚了5551美元。你知道吗

您可以使用split方法。你知道吗

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

rate = rate.split()

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

rate = float(rate[2])

有关split的详细信息,请参阅http://www.tutorialspoint.com/python/string_split.htm。你知道吗

相关问题 更多 >