用Python完成乙個匯率轉換器

2021-10-09 14:22:24 字數 3887 閱讀 9190

閱讀本文需要3分鐘

首先,它不可以實時的獲取匯率的值,每次都需要我們自己去定義乙個匯率轉換值,這個就會顯得不是很智慧型,有點機械,所以我們這乙個利用爬蟲爬取乙個**裡面的匯率值(一直在更新的),這裡我們利用xpath來獲取這個資料值

其次我們發現在之前的程式裡面,我們好像只能輸入兩位數的貨幣資料,這一次我們通過正負索引的方法,只獲取除了最後三個單位的之外的資料即可,靈活的運用,然後輸出最後帶入單位,最後讓輸出個更加的美觀和直接。

下面我們來看看爬蟲資料的**

首先我們看看這個**,我們來解析一下這個網頁的資料頁面

導入庫和爬取資料

import requestsfrom lxml import etreeheaders =url = ""def get_huilv(url, headers1):res = requests.get(url=url, headers=headers1, timeout=2)# print(res.status_code)#列印狀態碼html = etree.html(res.text)usd_vs_rmb_0 = html.xpath('//div[@id="main"]/div[1]/div[2]/span[1]/text()')for a in usd_vs_rmb_0:b = ausd_vs_rmb_1 = float(b)print("實時匯率為:{}".format(usd_vs_rmb_1))
這裡的xpath語法規則,大家可以移步於初識爬蟲之xpath語法篇看看,其實一條語句就可以解決,非常的方便。

轉換程式**

currency_str_value = 0while currency_str_value != "":usd_vs_rmb = float(str(usd_vs_rmb_1))# 輸入帶單位的貨幣金額currency_str_value = input('請輸入帶單位貨幣的金額:')# 獲取貨幣單位unit = currency_str_value[-3:].upper()  # 第一次判斷if unit == 'cny':exchange_rate = 1 / usd_vs_rmbstring = "美元"elif unit == 'usd':exchange_rate = usd_vs_rmbstring = "元"else:exchange_rate = -1if exchange_rate != -1:in_money = eval(currency_str_value[0:-3])# 使用lambda定義函式convert_currency2 = lambda x: x * exchange_rate# 呼叫lambda函式out_money = convert_currency2(in_money)print('轉換後的金額是:{} {} '.format(round(out_money), string))else:print('無法計算')
其實裡面沒有什麼難點,只是對於一些語法不夠熟練的小夥伴來說有一點難,不過多看幾次就好了

下面我們來看看演示效果

全部**

# -*- coding :  utf-8 -*-import requestsfrom lxml import etreeheaders =url = ""def get_huilv(url, headers1):res = requests.get(url=url, headers=headers1, timeout=2)# print(res.status_code)#列印狀態碼html = etree.html(res.text)usd_vs_rmb_0 = html.xpath('//div[@id="main"]/div[1]/div[2]/span[1]/text()')for a in usd_vs_rmb_0:b = ausd_vs_rmb_1 = float(b)print("實時匯率為:{}".format(usd_vs_rmb_1))currency_str_value = 0while currency_str_value != "":usd_vs_rmb = float(str(usd_vs_rmb_1))# 輸入帶單位的貨幣金額currency_str_value = input('請輸入帶單位貨幣的金額:')# 獲取貨幣單位unit = currency_str_value[-3:].upper()  # 第一次判斷if unit == 'cny':exchange_rate = 1 / usd_vs_rmbstring = "美元"elif unit == 'usd':exchange_rate = usd_vs_rmbstring = "元"else:exchange_rate = -1if exchange_rate != -1:in_money = eval(currency_str_value[0:-3])# 使用lambda定義函式convert_currency2 = lambda x: x * exchange_rate# 呼叫lambda函式out_money = convert_currency2(in_money)print('轉換後的金額是:{} {} '.format(out_money, string))else:print('無法計算')get_huilv(url, headers)

用python爬取資料進行匯率轉換

an highlighted block import re import json import urllib.request import pandas as pd import datetime import time 填入需要被轉換的貨幣英文縮寫 from currency cny cop ...

完成乙個MVC Nhibernate Jquery

一 最近學習了jquery easyui框架,結合之前用過的mvc3 nhibernate做乙個資訊發布系統,對工作一年半的自己做乙個總結吧!也正好 供初學者學習!二 先上截圖 系統簡介 讓大家了解一下最近做的東西 1 登入頁 系統登入後台的頁面,用的jquery easyui中 dialog功能,...

用python建模 用Python建模乙個線性系統

我知道這有點舊,但搜尋引起了我的這個問題。當我找不到乙個好的模組時,我把它放在一起。這並不多,但如果有人發現他們在這裡,這是乙個好的開始。import matplotlib.pylab as plt import numpy as np import scipy.signal def bode g,...