一、局部变量:
小结:
1、就是在函数内部定义的变量
2、作用范围就是在这个函数内部,函数之外不能使用
3、作用是存储临时保存的数据
二、全局变量
1、如果一个变量既能在一个函数中使用也能在别的函数使用这个变量就是全局变量
(在函数外边定义的变量叫做 全局变量)
举例:
定义全局变量
a = 100
def test1():
a = 666
print(a) # 虽然没有定义变量a但是依然可以获取其数据
def test2():
print(a) # 虽然没有定义变量a但是依然可以获取其数据
调用函数
test1()
test2()
运行结果:
666
100
发现:
当函数内出现局部变量和全局变量相同名字时,函数内部中的 变量名 = 数据 此时理解为定
义了一个局部变量,而不是修改全局变量的值,那么问题来了怎么在函数中修改成员变量的值呢?在函数中加 global
举例:
定义全局变量
a = 100
def test1():
global a
a = 666
print(a) # 虽然没有定义变量a但是依然可以获取其数据
def test2():
print(a) # 虽然没有定义变量a但是依然可以获取其数据
调用函数
test1()
test2()
运行结果:
666
666
发现:
如果在函数中出现 global 全局变量的名字 那么这个函数中即使出现和全局变量名相同的 变量
名 = 数据 也理解为对全局变量进行修改,而不是定义局部变量
三、如果函数中如何有多个return值?
在python中我们怎样返回多个值?
def create_nums():
print("—1---")
return 1 # 函数中下面的代码不会被执行,因为return除了能够将数据返回之外,还有一个隐藏的
功能:结束函数
print("—2---")
return 2
print("—3---")
总结1:
一个函数中可以有多个return语句,但是只要有一个return语句被执行到,那么这个函数就会
结束了,因此后面的return没有什么用处
如果程序设计为如下,是可以的因为不同的场景下执行不同的return
1、if else
2、 return(a,b)
…
四、注意事项:
1、缺省参数
在形参中默认有值的参数,称之为缺省参数
注意:带有默认值的参数一定要位于参数列表的最后面
def printinfo(name, age=35, sex):
… print name
…
File “”, line 1
SyntaxError: non-default argument follows default argument
. 缺省参数在*args后面
def sum_nums_3(a, *args, b=22, c=33, kwargs):
print(a)
print(b)
print©
print(args)
print(kwargs)
sum_nums_3(100, 200, 300, 400, 500, 600, 700, b=1, c=2, mm=800, nn=900)
说明:
如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面, 但如果有kwargs的话,**kwargs必须是最后的
2、对返回数据直接拆包:
拆包、交换变量的值
<1> 对返回的数据直接拆包
def get_my_info():
high = 178
weight = 100
age = 18
return high, weight, age
result = get_my_info()
print(result)
my_high, my_weight, my_age = get_my_info()
print(my_high)
print(my_weight)
print(my_age)
总结:
拆包时要注意,需要拆的数据的个数要与变量的个数相同,否则程序会异常
除了对元组拆包之外,还可以对列表、字典等拆包