![代替VBA!用Python轻松实现Excel编程](https://wfqqreader-1252317822.image.myqcloud.com/cover/254/43738254/b_43738254.jpg)
1.12 函数
前面已经介绍了变量、表达式和流程控制,其中变量是最基本的语言元素,表达式是短语或一行语句,流程控制则用多行语句描述一个完整的逻辑。现在更进一步,介绍函数。函数实现一个相对完整的功能,这个功能被写成函数后,可以被反复调用,从而减少代码量,提高编程效率。
函数可以分为内部函数、标准模块函数、自定义函数和第三方库函数等。
1.12.1 内部函数
内部函数(或者说内置函数)是Python内部自带的函数。在介绍前面各节内容时,已经介绍了很多内部函数。总体来说,内部函数分为数据类型转换函数、数据操作函数、数据输入/输出函数、文件操作函数和数学计算函数等。
数据类型转换函数包括bool、int、float、complex、str、list、tuple、dict等,在介绍变量的数据类型时都已经介绍过,这里不再赘述。
数据操作函数包括type、format、range、slice、len等,除slice外都介绍过。slice函数定义一个切片对象,指定切片方式。将这个切片对象作为参数传递给一个可迭代对象,实现该可迭代对象的切片。
下面创建一个列表,创建第1个切片对象取前6个元素,创建第2个切片对象在2~8范围内隔一个数取一个数,然后分别用这两个切片对象对列表进行切片。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/078-1.jpg?sign=1739152093-30oa05NEUOKD1jIEA6em9h5GWqUBIpqB-0-c9427e959f4ba731c41a819a9afad0c1)
数据输入/输出函数包括input和print函数等,前面介绍过。文件操作函数如file和open,用于打开文件。
数学计算函数如表1-19所示。
表1-19 数学计算函数
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/078-2.jpg?sign=1739152093-IYPl2EyMTNdrBiLCFCJ4DP1nGKqCDqVH-0-1fbcea3618c3d3d90640a2e74c3cab12)
下面举几个例子来说明数学计算函数的使用。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/078-3.jpg?sign=1739152093-JkGVphfx7cTLpoZU7PJa1HrYaBRSkyf1-0-0858d9e5317a590fcdd6a0f289a5b574)
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/079-1.jpg?sign=1739152093-aWwzTw1Ke2fHnzEwWH8MFcAH2AZllEos-0-d0c979f642918bf970a0776e0290f089)
1.12.2 标准模块函数
Python内置了很多标准模块,在每个标准模块中都有很多封装好的函数,用于提供一定的功能。下面主要介绍math模块、cmath模块和random模块,它们分别提供了数学计算、复数运算和随机数生成的功能。
1. math模块的数学函数
math模块提供了大量数学函数,包括一般数学操作函数、三角函数、对数指数函数、双曲函数、数论函数和角度弧度转换函数等。
在使用math模块的数学函数之前,需要先导入math模块,即:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/079-2.jpg?sign=1739152093-f9roY63EQ1kaYWIw7bkETjocrx33JuRL-0-5ec526ea92f93daf84fb20e79dcafabf)
使用dir函数,可以列出math模块提供的全部数学函数。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/079-3.jpg?sign=1739152093-XG62DHnZ0kKXFdv1yM89U86M1CgQ5AaA-0-cf7b11f733bae82df311ce5b8e5e6464)
math模块的部分数学函数说明如表1-20所示
表1-20 math模块的数学函数(部分)
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/079-4.jpg?sign=1739152093-AOwl4RnG1lVHkUpqup7Td8ry7a89xYOd-0-2bba53ae064035ccd4a4d45095b57209)
2. cmath模块的复数运算函数
使用cmath模块提供的函数进行复数运算。导入cmath模块,用dir函数列出该模块的所有函数。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/080-2.jpg?sign=1739152093-wqY2pUoaY1RwTcAcDP0GlzGwbRblnD8N-0-3b6f836ac2e504d986cb4c549ae3326a)
大部分复数运算函数的含义与实数运算函数相同,只是参数是复数。
3. random模块的随机数生成函数
random模块提供了各种随机数生成函数。在使用random模块前,需要导入该模块,即:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/080-3.jpg?sign=1739152093-9cM1S0jahSMH3T7WA8Bor09K4X6mLtaE-0-dca9271b9c197739c3e2f065e4f6cd85)
使用random函数生成0~1之间的随机数。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/080-4.jpg?sign=1739152093-kXuqYABEcYtOBXcvAbl0FEijJHoVRAP8-0-65cd03cd47e716d9c464a35a1308df24)
使用randrange函数从指定序列中随机选取一个数。该函数可以指定序列起点、终点和步长。下面指定序列为10~50,步长为2,然后从这个序列中随机选取一个数。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/080-5.jpg?sign=1739152093-RJG0esoJjFFE60OWYNOBTmQGMTNAe6la-0-815dbb8b217986cbb2d57e7cc4d66c20)
使用循环,可以连续生成随机数。下面连续生成10个取自该序列的随机数,并组成一个列表。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/081-2.jpg?sign=1739152093-6acxO9pOpsJJIWLZfy5NnAkOLZYxoklc-0-bb5e2f9ea1468a7d965fc7c21895382a)
使用uniform函数可以生成指定范围内满足均匀分布的随机数。下面生成10个1~2之间的满足均匀分布的随机数,组成一个列表。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/081-3.jpg?sign=1739152093-MwCmUnFP9hvbxAEb332y5cLmyf96Nidd-0-26df4cfd455238a284c02fc8d9d55824)
使用choice函数可以从指定的可迭代对象中随机选取一个数。下面创建一个列表,然后使用choice函数从中随机选取一个数。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/081-4.jpg?sign=1739152093-oSKR9jsBPvFLTWWLE8BHitCplLTAVzFn-0-db6c8cc055ab0358b076a1574a55cadd)
使用shuffle函数可以将可迭代对象中的数据进行置乱,即随机排序。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/081-5.jpg?sign=1739152093-hWPE6DnthMcOqqpVKrS9hwcMYUee9X81-0-e56cd5555fea9fa0423a51cf7b9f52b0)
使用sample函数可以从指定序列中随机选取指定大小的样本。下面从列表lst中随机选取6个数组成新的样本。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/081-6.jpg?sign=1739152093-VAUPZ5b9tFrSK8gCa4upFtvE7dCxdsIm-0-acbc5d84ff8ba72cb071118769e86c48)
1.12.3 自定义函数
除了使用Python提供的内部函数、内部模块的函数以及第三方模块的函数,还可以自定义函数来实现一定的功能。
1. 函数定义和调用
自定义函数的语法格式为:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/082-1.jpg?sign=1739152093-ahBt5CPD0VKQtdR4dRs2jCq2r8TYGzcq-0-03c34b6186c270e68254aee10401500a)
其中,def和return是关键字,functionname为函数名,parameters为参数列表。注意小括号后面有一个冒号。冒号下面第1行添加注释,说明函数的功能,可以使用help函数进行查看。函数体各语句用代码定义函数的功能。def关键字打头,return语句结尾,有表达式时返回函数的返回值,没有表达式时返回None。
在函数定义好以后,可以在模块中的其他位置进行调用,在调用时指定函数名和参数,如果有返回值,则指定引用返回值的变量。
函数可以没有参数,也可以没有返回值。下面定义一个函数,用一连串的星号作为输出内容的分隔行。在定义该函数后进行3种运算,并在输出结果时调用该函数绘制星号分隔行来分隔各种运算结果。该文件位于Samples目录下的ch01子目录中,文件名为sam01-18.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/082-2.jpg?sign=1739152093-gLYVPSUH5UyApH1aBzQ8O8uug3hRxyqB-0-0bffdc9bdbcebbc43ac39eafd7fe5002)
第1~4行定义starline函数,绘制星号分隔行。第6~8行对两个数做加法运算,并输出运算结果。第9行调用starline函数绘制分隔行。第10行和第11行对两个数做减法运算,并输出运算结果。第12行调用starline函数绘制分隔行。第13行和第14行对两个数做乘法运算,并输出运算结果。第15行用help函数输出starline函数的功能说明。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/082-3.jpg?sign=1739152093-3oZEPZDzFsaWm2gXjdekpTVjs0ntLk0p-0-99029e89dd5071681d95214385c443c9)
可见,在函数定义好以后,可以进行重复调用,以提高编程效率。
上面定义的starline函数没有参数,也没有返回值。下面定义一个mysum函数,对给定的两个数求和。所以,该函数有两个输入参数和一个返回值。该文件位于Samples目录下的ch01子目录中,文件名为sam01-19.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/083-2.jpg?sign=1739152093-uQL99QKapUyzY47Kda0G0BeztwxEulwM-0-1199db51cda13c0e1878c2ded9f08774)
第1~3行定义mysum函数求和,参数a和b表示给定的两个数。第3行用return语句返回它们的和。第5行调用mysum函数,计算并输出3和6的和。第6行调用mysum函数,计算并输出12和9的和。在定义函数时指定的参数a和b称为形参,即形式参数;在调用函数时指定的与形参a和b对应的数如3和6称为实参,即真实参数。形参和实参的个数要相同。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/083-3.jpg?sign=1739152093-Pz9SiJFkurbdGjOo9aw4pIoZjJpyNmPU-0-fdc44c7e5a81fec8d166be3ee1f2e43d)
2. 有多个返回值的情况
在前面两个例子中,函数没有返回值或者只有一个返回值。下面介绍函数有多个返回值的情况。
下面定义一个函数,指定两个参数值,返回它们的和与差。该文件位于Samples目录下的ch01子目录中,文件名为sam01-20.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/083-4.jpg?sign=1739152093-9iloz4veyBSRdUlNiwAXRT9ZGhfVpjwg-0-2624a36222d5190ac6b4de7e743ac88c)
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/084-1.jpg?sign=1739152093-1wyTfKyx0o0y9mRle8ooNxjuAkUhYYtP-0-7cb4a6ca8aaaa4dad85e8d41da79ecbf)
第1~4行定义mycomp函数,计算给定的两个值的和与差。第4行用return语句返回结果,在表示和与差的变量之间用逗号分隔。第6行调用mycomp函数,计算2和3的和与差,赋值给变量c和d。第7行和第8行输出和与差。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/084-2.jpg?sign=1739152093-46aLAvxKKfXiLjqjHMXq7Qd719Icyrm2-0-0c4108818a3de28fa9671752b3b004d3)
当函数有多个返回值时,也可以将这些返回值添加到列表中,用return语句返回该列表。下面改写上例。该文件位于Samples目录下的ch01子目录中,文件名为sam01-21.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/084-3.jpg?sign=1739152093-ZRZF6Mk7oPqQK3LX79ri6M2WUamTb8al-0-6b599ab8038d732849aed923b01d63fc)
第1~5行定义mycomp函数,计算给定的两个值的和与差,并把它们添加到一个列表中。第5行用return语句返回列表。第7行调用mycomp函数,计算2和3的和与差,赋值给变量data。第8行输出元素为和与差的列表。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/084-4.jpg?sign=1739152093-yYowBjNPAklidBdyN1aC65YDF3V7ErGP-0-327681f8ab12211456e76da334a36bb1)
3. 默认参数
在定义函数时,对函数参数使用赋值语句可以指定该参数的默认值。下面定义defaultpara函数,该函数有两个参数,即id和score,并指定score参数的默认值为80。该文件位于Samples目录下的ch01子目录中,文件名为sam01-22.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/084-5.jpg?sign=1739152093-lKrh6JpUUYqbjbUJALrBGcdTLf4NGh1T-0-7ef1a4f189778fa9b32c0a320eb3a79a)
第1~4行定义defaultpara函数,指定score参数的默认值为80,然后输出两个参数的值,没有返回值。第6行调用defaultpara函数,只指定id参数的值为"No001"。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/085-2.jpg?sign=1739152093-FJQw5eDinftmdUd9HY3NCi7Rlb1SHNHd-0-c2950548f6a07719835dfb0c8199b7bd)
可见,在没有传入score参数的值时,取了默认值80。
4. 可变参数
所谓可变参数,是指参数的个数是不确定的,可以是0个、1个甚至任意多个。包含可变参数的函数的定义如下:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/085-3.jpg?sign=1739152093-W1FNDhd4lL38F6ymI9MTkh3SOWO7p1JD-0-c3e6d56a4c3e3ae6342003b148ebf92c)
其中,[args,]定义必选参数,*args_tuple定义可变参数。*args_tuple是作为一个元组传递进来的。
下面定义一个函数进行求和运算,该运算的第1个数据是确定的,后面的数据不确定,数据个数和数据大小都不确定。该文件位于Samples目录下的ch01子目录中,文件名为sam01-23.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/085-4.jpg?sign=1739152093-JAj1hLQMbni7xjatMXcbSsQUQffuGQHw-0-05ccc23b1cb87687e5154d2f1a6bea05)
第1~5行定义mysum函数,arg1为必选参数,*vartuple为可变参数,用一个for循环对确定参数传递的数据和vartuple元组中的数据累加求和。第7行调用mysum函数,指定参数数据,返回各数据的和。第8行输出和。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/086-1.jpg?sign=1739152093-l8GapKcu24bX3yEK12GCSygr1zna6k1p-0-e4074180079d75dbc474061d7df10cd6)
5. 参数为字典
如果参数带两个星号,则表示该参数为字典。传递字典参数的函数语法格式为:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/086-2.jpg?sign=1739152093-HwvWW44Kn91QiULg2J99WLUizu3AsNng-0-277ed468f27cbb8681854c34eee281f1)
其中,[args,]定义必选参数,**args_dict定义字典参数。注意有两个星号。在调用函数时指定两个实参,对应于字典的键和值。
下面定义一个函数,参数为字典,功能是输出字典数据。该文件位于Samples目录下的ch01子目录中,文件名为sam01-24.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/086-3.jpg?sign=1739152093-RLC1qLY4EUlLfYezbtlmQWMpDmiDFihO-0-ac5b1fbd8b35e84217d67c2aab5fb30c)
第1行和第2行定义函数,参数为字典。第4行调用该函数,注意实参的输入方式。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/086-4.jpg?sign=1739152093-3sUWT931RN5jj7CdGjJExPmafLRZTFyo-0-c401e35d462ad08ffc9fc4014cc0f83e)
6. 传值还是传址
在Python中,万物皆对象。对象三要素包括对象的内存存储地址、对象的数据类型和对象的值。在函数中对象作为参数传递时,需要搞清楚函数传递的是对象的地址还是对象的值。传址和传值的主要区别在于,如果在函数体中对参数的值进行了修改,在调用该函数前后,若是按传址方式传递的,则该参数的值会改变;若是按传值方式传递的,则该参数的值不变。
所以,在Python中,对于不可变类型,包括字符串、元组和数字,作为函数参数时是按传值方式传递的。此时传递的是对象的值,修改的是一个复制的对象,不影响对象本身。对于可变类型,包括列表和字典,作为函数参数时是按传址方式传递的。此时传递的是对象本身,修改它后在函数外部也会受影响。
下面举例进行说明。对于不可变类型,下面的函数传递一个字符串,查看在调用该函数前后参数的值有没有变化。该文件位于Samples目录下的ch01子目录中,文件名为sam01-25.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/086-5.jpg?sign=1739152093-ROVVi0fW8AoAMmtzjQNhOIvQQmHJj2kM-0-a47f4bccbd2a6ab48da87e6ec3da8801)
第1行和第2行定义函数,修改参数的值为"python"。第4~6行给变量b赋初值"hello",将变量b作为参数调用函数,修改参数的值,然后输出变量b的值。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/087-2.jpg?sign=1739152093-tRmqK6R9rCYePgoZTI8GOnsHMVomr8ro-0-1a6f73bb99b2297105a82f4d57702dc6)
可见,在调用函数前后变量的值不变,参数按传值方式传递。
对于可变类型,下面的函数传递一个列表,在函数体中给列表添加一个列表元素。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/087-3.jpg?sign=1739152093-iyblbJwY3RVI0UNoHSsdhcubfBSPF4f5-0-4acce35227da9de269ce5d2e75d5127a)
第1~3行定义函数,给传入的列表添加一个列表元素。第5行和第6行创建一个列表,输出它。第7行和第8行将列表作为参数调用函数,然后输出列表。比较在调用函数前后列表是否有变化。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/087-4.jpg?sign=1739152093-j8VptycpgBQnrGUJwZB9Jsu1jHwcbMl5-0-05ace9d7ba89373b711aff25707fe413)
可见,在调用函数前后列表发生了变化,参数按传址方式传递。
1.12.4 变量的作用范围
根据变量的作用范围,变量可分为局部变量和全局变量。局部变量是指定义在函数内部的变量,只在对应的函数内部有效。全局变量是指在函数外部创建的变量,或者是使用global关键字声明的变量。全局变量可以在整个程序范围内访问。
下面定义一个函数f1,函数中变量v为局部变量,它的作用范围就在函数f1内部。该文件位于Samples目录下的ch01子目录中,文件名为sam01-27.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/088-1.jpg?sign=1739152093-LQMhzpIY9VgeYuG350CYONUbYoZhbDzE-0-18dfa18ebfd0110c84b149e0d20f5bcf)
第1行给变量v赋值10。第2行输出v的值。第4行和第5行定义函数f1,给局部变量v赋值20。第7行调用f1函数。第8行输出变量v的值。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/088-2.jpg?sign=1739152093-D3c9UDxEI07Lp4gT5N14GJhsy23vPZOr-0-a4e65620878110ed94235a3bffe5e341)
可见,在调用f1函数前后变量v的值没有改变,即在f1函数中设置的变量v的值只在该函数内部有效。
下面在f1函数中使用global关键字将变量v声明为全局变量,修改它的值,然后查看它的作用范围。该文件位于Samples目录下的ch01子目录中,文件名为sam01-28.py。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/088-3.jpg?sign=1739152093-PPovFObXN7HfVu8hz1cReJl2frTiNN4Q-0-5237df86e770d5b7eb4bccc715d0500b)
第4~6行定义函数f1,用global关键字将变量v声明为全局变量,修改v的值为20。第8行和第9行定义函数f2,输出变量v的值。第11行调用函数f1。第12行输出变量v的值。第13行调用函数f2,输出变量v的值。
在Python IDLE文件脚本窗口中,在“Run”菜单中单击“Run Module”选项,则IDLE命令行窗口显示下面的结果:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/089-1.jpg?sign=1739152093-00JBdju79Fs49QUGKWCqBmdumXKUNjcZ-0-2d66d3564051807d1acd109be3a560f2)
可见,由于f1函数中变量v被声明为全局变量,因此在调用f1函数前后v的值发生了改变。而且在其他函数中也可以使用全局变量。
1.12.5 匿名函数
顾名思义,匿名函数就是指没有显式命名的函数。它用更简洁的方式定义函数。在Python中使用lambda关键字创建匿名函数,语法格式为:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/089-2.jpg?sign=1739152093-vu15D6v9eKfEJ58rpFVFmmzNXxOlEEEi-0-ffdb89032ad0dc3592a25c88f5f0ea3d)
其中,lambda为关键字,在它后面声明参数,然后在冒号后面书写函数表达式。fn可作为函数的名称使用,调用格式为:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/089-3.jpg?sign=1739152093-IfTCnwOEoDgNARYwHHmETSpmSdwlw4fr-0-4a0823050685dbbf5b912b9259a2c56c)
下面在命令行中定义一个对两个数求积的匿名函数。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/089-4.jpg?sign=1739152093-0B1r55NbyeLLsD3onFtIv4X2Bf2U3XNt-0-55208184fb01cf6b7f12e16b577d6f82)
该函数有两个参数,即a和b,函数表达式为a*b。
调用该函数,计算并输出给定的两个数的积:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/089-5.jpg?sign=1739152093-ewUjEXcWfuhYGgMIJRWCfieT2P1Nqrl4-0-656a71c261058c15d132eb634e5f5621)