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()###主函數的調用
注意:調用主函數時的格式