开发者社区> 王小王-123> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

初识python之汇率转换篇

简介: 初识python之汇率转换篇
+关注继续查看

案例1

汇率计算

实现美元和人民币之间的汇率计算。涉及知识有函数,条件语句,字符串,while循环,还有一些简单的数字运算,相信大家都很好奇,下面让我们来看一看吧。


def convert_currency(im, er):
    out = im * er
    return out
def 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()

image.png

首先我们定义了关于运算汇率的函数,设置两个参数,便于后面我们的传入,这个叫形参,我们后面传入的叫实参,然后我又定义了一个函数,有的小伙伴可能看不懂后面那个`if name == “main”:

main()是什么,这里我解释一下这个函数


一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。因此if name == ‘main’: 的作用就是控制这两种情况执行代码的过程,在if name == ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。


所以这里的只有上面的代码正确,他才会执行


代码内部的一些我都在前期文章都有介绍,比如索引这些,还有while循环,当然有一个lambda函数没有介绍,这里我就介绍一下


lambda匿名函数的格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。其实lambda返回值是一个函数的地址,也就是函数对象。


注:下面的是其他博客的文章,我只是为了大家好理解,复制过来的,希望大家多多理解


Python中的lambda函数


在Python中,我们使用lambda关键字来声明一个匿名函数,这就是为什么我们将它们称为“lambda函数”。匿名函数是指没有声明函数名称的函数。尽管它们在语法上看起来不同,lambda函数的行为方式与使用def关键字声明的一般函数相同。以下是Python中 lambda函数的特点:


lambda函数可以接受任意数量的参数,但函数只能包含一个表达式。表达式是lambda函数执行的一段代码,它可以返回任何值,也可以不返回任何值。


lambda函数可以返回函数对象。


从语法上讲,lambda函数只能有一个表达式。


在本文中,我们将详细讨论Python中的lambda函数,并演示使用它们的例子。


创建一个lambda函数


我们使用以下语法来声明lambda函数:


正如上面所述,我们可以有很多个参数,但是只能有一个表达式。lambda操作符不能有任何声明,它返回一个函数对象,我们可以将此函数对象赋值给任何变量。


例如:


这段代码中,lambda num: num% 2是lambda函数。num是参数,num%2是表达式,用来计算后返回结果。该表达式获取输入参数除以2的模数并返回。将5作为参数传入,通过除以2进行计算,得到余数1.


你应该注意到,上面脚本中的lambda函数没有分配任何名称。它只是返回一个函数对象,该对象被分配给标识符remainder。然而,尽管函数是匿名的,我们还是可以像调用普通函数那样调用它。声明语句如下:


上面定义的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的列表中。最后,我们打印出列表的内容。


结论


在Python中,一个lambda函数是一个只有一行代码的函数,不需要进行函数名声明,它可以有很多个参数,但是只能有一个表达式。它和使用Python关键字def声明的函数具有相似的功能。大多数情况下,lambda函数只作为参数传递给其他函数。

————————————————

原文链接:https://blog.csdn.net/sinat_38682860/article/details/88917715


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【原创】Python 网易易盾滑块验证
【原创】Python 网易易盾滑块验证
49 0
说说Python中的类型转换有哪些?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!
21 0
经典 | 10 分钟速成 Python3
  Python 是由吉多·范罗苏姆(Guido Van Rossum)在 90 年代早期设计。它是如今最常用的编程语言之一。它的语法简洁且优美,几乎就是可执行的伪代码。   注意:这篇教程是基于 Python 3 写的。   # 用井字符开头的是单行注释   """ 多行字符串用三个引号   包裹,也常被用来做多   行注释   """   1. 原始数据类型和运算符   # 整数   3 #=> 3   # 算术没有什么出乎意料的   1 + 1 #=> 2   8 - 1 #=> 7   10 * 2 #=> 20   # 但是除法例外,会自动转换成浮点数
28 0
【Python】python对象与json相互转换
在网络通信中,json是一种常用的数据格式,对于python来讲,将类转化为json数据以及将json数据转化为对象是一件非常容易的事情。 下面给出两者转化的方法 # -*- coding: UTF-8 -*- import json #自定义类 class MyClass: #初始化 def __init__(self): self.a=2
2131 0
+关注
王小王-123
快乐代码,精彩人生!
268
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载