必威-必威-欢迎您

必威,必威官网企业自成立以来,以策略先行,经营致胜,管理为本的商,业推广理念,一步一个脚印发展成为同类企业中经营范围最广,在行业内颇具影响力的企业。

重新开始学习玩蛇,函数名+小括号即可调用函数

2019-11-22 05:16 来源:未知

概念函数:

本节内容

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标签:
版权声明:本文由必威发布于必威-编程,转载请注明出处:重新开始学习玩蛇,函数名+小括号即可调用函数