Python函数课件资料_第1页
Python函数课件资料_第2页
Python函数课件资料_第3页
Python函数课件资料_第4页
Python函数课件资料_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Python函数目录函数的定义函数的命名规则函数的说明函数的作用域函数的参数函数的返回值常用函数练习定义函数是一个能完成特定功能的代码块,可在程序中重复使用,减少程序的代码量和提高程序的执行效率。在python中函数定义语法如下:def function_name(arg1,arg2,.):statement return value 返回值不是必须的,如果没有return语句,则Python默认返回值None 函数名的命名规则 函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。 函数名是区分大小写的。函数名不能是保留字。Python使用名称空间的概念存储对象,这个名称空间就

2、是对象作用的区域, 不同对象存在于不同的作用域。 每个模块都有自已的全局作用域。函数定义的对象属局部作用域,只在函数内有效,不会影响全局作用域中的对象。赋值对象属局部作用域,除非使用global关键字进行声明。查找名字的规则 LGB规则-大多数名字引用在三个作用域中查找:先局部(Local),次之全局(Global),再次之内置(Build-in)。如想在局部作用域中改变全局作用域的对象,必须使用global关键字。 global声明把赋值的名字映射到一个包含它的模块的作用域中。 局部变量和全局变量在一个函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部

3、变量;在一个文件顶部定义的变量可以供该文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量。 如想在局部作用域中改变全局作用域的对象,必须使用global关键字。# coding=utf-8globalInt = 9 #定义一个函数 def myAdd(): localInt = 3 global gigi =7#在函数中定义一个局部变量 return globalInt + localInt #测试变量的局部性和全局性 print myAdd() print globalIntprint gi print localInt 函数的注释说明文档字符串在函数定义后紧跟的字符串会被认为

4、是函数的说明,使用help(函数名)可显示出来。import testhelp(add2)显示_doc_属性def add2(a,b):add two item togetherreturn (a+b)if _name_ = _main_:print add2(1,2)print add2(123,45) import test dir(test)_builtins_, _doc_, _file_, _name_, add2 help(test.add2)Help on function add2 in module test:add2(a, b) add two item together函

5、数的参数在一个函数中对参数名赋值不影响调用者 在一个函数中改变一个可变的对象参数会影响调用者,如列表,字典,数组等。参数是对象指针,无需定义传递的对象类型def test(a,b):return (a+b)print test(1,2)print test(1,2)print test(1,2)函数参数种类函数中的参数接收传递的值参数默认参数,如:def function(ARG=VALUE)元组(Tuples)参数:def function(*ARG),输入不定个数参数被放在元组中,如function(1,2,3)字典(dictionary)参数:def function(*ARG) ,输入

6、不定个数参数被放入字典中,如f(m=1,n=2)一些规则:默认值必须在非默认参数之后;在单个函数定义中,只能使用一个tuple参数(*ARG)或一个字典参数(*ARG)。tuple参数必须在连接参数和默认参数之后。字典参数必须在最后定义。函数返回值Return返回如无return,则认为返回None补充:从命令行获得参数使用sys模块的argv返回包括脚本全路径在内的参数,放在一个列表中import sysprint sys.argv修改获得星期的程序,使其从命令行获得参数常用函数 1/3abs(x):abs()返回一个数字的绝对值。如果给出复数,返回值就是该复数的模。callable(obj

7、ect):callable()函数用于测试对象是否可调用,如果可以则返回1(真);否则返回0(假)。可调用对象包括函数、方法、代码对象、类和已经定义了“调用”方法的类实例。 cmp(x,y) :cmp()函数比较x和y两个对象,并根据比较结果返回一个整数,如果xy,则返回1,如果x=y则返回0。isinstance(object,class-or-type-or-tuple) - bool测试对象类型 isinstance(a,str) help()help_builtin_常用函数 2/3divmod(x,y): divmod(x,y)函数完成除法运算,返回商和余数。 pow(x,y,z)

8、:pow()函数返回以x为底,y为指数的幂。如果给出z值,该函数就计算x的y次幂值被z取模的值。 len(object) - integer :len()函数返回字符串和序列的长度。min(x,y,z.) :返回序列或参数的最小值max(x,y,z.) :返回序列或参数的最大值常用函数 3/3range(lower,stop,step) :range()函数可按参数生成连续的有序整数列表。 round(x,n) :round()函数返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 type(obj):type()函数可返回对象的数据类型。 xrange(lower,stop,

9、step):xrange()函数与range()类似,但xrnage()并不创建列表,而是返回一个xrange对象,它的行为与列表相似,但是只在需要时才计算列表值,当列表很大时,这个特性能节省内存。 类型转换函数数值型 float(x) :把一个数字或字符串转换成浮点数。 hex(x) :把整数转换成十六进制数。 oct(x) :把整数转换成八进制数。 int(x,base) :把数字和字符串转换成一个整数,base为可选的基数。complex(real,imaginary) :complex()函数可把字符串或数字转换为复数。 complex(“2+1j”) 、 complex(2,1) l

10、ong(x,base) long()函数把数字和字符串转换成长整数,base为可选的基数。类型转换函数字符串chr(i):chr()函数返回ASCII码对应的字符串ord(x):ord()函数返回一个字符串参数的ASCII码或Unicode值 。str(obj):str()函数把对象转换成可打印字符串。 类型转换函数序列对象list(x) :list()函数可将序列对象转换成列表 tuple(x) tuple()函数把序列对象转换成tuple 序列操作函数常用函数中的len()、max()和min()同样可用于序列 filter(function,list):调用filter()时,它会把一个

11、函数应用于序列中的每个项,并返回该函数返回真值时的所有项,从而过滤掉返回假值的所有项。 map(function,list,list):map()函数把一个函数应用于序列中所有项,并返回一个列表。reduce(function,seq,init) reduce()函数获得序列中前两个项,并把它传递给提供的函数,获得结果后再取序列中的下一项,连同结果再传递给函数,以此类推,直到处理完所有项为止。 zip(seq,seq,.) zip()函数可把两个或多个序列中的相应项合并在一起,并以元组的格式返回它们,在处理完最短序列中的所有项后就停止。 练习1根据输入参数(行数)不同,输出下面图形 * * *提示:1.使用函数打印指定行 2.字符串*数字可以获得多个字符串合并的结果 共7行程序,约154字节练习2做一个函数,可计算n!,并依次输出120的阶乘。方法1:循环方法2:序列+reduce提示:方法1共7行 117字节 方法2 reduce(函数名,需要处理的序列) 乘法函数可用operator.mul代替 共3行程序,约88字节Lambda函数lambda语句被用来创建新的函数对象,并且在运行时返回它们。语法 lambda x:表达式 lambda函数可看做仅有一个参数的特殊函数,后面必须是表达式,也可调用别的函数。g=lamb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论