Day10函数

函数的定义

  • 函数的功能:包裹一部分代码, 实现某一个功能 达成某一个目的
特点: 可以反复调用,提高代码的复用性,提高开发效率,便于维护管理
函数的基本格式
	函数的定义:
	def 函数名():
		code1
		code2
	函数的调用
	函数名()
# 定义函数
def func():
	print("我是一个函数"):

# 调用函数
func()

# 函数的命名
'''
       函数命名
字母数字下划线,首字母不能为数字
严格区分大小写,且不能使用关键字
函数命名有意义,且不能使用中文哦

'''
# 驼峰命名法:
'''
大驼峰命名法:
	每个单词的首字符大写(类:面向对象)
	mycar -> MyCar
小驼峰命名法:
	除了第一个单词的首字符小写外,剩下的每个单词首字符大写
    mycar -> myCar
常用:
   mycar ->my_car
'''


	

函数的参数

'''
参数:
   (1)形参:形式参数,在函数的定义处
   (2)实参:实际参数,在函数的调用处

形参:普通参数(位置),默认参数,普通收集参数,命名关键字参数,关键字收集参数
   func(a,b = 0,*args,c,**kwargs)
实参:普通参数,关键字参数

遵循原则:
   形参和实参要一一对应
'''
 普通形参
 def func(a,b):
 	print(a,b)
 func(1,2) # a,b为接受普通实参

默认形参
def func(a,b =4):
	print(a,b)
#func(1) #1,4
func(2,3) # 2,3

# 不传入参数则使用默认参数,传入则替代原有的默认形参

关键字参数(必须要有和它相对应的关键字实参)
# 关键字参数是指对具体的某个参数赋值,具体的顺序可以打乱 
def func(a,c = 1):
   print(a,c)
# 赋值给关键字实参 3
func(1,c = 3)  # 打印 1 3

普通实参 + 关键字实参
def func(hang, a, b, lie=10):
   i = 0
   while i < hang:
      j = 0
      while j < lie:
         print("*", end="")
         j += 1
      print()
      i += 1
   print(hang,a,b,lie)
# 函数的调用处
"""关键字实参必须跟在普通实参的身后,顺序是一定的"""
func(1,3,4,lie = 31)

区分 默认形参和 关键字参数
def func(a,b= 0,top= "good good study"):
	print(a,b,top)
func(1,2,top="haha")
# func(1,2,lower="haha") # error
'''默认形参和关键字实参在写法上一模一样
一个是在函数的定义处
一个在函数的调用处
默认形参传入的时候只是根据顺序传入数据,关键字实参的名必须和关键字形参的名相同
关键字实参如果不能和关键字形参的名对应,则报错
'''
命名关键字参数
'''
定义命名关键字参数的两种方式
(1) def func(a,b,*,c) # c是命名关键字参数
(2) def func(a,b,*args,c,**kwargs)
在函数调用时,必须使用命名关键字参数来进行赋值

'''
# 定义方式一
def func(a, b, *, d, c): # 这里的*并不是*args
   print(a, b)
   print(d)
   print(c,)

func(1, 2 ,d=3, c=10)

# 方式二
def func(*args,a,**kwargs):
   print(args,a,kwargs)

func(1,2,a = 111,b = 33)

关于 *和 **的使用

  • 和**在函数的定义处,是用来收集数据,打包
  • 在函数的调用出,用来做打散操作,解包
# *的使用
def func(a,b,*args):
   print(a,b,args)

li = [1,2,3]  # 这里的li可以为所有容器类型
func(*li) #  *在调用处把列表中的元素拿出来,拼装成键=值的参数形式,赋值给func进行调用

# **的使用
def func(a,b,c = 1,**kwargs):
   print(a,b,c,kwargs)

li = {"c":3,"d":4}
func(1,3,**li) # **把字典里面的所有元素拿出来,拼装成键=值的参数形式,赋值给func进行调用
func(1,3,c=3,d=4)

收集参数

普通收集参数:专门收集多的没人要的普通实参
def func():
	code
	*args => arguments(参数)
在args这个参数的前面加上一个*表达普通收集参数,形成一个元组


关键字收集参数:专门收集没人要的关键字实参
def func(**kwargs):
      code1...
   **kwargs => keyword arguments
   在kwargs参数的前面加上2**表达关键字收集参数,形成一个字典



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值