1、函数的定义和调用

(python中用关键字def定义函数)

def 函数名([形参列表])

​ 函数体

​ [return语句]

注意:不需要声明形参类型,不需要指定函数返回值类型,由函数中return语句返回值确定。

def funn(x,y):
    return x+y
print(funn(10,30))  #40
print(funn(10.1,20.2)) #30.299999999999997
print(funn("10","20")) #1020

2、函数的参数传递

(参数分类)

位置参数

调用函数时,解释器会将函数的实际参数按照位置顺序依次传递给形式参数

#按位置顺序传递给函数
def show_info(name,age):
    print(f"名字为:{name}")
    print(f"年龄为:{age}")
show_info("小明",12)

关键字参数

通过“形式参数=实际参数”的格式将实际参数与形式参数相关联,根据形参的名称进行参数传递

#按位置顺序传递给函数
def show_info(name,age,gender):
    print(f"名字为:{name}")
    print(f"年龄为:{age}")
    print(f"性别为:{gender}")
show_info(name="小明",age=18,gender="男")

默认值参数

在函数定义的时候,给形式参数指定默认值,这个形式参数就称为默认参数

给默认参数传递数据值,就使用传递的数据值,没有给默认参数传递数据值,就使用默认值

def connect(ip,port=3306):
    print(f"连接地址为{ip}")
    print(f"连接端口为{port}")
    print(f"连接成功")
connect('127.0.0.1')
#ip没有默认值,在调用时需要传参
"""
连接地址为127.0.0.1
连接端口为3306
连接成功
"""

不定长参数

def funn(a,b,*args):
    print(a)
    print(b)
    print(args)
funn(11,22)
'''
11
22
()
优先匹配上面的形参,剩下的以元组的形式传送给*arg(不定长参数)
'''

global 标志实际上是为了提示 python 解释器,表明被其修饰的变量是全局变量

3、变量的作用域

局部变量

局部变量只能在函数内部使用,不能在函数外部使用。

#在函数的内部定义的变量,只能在当前函数的内部使用
def func():
    name="小明"#局部变量
    print(name)

#函数调用
func() #小明

全局变量

全局变量是在函数外部定义的变量,函数中只能访问全局变量,但不能修改全局变量

#全局变量
value=100
def get_value():
    print(value)
#想要在函数内部修改全局变量需要global关键字声明
get_value() #100

匿名变量

匿名函数是无需函数名标识的函数,它的函数体只能是单个表达式。Python中使用关键字lambda定义匿名函数,只能实现比较单一的功能。

#匿名函数
#无参的匿名函数
func1 = lambda :print("好好学习")
func1() #好好学习
#有参的匿名函数
func2 = lambda a,b:a*b
print(func2(10,3)) #30

4、递归函数

反复调用函数本身,把一个大的问题分解成小的问题

函数递归调用时,需要确定两点:递归公式边界条件

#求阶乘
def factoral(num):
    if num==1:
        return 1 #求1的阶乘直接返回结果
    else :
        return num*factoral(num-1)
print(factoral(5)) #120

5、Python常用内置函数

abs()

计算绝对值,其参数必须是数字类型,如果参数是一个复数,那么abs()函数返回的绝对值是此复数与它的共轭复数乘积的平方根。

len()

返回序列对象(字符串、列表、元组等)的长度

map()

根据提供的函数对指定的序列做映射

help()

用于查看函数或模块的使用说明

ord()

返回字符的ASCII码值

chr()

根据ASCII码值返回字符

filter()

用于过滤序列,返回符合条件的元素组成的新列表

最后修改:2022 年 10 月 02 日
如果觉得我的文章对你有用,请随意赞赏