发布网友 发布时间:2024-09-30 03:34
共1个回答
热心网友 时间:2024-10-24 18:33
导读:本篇文章首席CTO笔记来给大家介绍有关python有多少函数和关键字的相关内容,希望对大家有所帮助,一起来看看吧。
Python的函数都有哪些?Python函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以?def?关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return[表达式]?结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。
语法
deffunctionname(parameters):?"函数_文档字符串"
?function_suite
?return[expression]
默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。
实例
以下为一个简单的Python函数,它将一个字符串作为传入参数,再打印到标准显示设备上。
实例(Python2.0+)
defprintme(str):?"打印传入的字符串到标准显示设备上"
?printstr
?return
函数调用
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。
如下实例调用了printme()函数:
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
#定义函数defprintme(str):?"打印任何传入的字符串"
?printstr
?return
#调用函数printme("我要调用用户自定义函数!")printme("再次调用同一函数")
以上实例输出结果:
我要调用用户自定义函数!再次调用同一函数
参数传递
在python中,类型属于对象,变量是没有类型的:
a=[1,2,3]
a="Runoob"
以上代码中,[1,2,3]?是List类型,"Runoob"?是String类型,而变量a是没有类型,她仅仅是一个对象的引用(一个指针),可以是List类型对象,也可以指向String类型对象。
可更改(mutable)与不可更改(immutable)对象
在python中,strings,tuples,和numbers是不可更改的对象,而list,dict等则是可以修改的对象。
不可变类型:变量赋值?a=5?后再赋值?a=10,这里实际是新生成一个int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值?la=[1,2,3,4]?后再赋值?la[2]=5?则是将listla的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
python函数的参数传递:
不可变类型:类似c++的值传递,如整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在fun(a)内部修改a的值,只是修改另一个复制的对象,不会影响a本身。
可变类型:类似c++的引用传递,如列表,字典。如fun(la),则是将la真正的传过去,修改后fun外部的la也会受影响
python中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
python传不可变对象实例
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
defChangeInt(a):??a=10
b=2ChangeInt(b)printb#结果是2
实例中有int对象2,指向它的变量是b,在传递给ChangeInt函数时,按传值的方式复制了变量b,a和b都指向了同一个Int对象,在a=10时,则新生成一个int值对象10,并让a指向它。
传可变对象实例
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
#可写函数说明defchangeme(mylist):?"修改传入的列表"
?mylist.append([1,2,3,4])
?print"函数内取值:",mylist
?return
#调用changeme函数mylist=[10,20,30]changeme(mylist)print"函数外取值:",mylist
实例中传入函数的和在末尾添加新内容的对象用的是同一个引用,故输出结果如下:
函数内取值:?[10,20,30,[1,2,3,4]]函数外取值:?[10,20,30,[1,2,3,4]]
参数
以下是调用函数时可使用的正式参数类型:
必备参数
关键字参数
默认参数
不定长参数
必备参数
必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
调用printme()函数,你必须传入一个参数,不然会出现语法错误:
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
#可写函数说明defprintme(str):?"打印任何传入的字符串"
?printstr
?return
#调用printme函数printme()
以上实例输出结果:
Traceback(mostrecentcalllast):
?File"test.py",line11,inmole
??printme()TypeError:printme()takesexactly1argument(0given)
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为Python解释器能够用参数名匹配参数值。
以下实例在函数printme()调用时使用参数名:
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
#可写函数说明defprintme(str):?"打印任何传入的字符串"
?printstr
?return
#调用printme函数printme(str="Mystring")
以上实例输出结果:
Mystring
下例能将关键字参数顺序不重要展示得更清楚:
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
#可写函数说明defprintinfo(name,age):?"打印任何传入的字符串"
?print"Name:",name
?print"Age",age
?return
#调用printinfo函数printinfo(age=50,name="miki")
以上实例输出结果:
Name:?mikiAge?50
默认参数
调用函数时,默认参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
#可写函数说明defprintinfo(name,age=35):?"打印任何传入的字符串"
?print"Name:",name
?print"Age",age
?return
#调用printinfo函数printinfo(age=50,name="miki")printinfo(name="miki")
以上实例输出结果:
Name:?mikiAge?50Name:?mikiAge?35
不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。基本语法如下:
deffunctionname([formal_args,]*var_args_tuple):?"函数_文档字符串"
?function_suite
?return[expression]
加了星号(*)的变量名会存放所有未命名的变量参数。不定长参数实例如下:
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
#可写函数说明defprintinfo(arg1,*vartuple):?"打印任何传入的参数"
?print"输出:"
?printarg1
?forvarinvartuple:???printvar
?return
#调用printinfo函数printinfo(10)printinfo(70,60,50)
以上实例输出结果:
输出:10输出:706050
匿名函数
python使用lambda来创建匿名函数。
lambda只是一个表达式,函数体比def简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
语法
lambda函数的语法只包含一个语句,如下:
lambda[arg1[,arg2,.....argn]]:expression
如下实例:
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
#可写函数说明sum=lambdaarg1,arg2:arg1+arg2
#调用sum函数print"相加后的值为:",sum(10,20)print"相加后的值为:",sum(20,20)
以上实例输出结果:
相加后的值为:?30相加后的值为:?40
return语句
return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。之前的例子都没有示范如何返回数值,下例便告诉你怎么做:
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
#可写函数说明defsum(arg1,arg2):?#返回2个参数的和."
?total=arg1+arg2
?print"函数内:",total
?returntotal
#调用sum函数total=sum(10,20)
以上实例输出结果:
函数内:?30
变量作用域
一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里赋值的。
变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下:
全局变量
局部变量
全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。如下实例:
实例(Python2.0+)
#!/usr/bin/python#-*-coding:UTF-8-*-
total=0#这是一个全局变量#可写函数说明defsum(arg1,arg2):?#返回2个参数的和."
?total=arg1+arg2#total在这里是局部变量.
?print"函数内是局部变量:",total
?returntotal
#调用sum函数sum(10,20)print"函数外是全局变量:",total
以上实例输出结果:
函数内是局部变量:?30函数外是全局变量:?0
Python3的关键字有哪些?
1、false
#布尔类型的值,表示假,与true对应。
2、class#定义类的关键字。
3、finally
#异常处理使用的关键字,用它可以指定始终执行的代码,指定代码在finally里面。
4、return
#python函数返回值return,函数中一定要有return返回值才是完整的函数。如果你没有python定义函数返回值,那么会得到一个结果是None对象,而None表示没有任何值。
5、none
#None是一个特殊的常量,None和False不同,None不是0。None不是空字符串。None和任何其他数据类型比较永远返回False。None有自己的数据类型NoneType。我们可以将None复制给任何变量,但是不能创建其他NoneType对象。
6?、continue
#continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
7、for
#for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
8、lambda
#匿名函数是个很时髦的概念,提升了代码的简洁程度。
9、try
#程序员可以使用try?except语句来处理异常。把通常的语句块放在try块中,而把错误处理的语句放在except块中。
10、true
#布尔类型的值,表示真,与false相反。
11、def
#定义函数用的
python的关键字有哪些,都是什么意思?我这里汇总Python经常用到的27个关键字,希望对正在学Python的你能够起到帮助
1and:逻辑与
2as:为导入的模块取一个别名,在Python2.6中新增
3assert:断言,在Python1.5新增
4break:用在循环语句,跳转到语句块的末尾
5class:用来定义一个类
6continue:和break香对应,跳到语句块的开头
7def:用来定义一个函数或方法
8del:删除
9elif:全称是elseif
10exec:内置函数。执行以string类型存储的Python代码
11finally:用在异常处理语句try-excep-finally中
12for:著名的for循环,可以用来遍历一个列表
13from:字面意思,表示从一个包导入某个模块
14global:在函数或其他局部作用域中使用全局变量
15if:如果
16import:导入
17in:在,后面跟一个列表,字典或字符串
18is:逻辑判断
19not:逻辑非
20or:逻辑或
21pass:占位符,用来告诉Python这里不用考虑
22print:写得最多的关键字,后来在Python3.0中变成了内置函数
23raise:用来引发一个异常
24return:函数返回
25try:异常处理机制
26while:while循环
27with:在Python2.6中新增,使用with候不管with中的代码出现什么错误,都会进行对当前对象进行清理工作,注意该句话后面有一个冒号表示with语句。
以上就是我汇总的部分关键字,希望对你有所帮助
结语:以上就是首席CTO笔记为大家介绍的关于python有多少函数和关键字的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。