Python-函数

上传人:cn****1 文档编号:496138094 上传时间:2024-01-22 格式:DOC 页数:20 大小:85.50KB
返回 下载 相关 举报
Python-函数_第1页
第1页 / 共20页
Python-函数_第2页
第2页 / 共20页
Python-函数_第3页
第3页 / 共20页
Python-函数_第4页
第4页 / 共20页
Python-函数_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Python-函数》由会员分享,可在线阅读,更多相关《Python-函数(20页珍藏版)》请在金锄头文库上搜索。

1、Python 函数1. 函数简介函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print();也可以自己创建函数,这被叫做用户自定义函数。2. 函数定义规则:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串,用于存放函数说明。函数内容以冒号起始,并且缩进。return 表达式 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。语法:1 d

2、ef functionname( parameters ):2 函数_文档字符串3 function_suite4 return expression默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。实例:以下为一个简单的Python函数,它将一个字符串作为传入参数,再打印到标准显示设备上。1 def printme( str ):2 打印传入的字符串到标准显示设备上3 print str4 return3. 函数调用定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。

3、如下实例调用了printme() 函数:复制代码 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 5 # 定义函数 6 def printme(str): 7 打印任何传入的字符串 8 print(str) 9 return10 11 # 调用函数12 printme(我要调用用户自定义函数!)13 printme(再次调用同一函数)复制代码输出结果:1 我要调用用户自定义函数!2 再次调用同一函数4. 按值传递参数和按引用传递参数所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,

4、原始的参数也被改变了。例如:复制代码 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 5 # 可写函数说明 6 def changeme(mylist): 7 修改传入的列表 8 mylist.append(1, 2, 3, 4) 9 print(函数内取值: , mylist)10 return11 12 # 调用 changeme 函数13 mylist = 10, 20, 3014 changeme(mylist)15 print(函数外取值: , mylist)复制代码输出结果:1 函数内取值: 10, 20, 30, 1,

5、2, 3, 42 函数外取值: 10, 20, 30, 1, 2, 3, 4传入函数的和在末尾添加新内容的对象用的是同一个引用。5.参数以下是调用函数时可使用的正式参数类型:必备参数关键字参数默认参数不定长参数必备参数必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。调用printme()函数,你必须传入一个参数,不然会出现语法错误:复制代码 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 # 可写函数说明 5 def printme(str): 6 打印任何传入的字符串 7 print(str) 8 return 9

6、10 # 调用printme函数11 printme()复制代码输出结果:1 Traceback (most recent call last):2 File D:/PycharmProjects/S15/day04/test.py, line 11, in 3 ()4 TypeError: printme() missing 1 required positional argument: str关键字参数关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。以下实例在函数

7、 printme() 调用时使用参数名:复制代码 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 5 # 可写函数说明 6 def printme(str): 7 打印任何传入的字符串 8 print(str) 9 return10 11 12 # 调用printme函数13 printme(str=My string);复制代码输出结果:1 My string下例能将关键字参数顺序不重要展示得更清楚:复制代码 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 5 # 可写函数

8、说明 6 def printinfo(name, age): 7 打印任何传入的字符串 8 print(Name: , name) 9 print(Age , age)10 return11 12 # 调用printinfo函数13 printinfo(age = 50, name = miki)复制代码以上实例输出结果:1 Name: miki2 Age 50缺省参数调用函数时,缺省参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:复制代码 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 5 #

9、可写函数说明 6 def printinfo(name, age=35): 7 打印任何传入的字符串 8 print(Name: , name) 9 print(Age , age)10 return11 12 13 # 调用printinfo函数14 printinfo(age=50, name=miki)15 printinfo(name=miki)复制代码以上实例输出结果:1 Name: miki2 Age 503 Name: miki4 Age 35不定长参数你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。基本语法如下:1 d

10、ef functionname(formal_args, *var_args_tuple ):2 函数_文档字符串3 function_suite4 return expression加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。如下实例:复制代码 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 5 # 可写函数说明 6 def printinfo(arg1, *vartuple): 7 打印任何传入的参数 8 print(输出: ) 9 print(arg1)10 for var in vartuple:11

11、 print(var)12 return13 14 # 调用printinfo 函数15 printinfo(10)16 printinfo(70, 60, 50)复制代码输出结果:复制代码1 输出: 2 103 输出: 4 705 606 50复制代码6. 匿名函数python 使用 lambda 来创建匿名函数。lambda 只是一个表达式,函数体比 def 简单很多。lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。lambda 函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。虽然 lambda 函数看起来只

12、能写一行,却不等同于 C 或 C+ 的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。语法lambda 函数的语法只包含一个语句,如下:1 lambda arg1 ,arg2,.argn:expression如下实例:复制代码1 #!/usr/bin/env python2 # -*- coding: UTF-8 -*-3 4 # 可写函数说明5 sum = lambda arg1, arg2: arg1 + arg26 7 # 调用sum函数8 print(相加后的值为 : , sum(10, 20)9 print(相加后的值为 : , sum(20, 20)复制代码输出结果

13、:1 相加后的值为 : 302 相加后的值为 : 407. return 语句return 语句表达式退出函数,选择性地向调用方返回一个表达式。不带参数值的 return 语句返回 None。如下实例:复制代码 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 5 # 可写函数说明 6 def sum(arg1, arg2): 7 # 返回2个参数的和. 8 total = arg1 + arg2 9 print(函数内 : , total)10 return total11 12 # 调用sum函数13 total = sum(10, 20)复制代码输出结果:1 函数内 : 308. 变量作用域一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里赋值的。变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下: 全局变量局部变量定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号