问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python有多少函数和关键字(python定义函数关键字)

发布网友 发布时间: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有多少函数和关键字的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我左腋下下方5厘米左右的肋骨那疼。 没有高血脂和高血糖,血管为什么还是不健康?这个病也不能忽视_百度... 血管硬化会导致高血压吗 美的空调包修期多少年? 动脉硬化的早期信号 脑血管硬化跟高血压有关吗 为什么Excel筛选不能使用自动筛选? 老公长期对我冷暴力三年了又不离婚是什么心态 《完美国际》军衔等级大揭秘介绍_《完美国际》军衔等级大揭秘是什么... 一15Pα与一35pα哪个负压强,哪个负压弱? 怎么选好用厨师刀? 买卖不破租赁和抵押之间包括吗 怎样鉴别好厨师刀呢?大师给介绍下 云南比泽尔BIZER水冷机组出厂价 psp有什么游戏下载游戏好玩的游戏,哪些游戏比较好玩 这蘑菇能吃吗?树林采的。 为什么我的浏览器会一直自动刷新呢? 华凌空调小程序怎样连接wifi网络? 国产手机酷比H9怎么样? 五一买了一款国产手机酷比H9,怎么用前置闪光灯? 2021南京国庆节有什么好玩的地方 活动汇总 南京国庆一日游免费的景点,国庆节旅游景点南京免门票 研究生英语系列教材:高级英语读写译教程图书信息 研究生英语系列教程·英语精读教程目录 研究生英语系列教材:高级英语读写译教程内容简介 医学院校硕士研究生英语读与写内容提要 研究生英语系列教材·研究生英语听说教程图书信息 21世纪研究生英语系列教材:工程硕士研究生英语综合教程内容简介_百度... 医学院校硕士研究生英语读与写目录 和网友见面注意什么? 契父是什么意思? BI-RADS3类什么意思 别人寄给我个快递,顺丰的,填的是我的手机号码,但是我手机卡坏了,那他... 体育教师的科学研究要以( )为中心开展? 环境乃是指个体生活的所有外部条件的总和,包括___环境和___环境... ps如何把图片的一个指定的部分位置移动ps图片位置怎么移动到指定位置... 400÷52.8 四百除以52点八竖式怎么 尤三姐自刎的作品注释 尤三姐人物简介 ...年2月26日(农历2007年1月20)上午9:35生的,请问她五行缺什么?_百度... ...年八月初三,阳历是90年9月21号,下午两点出生的 ...年2月12日出生,农历是1979年12月26日出生.请问的的虚龄是多少?_百... 英雄联盟亡灵战神的R的技能不会使 LOL亡灵战神的q为何不能用,在线等正在撸!!! 英雄联盟亡灵战神连招怎么出?拜托各位大神 开设赌场被抓,现在关押在看守所 ,不让见面或者不会帮忙传话吗?_百度... 今天现在检查院发通知。说是开设赌场正在关在看守所。应该怎么办... 开设赌场罪会找家属吗 peek材料多少钱一斤?