python函数参数和作用域

"""
函数参数:实参、形参
实参分类:
位置传参/位置参数:调用函数传入的具体的值,按对应位置传入值
关键字传参/关键字参数:指定函数传值的关键字,键值对

形参:
1.必备参数:(必须参数)必须要传的值,否则报错
2.默认参数:默认值,可传,可不传,不传使用默认值
3.不定长参数:
    *args:
    **kwargs:

"""

# 实参
def add_number(a, b, c):
    return a + b + c


add_number(11, 22, 33)  # 实参:位置参数
add_number(a=11, b=22, c=33)  # 实参:关键词参数
add_number(11, c=33, b=22)  # 同时存在位置参数和关键字参数的时候,关键字参数放在后面


# 形参
def func4(a, b, c=90):
    print("a", a)
    print("b", b)
    print("c", c)


func4(1, c=2)  # TypeError: func4() missing 1 required positional argument: 'b'


# a ,b 为必填参数,C为默认参数,可以不填,但是不写a,b会报错

# 不定长参数:*arge:接受位置参数:xx **kwargs:接受关键词传参:xx=xx
def func3(a, b, c, *args):
    print(a)
    print(b)
    print(c)
    print(args)


func3(11, 22, 33, 44)


def func2(a, b, c, *args, **kwargs):
    print(a)
    print(b)
    print(c)
    print(args)
    print(kwargs)


func2(11, 22, 33, 44, 55, d=77)
"""
11---a
22---b
33---c
(44, 55) ----*args  
{'d': 77} ----**kwargs
"""
# 函数参数拆包
"""
函数定义
*:表示接受位置参数的不定长参数
**:表示接受关键字参数的不定长参数
"""


def func(*args, **kwargs):
    print(args)
    print(kwargs)


func(11, 22, 33, a=1, b=2, c=3)
"""
(11, 22, 33)---args
{'a': 1, 'b': 2, 'c': 3}---kwargs
"""


def func1(a, b, c, d):
    print('a=', a)
    print('b=', b)
    print('c=', c)
    print('d=', d)


tup = (1, 3, 2, 4)
func1(*tup)
"""
a= 1
b= 3
c= 2
d= 4
"""
dic = {'a': 1, 'b': 3, 'c': 2, 'd': 4}
func1(**dic)
"""
a= 1
b= 3
c= 2
d= 4
"""


"""
全局变量:直接定义在文件中的变量叫全局变量
局部变量:定义在函数内部的变量叫局部变量

"""
# 全局变量:直接定义在文件中的变量叫全局变量,在文件任何地方都可以调用
a = 100
d = ""


# 局部变量:
def func():
    c = 55
    print(c)


func()


# print(c) ---在外面引用C 会报错。提示变量C未定义!


# ——————————函数的作用域(有效范围)——————————————————
# 局部变量的作用域:函数内部
# 函数参数的作用域:函数内部
# 函数中使用全局变量:首先申明为全局变量:global


def func2(a1, b):
    c = 100
    print(a1)
    print(b)


def func3():
    global d
    d = 100


func3()
print(d)


# 同时存在局部变量和全局变量时,会优先使用局部变量,如果没有找到局部变量,才会使用全局变量
def func1():
    a = 10
    print(a)


func1()

# 在函数内部申明了全局变量后,如果修改了全局变量的值,则最开始定义的全局变量对应的值也修改了
# 定义全局变量b=200
b = 200


# 在函数中使用全局变量,并修改值
def func4():
    global b
    b = 210
    print('函数内部打印变量b:', b)


func4()
print('函数外部打印变量b:', b)
'''
函数内部打印变量b: 210
函数外部打印变量b: 210
在函数内部申明全局变量,修改对应的之后,在外部使用该全局变量,对应的值也修改了
'''
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值