老男孩python全栈就业班第9期第1部分基础+模块+面向对象+网络编程第10天-复习
第1部分 基础+模块+面向对象+网络编程
第10天 复习
# 函数
# 可读性强 复用性强
# def 函数名():
# 函数体
# return 返回值
# 所有的函数 只定义不调用就一定不执行
# 先定义后调用
# 函数名() # 不接受返回值
# 返回值 = 函数名() # 接受返回值
# 返回值
# 没有返回值:默认返回 None
# 不写 return:函数内的代码执行完毕自动结束
# 只写 return:结束一个函数
# return None
# 返回一个值:结束了函数且返回一个值,可以是任意的值
# 返回多个值:多个值之间用逗号隔开,接受的时候可以用一个变量接收(元组),也可以等量的多个变量接收
# 参数
# 形参:定义函数的时候
# 位置参数:必须传
# *args:动态参数 可以接收任意多个按位置传入的参数
# 默认参数:可以不传 —— 陷阱
# **kwargs:动态参数 可以接受任意多个按关键字传入的参数
# 实参:调用函数的时候
# 按照位置传参数
# 按照关键字传参数
# 可以混用 位置参数必须在关键字传参之前
# 不能对一个参数重复赋值
#关于默认参数的陷阱
#如果默认参数的值是一个可变数据类型,那么每一次调用函数的时候,如果不传值就公用这个数据类型的资源
def qqxing(l = []):
l.append(1)
print(l)
#执行
qqxing()
qqxing()
qqxing()
qqxing()
#输出内容
[1]
[1, 1]
[1, 1, 1]
[1, 1, 1, 1]
#在执行
qqxing()
qqxing([])
qqxing()
qqxing()
#输出内容
[1]
[1]
[1, 1]
[1, 1, 1]
#修改函数
def qqxing(l = {}):
l['k'] = 'v'
print(l)
#在执行
qqxing()
qqxing()
qqxing()
#输出内容
{'k':'v'}
{'k':'v'}
{'k':'v'}
#再修改函数
def qqxing(k, l = {}):
l['k'] = 'v'
print(l)
#在执行
qqxing(1)
qqxing(2)
qqxing(3)
#输出内容
{'1':'v'}
{'1':'v', '2':'v'}
{'1':'v', '2':'v', '3':'v'}
posted on 2020-01-07 08:32 herisson_pan 阅读(6) 评论(0) 收藏 举报
浙公网安备 33010602011771号