用Python 實現簡單的匯率計算

 

1.0:最原始的算法,input 輸入人民幣後,eval將字符串變爲數字,匯率定位默認值(6.77),計算出轉換的美元金額後用print()輸出。

"""
匯率兌換1.0,初始算法
"""
RNB=input("請輸入人民幣金額:" )
R_value=eval(RNB)
vs=6.77
R_vs_U=R_value/vs
print("美元金額爲:",R_vs_U)
注意:輸出時字符串與數值型的輸出之間用冒號隔開。

2.0:增加了貨幣種類的判斷問題,1.0只能將RMB兌換爲USD。訪問輸入的貨幣最後3個字符(貨幣單位),用if elif else語句進行判斷,然後根據貨幣種類進行兌換


"""
貨幣兌換2.0(增加新功能)

"""
USD_vs_RMB=6.7
Price=input("請輸入帶單位的數據金額:")
unit=Price[-3:]
if unit=="CNY":
    RMB_str_value=Price[:-3]
    RMB_value=eval(RMB_str_value)
    #RMB_value=eval(Price)會報錯!!!
    USD_value=RMB_value/USD_vs_RMB
    print("美元(USD)金額爲:",USD_value)
elif unit=="USD":
    USD_str_value=Price[:-3]
    USD_value=eval(USD_str_value)
    RMB_value=USD_value*USD_vs_RMB
    print("人民幣(RMB)金額爲:",RMB_value)
else :
    print("目前版本不支持該種貨幣換算!")

注意:將可能出現的情況考慮全面,該算法只能進行RMB與USD之間的兌換,其他幣種不能實現兌換!


3.0: 加入循環(while)後,可以進行多次的貨幣兌換,直到退出(Q),while循環之內爲2.0的算法。
"""
貨幣兌換3.0(加入循環)

"""
USD_vs_RMB=6.7
i=0
Price=input("請輸入帶單位的數據金額(如果退出請輸入Q):")
while Price!="Q":
    i=i+1
    #print("循環次數爲:",i)
    unit=Price[-3:]
    if unit=="CNY":
        RMB_str_value=Price[:-3]
        RMB_value=eval(RMB_str_value)
        #RMB_value=eval(Price)會報錯!!!
        USD_value=RMB_value/USD_vs_RMB
        print("美元(USD)金額爲:",USD_value)
    elif unit=="USD":
        USD_str_value=Price[:-3]
        USD_value=eval(USD_str_value)
        RMB_value=USD_value*USD_vs_RMB
        print("人民幣(RMB)金額爲:",RMB_value)
    else :
        print("目前版本不支持該種貨幣換算!")
    print("*********************************************************************")
    Price = input("請輸入帶單位的數據金額(如果退出請輸入Q):")##如果不加這一句會出現死循環!!!!
print("您已退出該系統!")

注意:要注意死循環問題,通過更新輸入的貨幣金額防止死循環。

4.0: 將有關匯率計算的函數進行封裝,然後進行條件判斷(if elif),最後調用函數。
"""
貨幣兌換4.0(應用函數)

"""
def money_change(inv,exc):
    return  inv*exc
USD_vs_RMB=6.7
Price=input("請輸入帶單位的數據金額:")
unit=Price[-3:]
if unit=="CNY":
     exchange_rate=1/USD_vs_RMB
elif unit=="USD":
    exchange_rate=USD_vs_RMB
else :
    exchange_rate=-1
if exchange_rate!=-1:
    money_value=eval(Price[:-3])
    out_money=money_change(money_value,exchange_rate)
    print("兌換金額爲:",out_money)
else:
    print("不支持該種貨幣!!!")
5.0:將整個函數進行結構化,最後直接調用。lambda簡單函數的應用。
"""
使函數結構化
lambda函數的應用

"""

def main():
    USD_vs_RMB=6.7
    Price=input("請輸入帶單位的數據金額:")
    unit=Price[-3:]
    if unit=="CNY":
         exchange_rate=1/USD_vs_RMB
    elif unit=="USD":
        exchange_rate=USD_vs_RMB
    else :
        exchange_rate=-1
    if exchange_rate!=-1:
        money_value=eval(Price[:-3])
        ##out_money=money_change(money_value,exchange_rate)
        money_exchange=lambda x:x*exchange_rate
        out_money=money_exchange(money_value)
        print("兌換金額爲:",out_money)
    else:
        print("不支持該種貨幣!!!")
if __name__=="__main__":
    main()###主函數的調用

注意:調用主函數時的格式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章