学习笔记-python函数基础和进阶使用

一.函数基础

1.通用定义格式
def 函数名(形式参数):
	函数体
	return 返回值
2.通用调用格式
变量 = 函数名(实际参数)
3.注意事项
  • 函数必须先定义再调用
  • 函数每调用1次就执行1次
  • 函数不调用不执行
  • 如果有形式参数,那就需要传入实际参数(形参位置如果设置默认值,就可以不用传参)
  • 如果有返回值,那就建议用变量接收返回值; 如果返回多个值,默认放到元组中返回
  • 如果没有返回值,默认返回了None

二.函数返回多个值

1.默认放到元组中返回
def 函数名(形式参数):
	函数体
	return 返回值1,返回值2,返回值3,...
2.拆包
  • 格式:变量名1,变量名2 = 容器
  • 注意:变量个数需要和容器中元素个数一致
3.return
  • 主职: 结束当前函数
  • 兼职: 把return 后面的值返回到调用处
4. 案例
# 知识点: 函数返回多个值,核心思想放到容器中返回,默认用的元组
# 先定义函数
def show():
    return 1, 2, 3
    
# 再调用函数
# 方式1: 接收元组,再遍历
result = show()
print(result, type(result))
# 遍历元组
for i in result:
    print(i)

# 方式2: 直接拆包接收
a, b, c = show()
print(a, b, c)

三.参数

1.位置参数

实参和形参的顺序必须一致,以及个数也必须一致

# 先定义函数
def show(name, age, height):
    print(f"姓名:{name},年龄:{age},身高:{height}cm")

# 再调用函数
# 演示位置传参 , 弊端: 实参和形参的个数和顺序都必须一致
show('张三', 18, 178.8)
2.关键字参数

实参和形参顺序可以不一致,但是个数必须一致
在实参位置传参格式: 形参名 = 值

# 先定义函数
def show(name, age, height):
    print(f"姓名:{name},年龄:{age},身高:{height}cm")
    
# 再调用函数
# 演示关键字参数, 优点: 实参和形参的顺序可以不一致  弊端: 实参和形参的个数必须一致
show(age=18, name='张三', height=178.8)
# 注意: 如果关键字参数和位置参数一起使用,关键字参数需要放到后面
show('张三', height=178.8, age=18)
3.缺省参数

给形参设置默认值,可以让实参和形参的个数不一致
在形参位置设置默认值格式: 形参名 = 值

# 先定义函数
# 注意: 位置参数和缺省参数一起配合使用,缺省参数需要放到后面
def show( name='张三', age=18, height=188.8):
    print(f"姓名:{name},年龄:{age},身高:{height}cm")

# 再调用函数
# 演示缺省参数, 优点: 实参和形参的个数可以不一致
# 如果都设置了缺省参数,调用的时候可以都不传,使用默认值
show()
# 如果都设置了缺省参数,调用的时候传入了值,以传入的为主
show('李四')
show('李四', 19)
show('李四', 19, 199.9)
# 注意: 如果定义的时候都设置了缺省参数,调用的时候只想改变后面的某个数据,需要用关键字参数
show( name='张三', height=199.9)

4.不定长参数

不定长参数也叫可变参数. 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景

不定长参数的类型:

  • ①位置传递:以*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递
  • ②关键字传递:以**号标记一个形式参数,以字典的形式 (键=值) 接受参数,形式参数一般命名为kwargs
"""
可变参数: 不定长参数
位置传参: 一个个数据,使用*args接收,默认把所有数据存储到了元组中,这个元组名叫args
关键字传参: 一对对数据,使用**kwargs,默认把所有数据存储到了字典中,这个字典名叫kwargs
"""

# 先定义函数
def show1(*args, **kwargs):
    print(args, type(args))
    print(kwargs, type(kwargs))

# 再调用函数
show1(1, 2, 3, a=4, b=5, c=6)

你可能感兴趣的:(学习,笔记,python)