本文设计一个汇率换算器程序,其功能是将外币换算成人民币,或者相反。为了程序简单,只考虑美元兑人民币换算。

01输入人民币,转换美元

简易版兑换程序,代码如下:

python 修改单位长度 python中怎么进行单位换算_字符串

步骤一:动态输入人民币金额(得到字符串类型);

步骤二:将字符串转换为浮点型(小数类型);

步骤三:再根据汇率,计算出美元金额。

如何实现双向转换呢?

02输入带单位的金额,转换对应的货币值

可以给输入的金额带上单位,这样根据输入金额的货币单位判断是人民币还是美元?进行相应的转换计算。如:100CNY或100USD。

这里涉及到了字符串的截取,需要把数值和单位分离开来处理。字符串的访问分两种:一种是正向索引,即从前往后数,索引下标从0开始;比如:s=“ABC”,从前往后的索引下标依次是:0、1、2。

另一种是反向索引,即从后往前数,最后一个元素的索引下标从-1开始,依次向前推;比如:s=“ABC”,从前往后的索引下标依次是:-3、-2、-1。

读取单个字符,通过:字符串[下标]即可获取。如:读取字母“A”,可以s[0]或s[-3]均可。

还可以读取一个区间(子字符串):字符串[起始下标:结束下标]。

注意:子字符串包含起始下标,但不包含结束下标位置的元素。

比如:读取s=“ABC”前面两个字符即“AB”,可以s[0:3]或s[0:-1];也可以省略起始值s[:3]或s[:-1]都是一样的结果。若读取后面两个字符即“BC”,可以s[1:3]或[1:]或[-2:]都可以。

有了前面的基础知识,下面的代码就好理解了。

python 修改单位长度 python中怎么进行单位换算_python培训_02

带数字的单位(如:100CNY)是字符串的后三位,通过反向索引,确定货币单位的起始值从-3开始的所有子字符串(currency_str_value[-3:]),即:CNY。

同样,金额起始值从0开始,结尾到反向索引-3的位置(取不到该位置的值),currency_str_value[0:-3],即:100。然后根据单位的不同,进行相应汇率的转换。

python 修改单位长度 python中怎么进行单位换算_python_03

03实现重复多次转换

可以添加循环,并统计转换次数。当用户输入“Q”的时候退出程序。如下:

python 修改单位长度 python中怎么进行单位换算_python_04

eval()和float()都可以将字符串转换为数值类型。eval()可以对字符串进行求值,但并不对参数字符串机械能安全性检查。如:eval('09')就会抛出异常(出错),而float()不会。

04通过函数让代码模块化

可以将汇率兑换功能封装到函数中。这样,便于阅读和复用,使程序模块化。

python 修改单位长度 python中怎么进行单位换算_python 修改单位长度_05

传入的参数分别为金额和相应的汇率,函数返回转换后的结果。

然后,在程序中调用即可。

python 修改单位长度 python中怎么进行单位换算_开发语言_06

因为该函数的功能比较简单,Python中有一种特殊的函数:

lambda函数:用于简单的、能够在一行内表示的函数,计算结果为返回值。其语法:<函数名>=lambda <参数列表>:<表达式>。改写上述代码:

python 修改单位长度 python中怎么进行单位换算_python 修改单位长度_07

第3行代码,采用的就是lambda函数,一句话就可以搞定问题,就不需要在前面单独定义封装函数了。

05小结

本文逐级递进:

先是最简单的汇率转换器(单向转换);

后增加货币单位,通过截取和判断和进行双向转换;

第三,追加循环,可以反复进行操作直到用户想退出为止;

最后,通过函数封装代码,模块化编程,让代码简洁明了。

从小游戏到航空航天系统,Python几乎支持所有开发;从机器学习到深度学习,Python是人工智能时代的主流语言。#少儿编程#培养孩子编程思维。