2. 函数的多返回值

在return关键字后面写多个值,并且多个值之间用逗号隔开,Python 会自动把多个值打包成元组。

def calculate(x, y):
    res1 = x + y
    res2 = x - y
    return res1, res2 # 实际返回的是:(res1, res2)

result = calculate(10, 20)
r1, r2 = calculate(10, 20)

print(result)  # (30, -10)
print(r1)      # 30
print(r2)      # -10

3. 参数的打包与解包

定义函数时,打包接收参数:

  • *形参名:打包所有的位置参数(会形成一个元组)。
  • **形参名 :打包所有的关键字参数(会形成一个字典)。

调用函数时,解包传递参数:

  • *变量名:将元组拆解成一个一个独立的位置参数。
  • **变量名:将字典拆解一个一个key=value形式的关键字参数。
# 打包接收参数:
# *args    :打包所有的位置参数(会形成一个元组)
# **kwargs :打包所有的关键字参数(会形成一个字典)
def show_info(*args, **kwargs):
    print(args)
    print(kwargs)

nums = (10, 20, 30)
person = {'name': '张三', 'age': 18}

# 解包传递参数:
# *nums    :将元组拆解成一个一个独立的位置参数
# **person :将字典拆解一个一个 key=value 形式的关键字参数
show_info(*nums, **person)

4. 高阶函数

当一个函数的『参数是函数』或者『返回值是函数』那该函数就是『高阶函数』。

def welcome():
    print('你好啊!')
    
# caller函数的参数是函数,所以caller是高阶函数
def caller(f):
    print('call函数开始调用')
    f()
    
caller(welcome)


# outer函数的返回值是函数,所以outer函数是高阶函数
def outer():
    print('我是outer')
    def inner():
        print('我是inner')
    return inner

高阶函数的意义:

  1. 代码复用性高:可以把行为“独立出去”,传入不同函数实现不同逻辑。
  2. 能让函数更灵活,更通用。
  3. 高阶函数是:装饰器、闭包的基础。(后面会讲)
def info(msg):
    return '[提示]' + msg
def warn(msg):
    return '[警告]' + msg
def error(msg):
    return '[错误]' + msg

def log(fun, text):
    print(fun(text))

log(info, '文件保存成功!')
log(warn, '磁盘空间不足!')
log(error, '该用户不存在!')

5. 条件表达式

表达式:执行后最终能得到一个值的代码,就是表达式,例如这些都是表达式:

3 + 5
'abc' * 3
5 > 3
'y' in 'Python'
len('hello')

表达式最终会形成一个值,可以写在任何一个需要值的地方。

条件表达式: 根据不同的条件,得到不同的值,又称:三元表达式,也叫:三目运算符。    

1️⃣语法格式为:

结果1 if 条件 else 结果2

具体规则:如果条件为真,整个表达式的结果就是“结果1”,否则就是“结果2”。

2️⃣代码示例:

age = 20

# 传统if-else写法
if age >= 18:
    text = '成年'
else:
    text = '未成年'

# 条件表达式写法
text = '成年' if age >= 18 else '未成年·'
print(text)

3️⃣什么时候适合用条件表达式?——简单的二选一场景,可以让代码更紧凑。

rain = True
food = '外卖' if rain else '出去吃'

is_vip = True
disscount = 0.8 if is_vip else 1.0

is_login = True
msg = '欢迎回来!' if is_login else '请先登录!'
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容