自学python_10 函数02

返回值

def f():
    return 1
def f1():
    return 1,2,3
    
print(f())
# 1
print(f1())
# (1, 2, 3)

python 里的返回值可以是一个或者多个,如果是多个就会把返回值包成一个元组然后返回。

def f1():
    return 1,2,3

a,b,c = f1()
print(a,b,c)
# 1 2 3

多个返回值的函数也可以进行赋值,赋值的过程就是把返回值的元组拆开,分别进行赋值。要注意的是,赋值的元素和返回的元素数目必须匹配。

global:变量的范围问题

name = "11111"

def f1():
    name = "22222"
    print(name)

def f2():
    name += "33333"
    print(name)

f1()
# 22222
f2()
# UnboundLocalError: local variable 'name' referenced before assignment

首先,在这段代码中说明了全局变量与局部变量的关系,如果在函数中调用全局变量与局部变量同名的变量,程序会先在局部变量的范围内寻找,如果没有再去全局变量的范围寻找。
其次,试图在局部变量的范围中修改name,会报错。

在python中,全局变量只能在函数中获取,但是不能修改,如果想在函数中修改全局变量就要引入 global 。

name = "11111"

def f1():
    name = "22222"

def f2():
    global name
    name = "33333"

f1()
print(name)

# 11111

f2()
print(name)

# 33333

函数f1中的name只是在f1范围内的变量,只有用global声明之后才表示全局的name,并且这个name必须是已经定义的。

要注意的是使用global的时候不能像声明变量那样顺便赋值。一定要在声明之后另起一行再进行赋值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值