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

Python基础内容:函数

Apr 01, 2017 pm 01:22 PM

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率,自己创建的函数叫做用户自定义函数。 函数定义规范: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

热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.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

golang函数动态创建新函数的技巧 golang函数动态创建新函数的技巧 Apr 25, 2024 pm 02:39 PM

Go语言提供了两种动态函数创建技术:closures和反射。closures允许访问闭包作用域内的变量,而反射可使用FuncOf函数创建新函数。这些技术在自定义HTTP路由器、实现高度可定制的系统和构建可插拔的组件方面非常有用。

C++ 函数命名中参数顺序的考虑 C++ 函数命名中参数顺序的考虑 Apr 24, 2024 pm 04:21 PM

在C++函数命名中,考虑参数顺序至关重要,可提高可读性、减少错误并促进重构。常见的参数顺序约定包括:动作-对象、对象-动作、语义意义和遵循标准库。最佳顺序取决于函数目的、参数类型、潜在混淆和语言惯例。

如何在Java中写出高效和可维护的函数? 如何在Java中写出高效和可维护的函数? Apr 24, 2024 am 11:33 AM

编写高效和可维护的Java函数的关键在于:保持简洁。使用有意义的命名。处理特殊情况。使用适当的可见性。

excel函数公式大全 excel函数公式大全 May 07, 2024 pm 12:04 PM

1、 SUM函数,用于对一列或一组单元格中的数字进行求和,例如:=SUM(A1:J10)。2、AVERAGE函数,用于计算一列或一组单元格中的数字的平均值,例如:=AVERAGE(A1:A10)。3、COUNT函数,用于计算一列或一组单元格中的数字或文本的数量,例如:=COUNT(A1:A10)4、IF函数,用于根据指定的条件进行逻辑判断,并返回相应的结果。

C++ 函数默认参数与可变参数的优缺点比较 C++ 函数默认参数与可变参数的优缺点比较 Apr 21, 2024 am 10:21 AM

C++函数中默认参数的优点包括简化调用、增强可读性、避免错误。缺点是限制灵活性、命名限制。可变参数的优点包括无限灵活性、动态绑定。缺点包括复杂性更高、隐式类型转换、调试困难。

C++ 函数返回引用类型有什么好处? C++ 函数返回引用类型有什么好处? Apr 20, 2024 pm 09:12 PM

C++中的函数返回引用类型的好处包括:性能提升:引用传递避免了对象复制,从而节省了内存和时间。直接修改:调用方可以直接修改返回的引用对象,而无需重新赋值。代码简洁:引用传递简化了代码,无需额外的赋值操作。

C++ 函数异常进阶:定制错误处理 C++ 函数异常进阶:定制错误处理 May 01, 2024 pm 06:39 PM

C++中的异常处理可通过定制异常类增强,提供特定错误消息、上下文信息以及根据错误类型执行自定义操作。定义继承自std::exception的异常类,提供特定的错误信息。使用throw关键字抛出定制异常。在try-catch块中使用dynamic_cast将捕获到的异常转换为定制异常类型。实战案例中,open_file函数抛出FileNotFoundException异常,捕捉并处理该异常可提供更具体的错误消息。

自定义 PHP 函数和预定义函数之间有什么区别? 自定义 PHP 函数和预定义函数之间有什么区别? Apr 22, 2024 pm 02:21 PM

自定义PHP函数与预定义函数的区别在于:作用域:自定义函数仅限于其定义范围,而预定义函数可在整个脚本中访问。定义方式:自定义函数使用function关键字定义,而预定义函数由PHP内核定义。参数传递:自定义函数接收参数,而预定义函数可能不需要参数。扩展性:自定义函数可以根据需要创建,而预定义函数是内置的且无法修改。

See all articles