人工智能学习联盟免费课程——案例一:汇率转换

案例一:汇率转换

代码主体

案例说明:通过循环、判断语句来实现对输入金额和单位的转换。不过这里的函数要求你输入的内容必须是“金额单位”的格式,且,只满足美元和人民币之间的转换。

def main():    
    usd_vs_rmb = 6.77
    i = 0
    print('欢迎使用货币转换器(退出请输入Q)。')
    value_string = input('请输入货币的金额和单位(CNY/USD)(示例:100CNY):')
    while value_string.upper() != 'Q' :
        unit = value_string[-3:]
        value = value_string[:-3]
        if unit.upper() == 'CNY' :
            usd = float(value) / usd_vs_rmb
            print('转换为美元为:',round(usd,3),'USD')
        elif unit.upper() == 'USD' :
            rmb = float(value) * usd_vs_rmb
            print('转换为人民币为:',round(rmb,3),'CNY')
        else :
            print('请输入人民币或者美元单位!')
        i += 1
        #print('循环次数:',str(i))
        print('\n*******************************************')
        value_string = input('请输入货币的金额和单位(CNY/USD)(示例:100CNY):')
    print('程序已结束!')

#封装函数之后对函数进行调用,使整体更加简洁 
if __name__ == '__main__':
    main()

函数说明:当输入以CNY或者RMB结尾的字符串时,函数将根据输入的货币单位进行判断,把相应的金额进行转换,并输出转换后的金额和货币单位。当输入q时将停止运算。
课程中是用的是eval()函数来实现对输入字符串中的金额(数字)的提取,我使用的则是浮点数函数。
其次,我添加了upper()函数来避免大小写不一致带来的错误。最后,在最终结果的输出时,我使用了round()函数来规范输出结果,使得结果更加美观。

课后思考

在学习过程中我就有两个思考,一个是如何实现多种货币的识别和转换;另一个是如何获得实时的汇率。
刚好这两点思考和课程中最后的课后思考不谋而合。
关于第一点,课程给出的提示是借助于集合进行操作。而我的做法是借助字典进行处理,不过目前只能实现单向转换:外币到人民币。

##思考1.1
#函数目的:将所有给出的货币转化为人民币
print('欢迎使用货币转换器(退出请输入Q)。')
currency_list = {'EUR':7.63,'AUD':4.76,'USD':6.72,'GBP':8.93,'JPY':0.06}
value_string = input('请输入货币的金额和单位(示例:100CNY,输入Q退出):')
i = 1
while value_string.upper() !='Q' :
    unit = value_string[-3:]
    value = value_string[:-3]
    if unit.upper() in currency_list.keys() :
        value = float(value) * currency_list[unit]
        print('转换为人民币为:',round(value,3),'CNY')
    else :
        print('请输入如下货币:')
        unit_list = list(currency_list.keys())
        for i in range(0,len(unit_list)):
            print(unit_list[i],end=' ')
    i += 1
    print('\n*******************************************')
    value_string = input('请输入货币的金额和单位(示例:100CNY,输入Q退出):')
print('程序已结束!')

上面的函数实现了,当输入的字符串以字典中已有的货币单位结尾时,将转换成人民币单位,若不是已有的货币单位,将打印出现在支持的货币类型并且再次输出。
然后就我就突发奇想去做双向了,还好,很简单就实现了。数据如下:
在这里插入图片描述

import pandas as pd
currency_data = pd.read_csv('currency_rating.csv',index_col=0)

value_string = input('请输入货币的金额和单位(示例:100CNY,输入Q退出):')
units = list(currency_data.columns)
i = 1
while value_string.upper() !='Q' :
    unit_to = input('请输入想要转换成的货币单位(示例:USD):')
    unit_from = value_string[-3:]
    value = value_string[:-3]
    if unit_from.upper() in units :
        if unit_to.upper() in units :
            value = float(value) * currency_data.loc[unit_from,unit_to]
            print('转换为',unit_to,'为:',round(value,3))
        else :
            print('请输入如下货币:')
            for i in range(0,len(units)):
                print(units[i],end=' ')
    else :
        print('请输入如下货币:')
        for i in range(0,len(units)):
            print(units[i],end=' ')
    i += 1
    print('\n*******************************************')
    value_string = input('请输入货币的金额和单位(示例:100CNY,输入Q退出):')
print('程序已结束!')

第二点毋庸置疑肯定要借助于爬虫技术。所以这里先留个坑,等学会了爬虫就来把这这个问题解决了并且完善一下第一个问题,做一个自己的货币转换器哈哈哈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值