"""
1)怎么确定函数返回值 - 怎么将函数内部的数据传递出去
执行函数体的时候遇到return, return后面的值就是函数的返回值。(需要将哪个数据从函数内部传递到函数外部,就将哪个数据放在return的后面)
2)怎么获取函数返回值
获取函数调用表达式的值,就是获取函数的返回值。(每一个函数调用表达式都有结果,结果就是这个函数的返回值)
函数返回的值能做的事情,调用表达式都可以做
函数调用表达式 - 调用函数的语句
3)什么时候需要函数返回值
如果实现函数的功能产生了新的数据,就将新的数据作为返回值返回(而不是在函数内部打印这个数据)
"""deffunc1(num1, num2):# num1 = 10; num2 = 20print('=====')
result = num1 + num2
# print(result)return result # return 30print('1:',30)print('2:', func1(10,20))
x =30
y = func1(10,20)print(x, y)
nums =[30, func1(10,20)]print(nums)print(30*2+3, func1(10,20)*2+3)
result =print('hello world!')print(result)
result =sorted([10,29,8])print(result)# 编写一个函数,交换指定字典的key和value。defexchange_key_value(dic):
new_dic ={}for key in dic:
value = dic[key]
new_dic[value]= key # 字典[键] = 值return new_dic
dict1 ={'a':10,'b':20,'c':30}
result = exchange_key_value(dict1)print(result)
result['d']=100print(result)defexchange_key_value2(dic):
keys = dic.keys()for key in keys:
value = dic.pop(key)
dic[value]= key
dict1 ={'a':10,'b':20,'c':30}
exchange_key_value2(dict1)print(dict1)
2.return的作用
"""
1)确定函数返回值
2)提起结束函数 - 在执行函数体的时候,什么时候遇到return,函数什么时候结束
"""deffunc1():return100deffunc2():return# return None
func1()
func2()deffunc3():print('========')print('+++++++++')for x inrange(3):if x ==1:return100print(x)print('hello world!')
result = func3()# result = 100print('result:', result)"""
========
+++++++++
0
result: 100
"""
3.变量的作用域
# 1. 变量的作用域 - 变量定义后可以使用的范围# 根据变量作用域的不同,可以将变量分为全局变量和局部变量两种。# 2. 全局变量和局部变量"""
1)全局变量
Python中没有定义在函数中、类中的变量就是全局变量;
全局变量的作用域:从定义开始,到程序结束。
全局变量默认情况下保存在全局栈区间(全局栈区间在程序结束后才会自动释放)
2)局部变量
定义在函数中变量是局部变量(形参是属于定义在函数中的变量);
局部变量的作用域:从定义开始,到函数结束
每次调用函数的时候系统都会自动为这个函数创建一个临时栈区间,这个函数中产生的所有的数据,默认情况下都是保存在这个临时栈区间中的,
当函数调用结束的时候,这个临时栈区间会被自动释放(里面的数据都会被自动销毁)。
"""# a是全局变量
a =100# x 和 b是全局变量for x inrange(3):
b =200print('函数外面:', a, x, b)deffunc1():print('函数里面:', a, x, b)
func1()# c和d是局部变量deffunc2(c):# c = 220
d =300print('函数里面:', c, d)
func2(220)# print('函数外面:', d) # 报错# 3. global的用法"""
用法1:如果想要在函数中修改一个全局变量的值,就可以在函数中变量使用前用global对变量进行说明
用法2:在函数中定义全局变量,也可以使用global
"""
m =100
n =100deffunc3():# 在函数里面修改全局变量的值,不会修改成功,而是定义一个新的局部变量
m =299print('函数里面的m:', m)global n
n =299print('函数里面的n:', n)global t
t =300
func3()print('函数外面的m:', m)print('函数外面的n:', n)print('函数外面的t:', t)