侧边栏壁纸
  • 累计撰写 119 篇文章
  • 累计创建 25 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

函数进阶

梁来福
2022-02-09 / 0 评论 / 0 点赞 / 0 阅读 / 2872 字
温馨提示:
本文最后更新于 2024-05-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

变量作用域

变量作用域指的是变量生效的范围,主要分:局部变量

全局变量


修改全局变量


返回值作为参数传递

def test1():
    return 1027

def test2(num):
    print(num)

res = test1()

test2(res)

输出:1027


一个函数多个返回值

def return_num():
    return 1, 2

res = return_num()
print(res)

输出:(1, 2)

def return_num():
    return [10, 20]

res = return_num()
print(res)

输出:[10, 20]

注意:

1、return a,b写法,返回多个数据的时候默认是元祖类型

2、return后面可以连接列表,元祖或字典,以返回多个值


函数的参数

位置参数

位置参数:调用函数时根据函数定义的参数位置来传递参数

def user_info(name, age, gender):
    print(f'您的名字是{name}, 年龄是{age}, 性别是{gender}')

user_info('来福', 1.2, '男')

输出:您的名字是来福, 年龄是1.2, 性别是男

注意: 传递和定义参数的顺序及个数必须一致

关键字参数

函数调用,通过“键=值”形式加以指定。清除了参数的顺序需求

def user_info(name, age, gender):
    print(f'您的名字是{name}, 年龄是{age}, 性别是{gender}')

user_info('来福', gender='男', age=1.2)

输出:您的名字是来福, 年龄是1.2, 性别是男

注意: 函数调用时如果有位置参数,位置参数必须在关键字参数前面,但关键字参数之间不存在先后顺序

缺省参数

缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值

注意:所有位置参数必须出现在默认参数前,包括函数定义和调用

def user_info(name, age, gender='男'):
    print(f'您的名字是{name}, 年龄是{age}, 性别是{gender}')

user_info('来福', 1.2)
user_info('来福', gender='公', age=1.2)

输出:

您的名字是来福, 年龄是1.2, 性别是男
您的名字是来福, 年龄是1.2, 性别是公

注意: 函数调用时,如果为缺省参数传值则修改默认参数值,否则使用这个默认值

不定长参数

不定长参数也叫可变参数。用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,可用包裹(packing)位置参数,或者包裹关键字参数来进行参数传递,会很方便

包裹位置传递
def user_info(*args):
    print(args)


user_info('Laifu')
user_info('Laifu', 1.1)
user_info('Laifu', 1.1,'男')

输出:

('Laifu',)
('Laifu', 1.1)
('Laifu', 1.1, '男')

注意: 传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元祖(tuple),args是元祖类型

包裹关键字传递
def user_info(**args):
    print(args)


user_info(name = 'Laifu', age = 1.1, id = 1, gender = '男')

输出:{'name': 'Laifu', 'age': 1.1, 'id': 1, 'gender': '男'}


拆包

元祖拆包

def return_num():
    return 100, 200

num1, num2 = return_num()
print(num1)
print(num2)

输出:

100

200

字典拆包


交换变量值

方法一

a = 10
b = 20

c = 0
c = a
a = b
b = c

print(a)
print(b)

输出:

20

10

方法二:

a, b = 1, 2
a, b = b, a

print(a)
print(b)

输出:

2

1

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论