网页爬取后如何将USD价格列表转换为AUD(汇率1:1.32)
没问题,我来帮你搞定这个汇率转换的需求!你的思路完全正确——先把字符串转成浮点数,再乘以汇率,最后格式化回货币格式就行。咱们一步步来修改你的代码:
首先先修正原代码里的几个小细节:
- import语句要分开写,不符合Python规范的写法可能会引发报错
- 列表推导式里的变量名重复了,容易造成混淆
- 用
range(10)遍历不如直接遍历列表更直观、Pythonic
然后是核心的转换步骤:
- 提取到USD价格的数字字符串后,用
[:10]截取前10条,满足你的需求 - 把每个字符串转成
float类型,这样才能进行乘法运算 - 乘以汇率1.32后,用
round()保留两位小数(货币通常保留两位精度) - 最后用f-string格式化输出成你想要的
$XXX.XX => $YYY.YY格式
下面是修改后的完整代码:
from tkinter import * from re import findall, MULTILINE rss = open('rss.xhtml', encoding="utf8").read() # 提取价格数字并只保留前10条 usd_price_strings = findall(r'([0-9]+[.]*[0-9]*) USD', rss)[:10] # 遍历每条价格完成转换并输出 for price_str in usd_price_strings: # 字符串转浮点数 usd_price = float(price_str) # 计算AUD价格并保留两位小数 aud_price = round(usd_price * 1.32, 2) # 格式化输出示例格式 print(f"${price_str} => ${aud_price:.2f}")
如果你喜欢更简洁的写法,也可以用列表推导式一次性生成所有转换后的字符串:
from tkinter import * from re import findall, MULTILINE rss = open('rss.xhtml', encoding="utf8").read() usd_price_strings = findall(r'([0-9]+[.]*[0-9]*) USD', rss)[:10] # 用列表推导式生成转换后的结果 converted_results = [ f"${usd} => ${round(float(usd)*1.32, 2):.2f}" for usd in usd_price_strings ] # 逐个输出 for result in converted_results: print(result)
这样运行后就能得到你给出的示例那样的输出啦!
内容的提问来源于stack exchange,提问作者Twisted Fate
相关产品推荐
相关产品推荐

