重新开始学习玩蛇必威:,关键字定义一个函数

概念函数:

本节内容

1. 函数

  函数是集体好的,可重复使用的,用来贯彻单生机勃勃,或有关功能的代码块。

  函数分为 Python 程序嵌入函数,客商自定义的函数。将代码定义为函数,有如下好处:

  • 代码重用
  • 保持代码少年老成致性,易维护
  • 可拓展

2019-01-09

 

  1. 函数基本语法及特色

  2. 参数与局地变量

  3. 返回值

1.1 定义和调用函数

  使用 def 关键字定义一个函数,前边紧跟函数名,小括号也不可缺少,语法如下:

def func():    函数体

  函数在施行时,首先将函数体加载到解释器中,然而不会运行,唯有当调用函数后才会推行,函数名+小括号就可以调用函数:

def func():    函数体func()      # 调用函数  

通过了十天左右的休养,重新起初读书玩蛇

#语法
def 函数名(参数1,参数2,参数3,...):
    '''注释'''
    函数体
    return 返回的值

#函数名要能反映其意义

嵌套函数

1.2 返回值

  不时大家需求函数再次回到一些数据来报告奉行的结果,全数就须要有再次来到值,只必要在函数中添加return 关键字,前面随着重临值就能够。

def func():    return 1

  return 将再次来到值传递给函数本人,我们只要调用函数,再将函数赋值给变量就能够获得重临值:

def func():    return 1res = func()        # 获得返回值,并赋值给变量 resprint1

  重回值能够是 0 个,也得以是 1 个 或多少个:

  • 从不重回值,再次回到 None
  • 贰个再次回到值,重临 再次来到值
  • 八个重临值,重返一个元组
def func():    # return    # return 1    return 1, 2res = func()printNone1

变量与递归函数:

进程:便是没有重临值的函数

4.递归

1.3 函数参数

  函数的参数能够用函数实现性格化,大概分为两类:

  • 形参:函数在概念时定义的参数
  • 实参:函数在调用时传出的参数

  形参独有在调用时才分配内部存款和储蓄器单元,调用甘休,就释放。仅在函数内部有效,不可能在函数外界使用。

  实参能够是常量、变量、表明式、函数,占用内存空间。

  1.局地变量和全局变量:

    当有的变量与全局变量同名时,在概念局地变量的子程序内,局地变量起效果,在此外市方全局变量起作用。

    global能够在函数中拿到全局变量,变量本质上就是全局变量,可读取可赋值;如若函数的内容无global关键字,优先读取全局变量,只好读取全局变量,无法对全局变量重新赋值,然则对于可变类型,能够对个中因素实行操作

name =["wcb","lyn"]def home():    name.append("baby")    printhome()print结果为:['wcb', 'lyn', 'baby']['wcb', 'lyn', 'baby']

name ="wcb"def home():    name = "WCB"    def homehome():        nonlocal name       #nonlocal,指定上一级变量        name = "lyn"    homehome()    printprinthome()print结果为:wcblynwcb

 

5.无名氏函数

1.3.1 私下认可参数

  形参又分为:私下认可参数、位置参数、关键字参数以至可变长参数,而暗中同意参数即在函数定义时暗中同意授予某些形参二个值。若函数调用时,不传播实参,函数使用私下认可值,否则使用实参。

def func:      # x 默认为 2    return x + 2res = func()        # 即使不传入实参函数也能正常运行print

  2.递归:

    1.不得不有叁个斐然的收尾条件

    2.每回步向越来越深意气风发层递归时,难点规模比较上次递归都应享有减弱

    3.递归功效不高,递归等级次序过多会招致栈溢出

  3.佚名函数:

    lambda 形参:处理逻辑

    函数名 =lambda 形参:管理逻辑

    函数名()

func = lambda x:x+1print

func1 = lambda X,Y,Z:(X+1,Y+1,Z+1)print(func1(1,2,3))func = lambda x,y,z:x+1,y+1,z+1         #需要自己加括号print(func 

2019-01-1016:38:35

 

6.函数式编程介绍

1.3.2 地方参数和重大字参数

  普通的参数即为地方参数,在调用时实参必需与形参大器晚成生龙活虎对应。而重大字参数,能够毫不思忖地点的关联,只供给名字同样就能够。

def func(name, words):    print(name: words)func('Hello', words='world')    # 第一个为位置参数,第二个为关键字参数func(words='World', name='Hello')   # 不用考虑位置

Tips:职位参数必得在第一字参数后边

函数的参数:

7.高阶函数

1.3.3 可变长参数

  可变长参数是意气风发种参数组,它能够是八个参数,只要求在参数前增进星号就能够。它能够扩展函数可拓宽性,当您不领悟定义的函数须要定义多少个参数时,使用它很有利。

  可变长参数分为:*args 和 **kwargs两类:

  • *agrs:将参数们收罗起来,打包成三个元组,再后生可畏一传递给函数使用
  • **kwargs:将参数们收罗并打包成贰个字典

*args

  *args 、**kwargs 是 Python 官方概念的参数名,也足以是任何名字,可是最为使用它,以便于辨认。

def func:    print    print('有 %d 个参数' % len    print('第三个参数是:', args[2])func('P', 'y', 't', 'h', 'o', 'n')func('Python', 123, '爬虫')

('P', 'y', 't', 'h', 'o', 'n')有 6 个参数第三个参数是: t('Python', 123, '爬虫')有 3 个参数第三个参数是: 爬虫

Tips:要是可变长参数前面还会有参数,要将其定义为重大字参数,不然会被采访成可变长参数里面。建议在运用可变长参数时,可将此外参数设置为暗中同意参数,或根本字参数,那样不错混淆。

def func(*args, extra=16):# def func(*args, extra):    print    printfunc#func(5,6, extra=18)1618

  星号既可用来采撷打包参数,也能够用来“解包”参数。当传入的参数时列表、元组、字典甚至集聚时,可变长参数将会将其整个打包成只有一个元组的参数,而在其眼下增加二个星号,就能够将当中的要素二个个都解出来。

def func:    printl = [1, 2, 3]t = d = {'name':'rose', 'age': 18}funcfuncfuncfuncfuncfunc

([1, 2, 3],),)({'name': 'rose', 'age': 18},)('name', 'age')

**kwargs

  另一种可变长参数正是 **kwargs,它将盛传的实参打包成四个字典,同样地也援助 “解包”。

def func(x, **kwargs):    print    print    print('总共有 %d 个参数' % len    print('这些参数分别为:', kwargs)func(20, name='rose', age=18)

20{'name': 'rose', 'age': 18}总共有 2 个参数这些参数分别为: {'name': 'rose', 'age': 18}

  解包,当传入的参数是字典时:

def func(gender, **kwargs):    print    print    print('总共有 %d 个参数' % len    print('这些参数分别为:', kwargs)t = {'name': 'rose', 'age': 18}func('female', **t)

female{'name': 'rose', 'age': 18}总共有 2 个参数这些参数分别为: {'name': 'rose', 'age': 18}

  当既有 *args,又有 **kwargs,以致岗位参数和岗位参数时:

def func(gender, country='China', *args, **kwargs):    print(gender, country)    print    printfunc('male', 'America', 20, 30, name='rose', age=19)

male America{'name': 'rose', 'age': 19}

本文由必威发布于必威-编程,转载请注明出处:重新开始学习玩蛇必威:,关键字定义一个函数

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。