- # 1.函数的作用域
- # 全局变量的作用域:
- # 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。
- # 全局变量所有作用域都可用,局部变量只能在本函数可用,变
- # 量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量
- #
- # global关键字:
- # 为了解决函数内使用全局变量的问题,
- # python增加了global关键字,利用它的特性,可以指定变量的作用域。
- print('1.函数的作用域')
- # 在函数外面定义变量 可以在函数里面被调用,
- # 但是只有可变类型对象可以进行操作,不可变类型对象不可操作
- a = 1 # 全局变量
- def func():
- global a # 声明变量为全局变量
- a = 100
- print(a)
- func() # 若没有调用这个函数,则下一行输出1
- print(a) # 输出100,因为这时a是全局变量
复制代码
- # 2.多函数执行流程
- print()
- print('2.多函数执行流程')
- b = 1
- def test_b():
- global b
- b = 20
- def test_c():
- print(b)
- test_b() # 执行完后,b为全局变量,值为20
- test_c() # 输出20
复制代码
- # 3.函数的返回值
- print()
- print('3.函数的返回值')
- def func1(a, b):
- return a+1, b+3 # 如果返回多个参数,会按顺序存放到元组中
- # 如果返回值是一个,则接收参数为1个
- # 如果返回值是多个,则接收参数为一个(元组)或者返回的个数(解包)
- print(func1(1, 2)) # 输出(2, 5)
- print(type(func1(1, 2))) # tuple类型
- print(func1(1, 2)[0]) # 输出元组(2, 5)的索引为0的值
- data1, data2 = func1(1, 2) # 解包(拆包)
- print(data1, data2)
复制代码
- # 4.交换值
- print()
- print('4.交换值')
- x = 1
- y = 2
- print(x, y)
- x, y = y, x # 交换值
- print(x, y)
- # 5.可变类型和不可变类型
- # 可变类型 列表 字典 集合
- # 不可变类型 数字 字符串 元组 布尔
复制代码
- # 6.参数
- print()
- print('6.参数')
- def func4(name, age, gender):
- print(f'我的姓名{name},\
- 我的年龄{age},我的性别:{gender}')
- func4('小明', 20, '女') # 要注意顺序
- # 6.1 关键字传参
- # 很安全
- # 不必考虑顺序
- func4(age=20, name='小放', gender='man')
- # 6.2 默认参数
- def func5(name, age=20, gender='男'):
- print(f'我的姓名{name},\
- 我的年龄{age},我的性别:{gender}')
- func5(age=20, name='小放', gender='女') # 输出的gender是女,而不是男
- # 当调用函数的参数有值,则默认参数的值被替换
- # 6.3 不定长传参
- # *args arguments
- # **kwargs
- # 这个名字可以改的,但是一般不改
- # 例如:*args == *abv
- # **kwargs == **qqq
- # *args 把没有形参的实参进行打包,放到一个元组中
- def fun(data1, data2, *args):
- print(data1, data2, args)
- print(args[0])
- fun(1, 2, '3', 4) # 输出 1 2 ('3', 4)
- # **kwargs
- # 把没有形参的实参进行打包,但是只打包关键字参数
- # 字典 key word arguments
- def fun1(**kwargs):
- print(kwargs) # 输出字典
- fun1(name='小明', age=20, gender='女')
复制代码
- # 今日练习
- '''
- 定义一个模拟ATM机操作的场景
- (1)需要一个存钱和取钱的函数
- (2)设置全局默认资金1000
- (3)调用存钱函数,存放800元,并将操作后函数将余额打印出来
- (4)调用取钱函数,取钱500元,并将操作后函数将余额打印出来
- '''
- print()
- print('今日练习')
- money = 1000
- def cunfang_money(): # 定义存钱函数
- global money # 声明变量为全局变量
- money -= 800 # 存放800元
- print(money)
- def quchu_money():
- global money # 若不再次声明为全局变量,则在函数内为局部变量
- money += 500
- print(money)
- cunfang_money()
- quchu_money()
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |