函数

# 函数的定义和调用
def test(x):
x += 1
return x

def test():
x = 3
x += 1
return x

# notes: 这里第二个test会覆盖第一个test函数的定义
print(test) # <function test at 0x10217d730>
print(type(test)) # <class 'function'>
# print(test(1)) # 这里会报错
print(test())


# 函数的作用?
"""
while True:
if cpu利用率 > 90%:
# 发送邮件
连接邮件服务器
发送邮件
关闭连接
if 内存利用率 > 90%:
# 发送邮件
连接邮件服务器
发送邮件
关闭连接
if 磁盘利用率 > 90%:
# 发送邮件
连接邮件服务器
发送邮件
关闭连接

=>

def 发送邮件():
# 发送邮件
连接邮件服务器
发送邮件
关闭连接
while True:
if cpu利用率 > 90%:
发送邮件()
if 内存利用率 > 90%:
发送邮件()
if 磁盘利用率 > 90%:
发送邮件()

1.代码重用
2.保持一致性,维护性
3.可扩展性
"""

 
 
# 函数返回值
def test01():
msg = "hello"

def test02():
msg = "hello"
return msg

def test03():
msg = "hello"
return 1,2,3,4,[5,6],(7,8)

print(test01()) # None None
print(test02()) # hello object
print(test03()) # (1, 2, 3, 4, [5, 6], (7, 8)) 放到一个元组里边 tuple


# 形参
# 形参变量只有在被调用时才分配内存单元,调用结束时,即可释放所分配的内容.所以只在函数内部有效.函数调用结束后返回主调用函数后就不能再使用形参变量.
def cal(x, y):
res = x ** y
return res
print(cal(2, 2))
a = 2
b = 3 # 实参
print(cal(a, b))

# 传参
def test(x, y, z):
print(x, y, z)
# test(1, 3) # 缺少一个报错
test(1, 2, 3) # 位置传参,按顺序一一对应,不可缺少
test(y=2, x=5, z=1) # 关键字传参,顺序灵活,不可缺少
# test(1, y=2, 3) # 报错
test(1, y=2, z=3) # 混合使用,位置参数必须在关键字参数的左边,而且有顺序

# 默认参数
def handle(x, type="mysql"):
print(x, type)
handle("hello")
handle("hello", type="sqlite")
handle("hello", "sqlite")


# ** 字典 * 列表

# 参数组 非固定长度的参数 *args
def test(x, *args):
print(x, args)
test(1, 2, 3, 4, 5) # (2, 3, 4, 5)
test(1) # ()
test(1, {"name":"alex"}) # 1 ({'name': 'alex'},)
test(1, ["x", "y", "z"]) # 1 (['x', 'y', 'z'],)
test(1, *["x", "y", "z"]) # notes!!!: 这里加个*表示,把列表循环一遍赋值给args. ('x', 'y', 'z')
test(1, *(1, 2, 3)) # (1, 2, 3)
test(1, *{"name":"value"}) # ('name',) 一个遍历,只能取出来key

# 关键字参数 **kwargs
def test(x, **kwargs):
print(x)
print(kwargs)
test(1, y=2, z=3) # {'z': 3, 'y': 2}

# *args, **kwargs
def test(x, *args, **kwargs):
print(x, args, kwargs)
test(1,1,2, 3, y=2, z=3) # 1 (1, 2, 3) {'y': 2, 'z': 3}
test(1, *[1, 2, 3], **{"name":"alex", "age": 18}) # 1 (1, 2, 3) {'age': 18, 'name': 'alex'}







转载于:https://www.cnblogs.com/Windows-phone/p/9722195.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值