Python基础学习4--函数

一、自定义函数

1、 格式:

             def   <函数名>(形参):
                      '''注释(可有可无)'''
                       函数体

2、函数的参数及传参:

① 位置传参

实际参数与形式参数的对应关系是按位置依次对应的,调用函数时实参和形参的顺序必须严格一致,并且数量相同。

② 关键字传参

关键参数主要指调用函数时的参数传递方式,与函数定义无关,指定参数名传参,实参顺序和形参顺序可以不一致。

③ 序列传参

指在函数调用过程中,用 * 将序列拆解(传入的参数组合成为一个元组)后按位置进行传递的传参方式。
例如:

def demo(*a):
    print(a)
demo(1,2,3)    
b = (4,5,6)
demo(b)

输出如下:

(1, 2, 3)
((4, 5, 6),)

④ 字典关键字传参

指实参为字典,将字典用 ** 拆解后再进行关键字传参的传参方式。
说明:

字典的键名和形参名必须一致
字典的键名必须为字符串(标识符)
字典的键名要在形参中存在
例如:

def fun(**p):
    print(p)
fun(a=1,b=2,c=3)
l = {'a':'1','b':'2','c':'3'}
fun(**l)

输出如下:

{'c': 3, 'b': 2, 'a': 1}
{'c': '3', 'b': '2', 'a': '1'}

⑤ 函数缺省参数

函数的参数在定义时如果指定了默认值,当函数被调用时,则该参数可以缺省。
例如:

def fun(a,b = 100):
    print(a+b)
fun(1)
fun(1,2)

输出如下:

101
3

⑥ 传递参数时的序列解包

调用多个位置参数时,使用迭代对象作为实参,在实参名称前加 ‘*’ 或 ‘**’ ,python自动解包。
例如:
Ⅰ、对列表、元组的解包

def demo(a,b,c):
    print(a*b*c)
list = [1,2,3]
demo(*list)
tup = (4,5,6)
demo(*tup)

输出为:

6
120

Ⅱ、 对字典的解包

def fun(a,b,c):
    print(a,b,c)
p = {'a':'1','b':'2','c':'3'}
fun(**p)

输出为:

1 2 3

3、函数的返回值

① return 语句用来结束函数并将程序返回到函数被调用的位置继续执行。
② return 语句可以出现在函数中的任何部分。
③ 可以同时返回 0个多个函数运算的结果给函数被调用处的变量。
④ 当 return 返回多个值时,返回的值形成元组数据类型。
例如:

def function(a,b):
    return a*b
num = function(2,3)
print(num)

输出为:

6

4、变量的作用域

局部变量
定义在函数内部的变量成为局部变量(形参也是局部变量)。
局部变量只能在函数内部使用。
局部变量在函数调用时才能够被创建,在函数调用之后会自动销毁。
全局变量
定义在函数外部,模块内部的变量称为全局变量。
全局变量所有函数都可以直接访问(但函数内不能将其赋值)。
全局变量在函数内部使用时,需要用 global 关键字声明,且该变量与外部变量全局变量同名。

5、代码复用

理念
① 通过函数的封装功能将程序分为主程序、子程序和子程序间关系的表达。
紧耦合
尽可能合理划分功能模块,功能内部耦合紧密
松耦合
模块间关系尽可能简单,功能块之间耦合度低
③ 程序的一种基本抽象方式,它将一系列代码组织起来通过命名供其他程序使用。

耦合性
指程序结构间各模块、各语句之间关联的程度,取决于各模块间接口的复杂程度和调用方式。

6、lambda 函数

① 又称匿名函数,适合处理临时需要一个类似函数的功能但又不想定义函数的场合。
<函数对象名> = lambda<形式参数列表> : <表达式>
Ⅰ、lambda 只是一个表达式,它用来创建一个函数对象。
Ⅱ、当 lambda 表达式被调用时,先执行冒号后的表达式,并返回表达式的结果的引用关系。
Ⅲ、lambda 表达式创建的函数又能包含一条表达式。
Ⅳ、lambda 比函数简单且可以随时创建和销毁,有利于减少程序的耦合度。
例如:

test1 = lambda a,b:a+b
print(test1(1,2))
test2 = lambda a:a[0][0]
a = [[1,2,3],[4,5,6]]
print(test2(a))

输出为:

3
1

二、Python的内置函数

python解释器提供了68个内置函数,可以直接使用而不需要引入库。

点击这里可以查看python的内置函数

发布了7 篇原创文章 · 获赞 0 · 访问量 104

猜你喜欢

转载自blog.csdn.net/Kelly_mercy/article/details/105105287
4--