本文设计一个汇率换算器程序,其功能是将外币换算成人民币,或者相反。为了程序简单,只考虑美元兑人民币换算。
01输入人民币,转换美元
简易版兑换程序,代码如下:
步骤一:动态输入人民币金额(得到字符串类型);
步骤二:将字符串转换为浮点型(小数类型);
步骤三:再根据汇率,计算出美元金额。
如何实现双向转换呢?
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:]都可以。
有了前面的基础知识,下面的代码就好理解了。
带数字的单位(如:100CNY)是字符串的后三位,通过反向索引,确定货币单位的起始值从-3开始的所有子字符串(currency_str_value[-3:]),即:CNY。
同样,金额起始值从0开始,结尾到反向索引-3的位置(取不到该位置的值),currency_str_value[0:-3],即:100。然后根据单位的不同,进行相应汇率的转换。
03实现重复多次转换
可以添加循环,并统计转换次数。当用户输入“Q”的时候退出程序。如下:
eval()和float()都可以将字符串转换为数值类型。eval()可以对字符串进行求值,但并不对参数字符串机械能安全性检查。如:eval('09')就会抛出异常(出错),而float()不会。
04通过函数让代码模块化
可以将汇率兑换功能封装到函数中。这样,便于阅读和复用,使程序模块化。
传入的参数分别为金额和相应的汇率,函数返回转换后的结果。
然后,在程序中调用即可。
因为该函数的功能比较简单,Python中有一种特殊的函数:
lambda函数:用于简单的、能够在一行内表示的函数,计算结果为返回值。其语法:<函数名>=lambda <参数列表>:<表达式>。改写上述代码:
第3行代码,采用的就是lambda函数,一句话就可以搞定问题,就不需要在前面单独定义封装函数了。
05小结
本文逐级递进:
先是最简单的汇率转换器(单向转换);
后增加货币单位,通过截取和判断和进行双向转换;
第三,追加循环,可以反复进行操作直到用户想退出为止;
最后,通过函数封装代码,模块化编程,让代码简洁明了。
从小游戏到航空航天系统,Python几乎支持所有开发;从机器学习到深度学习,Python是人工智能时代的主流语言。#少儿编程#培养孩子编程思维。