搜索
首页后端开发Python教程Python基础内容:函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率,自己创建的函数叫做用户自定义函数。 函数定义规范:1.函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
2.任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
3.函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
4.函数内容以冒号起始,并且缩进。
5.return [表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
函数定义语法:def 函数名(形参):函数体默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。 例子:#可以不定义形参>>> def
show():...     print('show fun')...>>> show()show fun 简单的计算面积的函数:>>> def
area(height,width):...     a = height*width...     return a...>>> area(4,5)20 函数调用         函数的调用直接使用函数名()这样的方式,如果直接使用函数名,返回的是函数物理内容地址,当加上()后,才是代表执行函数 函数的参数形参、实参>>> def
area(height,width):...     a = height*width...     return a...>>> area(4,5)20在这个例子中,height和width为形参,是为了定义函数的结构和逻辑使用的,而后面的4、5则为实参,是用户在调用函数时,实际传入的参数,实参的个数必须和形参保持一致,在调用时,形参的具体值根据实参传入的顺序一一对应,比如上面,4对应height,5对应width 关键字参数(指定参数)使用关键字参数允许函数调用时参数的顺序与声明时不一致,具体用法如下>>>
def area(height,width):...     a = height*width...     return a...>>>
area(width = 5,height = 4)# 我们在调用函数时指明具体形参的值就可以了 默认参数调用函数时,如果没有传递参数,则会使用默认参数。默认参数必须定义在所有形参的最后面 >>>
def stu(name,age,grade=3):...     print('name is %s,age is %s,grade is %s' %
(name,age,grade))...>>>
stu('ian',10)  #在这里没有传入grade参数,默认使用了grade =
3name is
ian,age is 10,grade is 3>>>
stu('isha',9,4)name is
isha,age is 9,grade is 4 动态参数#动态参数01,将传入的实参全部添加到一个元祖里面def main2(*arg):    print(arg,type(arg))main2(1,2,3,4) #动态参数02,将传入的实参全部添加到一个字典里面def main3(**kwargs):    print(kwargs,type(kwargs))main3(k1=12,k2='ian') #动态参数03,上面两项合并def
main4(*args,**kwargs):    print(args,type(args))    print(kwargs,type(kwargs))main4(1,2,k1=12,k2='ian')     #上面的形参和这里的实参顺序不能颠倒,不然会报错  #动态参数4,如果实参是变量,如何指定到动态参数里面--->带*def
main4(*args,**kwargs):    print(args,type(args))    print(kwargs,type(kwargs))m = [1,2]n =
{'k1':12,'k2':'ian'}main4(*m,**n) 总结:Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。默认参数一定要用不可变对象,如果是可变对象,运行会有逻辑错误!要注意定义可变参数和关键字参数的语法:*args是可变参数,args接收的是一个tuple;**kwargs是关键字参数,kwargs接收的是一个dict。使用*args和**kwargs是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。  匿名函数python 使用 lambda
来创建匿名函数。所谓匿名,意即不再使用 def
语句这样标准的形式定义一个函数。1.lambda 只是一个表达式,函数体比 def 简单很多。
2.lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
3.lambda
    函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
4.虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
匿名函数语法lambda 函数的语法只包含一个语句,如下:lambda [arg1
[,arg2,.....argn]]:expression 例:>>>
su = lambda a,b,c: a + b + c>>> su(1,2,3)6 return语句return用于退出函数,使用return [表达式]会在退出函数时返回一个表达式,不带参数的return返回none >>> def
area(height,width):...     a = height*width...     return a...>>> ar =
area(4,5)>>>
print('area is',ar)area is 20 全局变量和局部变量当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是
局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。 局部变量:def func(x):    print ('x is',x)    x=2    print ('Changed local x to',x) x=50func(x)print ('x is still',x) 结果为:x is 50Changed local x to 2x is still 50 使用global语句如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是
全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。 def func():    global x    print ('x is',x)    x=2    print ('Changed local x to',x) x=50func()print ('x is still',x) 结果为:x is 50Changed local x to 2x is still 2 #global语句被用来声明x是全局的,因此,当我们在函数内把值赋给x的时候,函数外的x的值也会直接变化      

以上是Python基础内容:函数 的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
学习Python:2小时的每日学习是否足够?学习Python:2小时的每日学习是否足够?Apr 18, 2025 am 12:22 AM

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Web开发的Python:关键应用程序Web开发的Python:关键应用程序Apr 18, 2025 am 12:20 AM

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优

Python vs.C:探索性能和效率Python vs.C:探索性能和效率Apr 18, 2025 am 12:20 AM

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

python在行动中:现实世界中的例子python在行动中:现实世界中的例子Apr 18, 2025 am 12:18 AM

Python在现实世界中的应用包括数据分析、Web开发、人工智能和自动化。1)在数据分析中,Python使用Pandas和Matplotlib处理和可视化数据。2)Web开发中,Django和Flask框架简化了Web应用的创建。3)人工智能领域,TensorFlow和PyTorch用于构建和训练模型。4)自动化方面,Python脚本可用于复制文件等任务。

Python的主要用途:综合概述Python的主要用途:综合概述Apr 18, 2025 am 12:18 AM

Python在数据科学、Web开发和自动化脚本领域广泛应用。1)在数据科学中,Python通过NumPy、Pandas等库简化数据处理和分析。2)在Web开发中,Django和Flask框架使开发者能快速构建应用。3)在自动化脚本中,Python的简洁性和标准库使其成为理想选择。

Python的主要目的:灵活性和易用性Python的主要目的:灵活性和易用性Apr 17, 2025 am 12:14 AM

Python的灵活性体现在多范式支持和动态类型系统,易用性则源于语法简洁和丰富的标准库。1.灵活性:支持面向对象、函数式和过程式编程,动态类型系统提高开发效率。2.易用性:语法接近自然语言,标准库涵盖广泛功能,简化开发过程。

Python:多功能编程的力量Python:多功能编程的力量Apr 17, 2025 am 12:09 AM

Python因其简洁与强大而备受青睐,适用于从初学者到高级开发者的各种需求。其多功能性体现在:1)易学易用,语法简单;2)丰富的库和框架,如NumPy、Pandas等;3)跨平台支持,可在多种操作系统上运行;4)适合脚本和自动化任务,提升工作效率。

每天2小时学习Python:实用指南每天2小时学习Python:实用指南Apr 17, 2025 am 12:05 AM

可以,在每天花费两个小时的时间内学会Python。1.制定合理的学习计划,2.选择合适的学习资源,3.通过实践巩固所学知识,这些步骤能帮助你在短时间内掌握Python。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具