在数字化转型中,选择合适的跨平台开发框架不仅能提高效率,还有助于确保数据安全与合规性。
1317
2022-11-22
初识python之汇率转换篇
前期文章介绍了一些语法知识,那么本期文章我们不讲语法,来实际操作一下,缓解一下学习python的乏味。
案例1
汇率计算 实现美元和人民币之间的汇率计算。涉及知识有函数,条件语句,字符串,while循环,还有一些简单的数字运算,相信大家都很好奇,下面让我们来看一看吧。
def convert_currency(im, er): out = im * er return outdef main(): currency_str_value = 0 while currency_str_value != "": USD_VS_RMB = 6.77 # 输入带单位的货币金额 currency_str_value = input('请输入带单位货币的金额: ') # 获取货币单位 unit = currency_str_value[-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: in_money = eval(currency_str_value[0:3]) # 使用lambda定义函数 convert_currency2 = lambda x: x * exchange_rate # 调用lambda函数 out_money = convert_currency2(in_money) print('转换后的金额是: ', out_money) else: print('无法计算')if __name__ == "__main__": main()
一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。因此if name == ‘main’: 的作用就是控制这两种情况执行代码的过程,在if name == ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。
所以这里的只有上面的代码正确,他才会执行
代码内部的一些我都在前期文章都有介绍,比如索引这些,还有while循环,当然有一个lambda函数没有介绍,这里我就介绍一下
lambda匿名函数的格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。其实lambda返回值是一个函数的地址,也就是函数对象。
注:下面的是其他博客的文章,我只是为了大家好理解,复制过来的,希望大家多多理解
Python中的lambda函数
lambda函数可以接受任意数量的参数,但函数只能包含一个表达式。表达式是lambda函数执行的一段代码,它可以返回任何值,也可以不返回任何值。
lambda函数可以返回函数对象。
从语法上讲,lambda函数只能有一个表达式。
在本文中,我们将详细讨论Python中的lambda函数,并演示使用它们的例子。
创建一个lambda函数
例如:
这段代码中,lambda num: num% 2是lambda函数。num是参数,num%2是表达式,用来计算后返回结果。该表达式获取输入参数除以2的模数并返回。将5作为参数传入,通过除以2进行计算,得到余数1.
上面定义的lambda函数返回一个product对象,该对象具有两个参数的值。
为什么使用lambda 函数?
Lambda函数主要在短时间内需要一个函数时才使用。当你想要将函数作为参数传递给高阶函数(即以其他函数作为参数的函数)时,通常使用这种方法。
下面的例子演示了在其他函数中使用匿名函数:
在上面的例子中,我们有一个函数,该函数传入一个参数,将它与一个未知数相乘。我们来演示一下怎样使用上面的函数:
在上面的脚本中,我们使用一个lambda函数与我们传入的数字10相乘。同样的函数也可以用来与数字1000相乘。
我们很有可能会使用到testfunc( )函数来在一个程序中定义上面的两个lambda函数:
Lambda函数可以和Python的内置函数一起使用,例如map(),filter()等。
在接下来的章节中,我们将讨论怎样在各种Python内置函数中使用lambda函数。
filter() 函数
Python中的filter( )函数接受一个列表参数和一个lambda函数参数。它的语法如下:
这里的object必须是一个返回布尔值的lambda函数。对迭代器中的每一项都会调用该函数来计算其结果是True或False。请注意,本函数只能接受一个迭代器作为输入。
lambda函数,和需要被处理的列表,被一同传递给filter( )函数。filter()函数将返回一个新的列表,新的列表中只包含旧列表中被lambda函数处理后返回值为True的那些元素。请参考下面给出的例子:
在上面的例子中,我们先创建了一个包含一系列整数的列表number_list,接着我们创建了一个lambda函数来检查大于7的整数。此lambda函数作为参数传递给filter()函数,过滤后的结果保存在一个名为filtered_list的新列表中。
map( ) 函数
map( )函数是另一个以一个函数对象和一个列表作为参数的内置函数。map函数的语法如下:
传入map()函数的迭代器可以是字典,列表等。map()函数主要是根据lambda函数定义的逻辑来将输入迭代器中的每一项映射到输出迭代器中的相关项。请参考以下的例子:
在上面的脚本中,我们先定义了一个由随机数组成的列表numbers_list,接着我们调用map()函数,并传递一个lambda函数作为参数。此lambda函数计算每个数除以2之后的余数。映射的结果保存在一个名为mapped_list的列表中。最后,我们打印出列表的内容。
结论
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~