函数基础

2020-04-23  本文已影响0人  qjh_py

目录

  1. 什么是函数
  2. 为什么需要函数
  3. 函数的参数

1. 什么是函数

函数(function):用于完成特定任务的程序代码的自包含单元。

在面向对象编程的类中,函数通常被称作方法。

# 有多少内置函数(BIF)
dir(__builtins__)
def 函数名([形参1,形参2,形参3....]):
    代码块

2. 为什么需要函数

eg:定义一个幂的计算函数

#定义一个幂的计算函数
def power(x,y):
    result = 1
    for i in range(y):
        result *= x
    return result
power(2,3)

3. 函数的参数

3.1 形参和实参

• 形参(形式参数) 定义形参就相当于在函数内部声明了变量,但是并不是赋值

• 实参(实际参数)指定了形参,那么在调用函数时必须传递实参,实参将会赋值给对应的形参,简单来说有几个形参就要有几个实参

3.2 函数的传递方式

• 定义形参时,可以为形参指定默认值。指定了默认值以后,如果用户传递了参数则默认值不会生效。如果用户没有传递,则默认值就会生效

• 位置参数:位置参数就是将对应位置的实参赋值给对应位置的形参

• 关键字参数 : 关键字参数可以不按照形参定义的顺序去传递,而根据参数名进行传递

• 混合使用位置参数和关键字参数的时候必须将位置参数写到关键字参数前面去

def wo(a, b=2):
    print('a和b是形参,c是实参,1是传递的参数值,2是形参的默认值')
    print('其中a是位置参数,b是关键字参数')
    print(a, b) # 1 3
c = 1
wo(c,d=3)

3.3 不定长参数

• 定义函数时,可以在形参前面加一个*,这样这个形参可以获取到所有的实参,它会将所有的实参保存到一个元组中

• 带*号的形参只能有一个,可以和其他参数配合使用

• *形参 只能接受位置参数,不能接受关键字参数

• **形参 可以接收其他的关键字参数,它会将这些参数统一保存到字典当中。字典的key就是参数的名字,字典的value就是参数的值

• **形参只有一个,并且必须写在所有参数的后面

def cao(a, *a, **a):
    '''
        *a 处理的是位置参数 **a 是处理的是关键字参数
    '''
    pass
d = 1
e = (2,3,4)
f = 'qjh'
cao(d, e, f = f)
    

3.4 参数的解包

• 传递实参时,也可以在序列类型的参数前添加星号,这样它会自动的将序列中元素依次作为参数传递

• 要求序列中的元素的个数必须和形参的个数一致

def fn(a,b,c):

    print('a =', a)
    print('b =', b)
    print('c =', c)

# 创建一个元组
t = (20,30,40,50)

# 创建一个字典.可以通过**来对字典进行解包
d = {'a':1,'b':2,'c':3}

fn(**d)
上一篇下一篇

猜你喜欢

热点阅读