Python学习总结【连载】(八)
2018.06.22 Juttachen
概述
+ 26 函数补充
- 函数的返回值
- 函数调用表达式
- return
- 函数的结束
+ 27 作用域
二十六、函数补充
1.函数的返回值:
a.就是函数调用表达式的值
b.就是return关键字后的表达式的值
c.就是函数返回给调用者的值
如何看一个函数的返回值是多少?
就看return后面的结果!!
2.函数调用表达式:就是调用函数的那个表达式(这个表达式是有值的,默认是None)
def func1():
print('hello world')
# func1()就是函数调用表达式,他是一个值。
result = func1()
print(result,func1())
注意:普通的值能做的事情,函数调用表达式都能做,例如:给变量赋值,打印(可以作为实参传给函数),还有运算等
例子:将列表作为参数
def del_list(list1):
index = 0
while index < len(list1):
if list1[index] % 2 == 0:
del list1[index]
index -= 1
index += 1
print(list1)
list2 = [1,2,3,4]
del_list(list2)
注意:将对象变量作为实参传递给函数,如果在函数中改变了列表的元素,那么原来的列表元素也会变。
如果不想两个对象都变了,那么就要copy或者切片一下。
list2 = [1,2,3,4]
del_list(list2[:])
3.函数的调用过程
a.函数声明:函数体在声明的时候是不会执行的
b.函数调用过程:
第一步:将实参传递给形参(传参:用实参给形参赋值)
第二步:执行函数体
第三步:获取返回值(这个时候会回到函数调用的位置,并且让函数调用表达式的值)
二十七、作用域
1.概述
变量的作用域:变量可以使用的范围
python中只有函数、类会产生作用域。
在作用域中声明的变量我们叫局部变量。
在产生作用域外的位置声明的变量叫全局变量,都是从声明开始起作用的。
2.全局变量:
声明在产生作用域外的变量。(即声明在函数和类外面的变量)
使用范围:从声明开始到整个文件结束的任何位置都可以使用。
注意:写在if语句、for/while循环体中的变量也是全局变量。if语句和循环不会影响变量的作用域。
a = 10
print(a)
if True:
print('if',a)
for x in range(3):
print('for',a)
def func1():
print('func1',a)
func1()
3.局部变量
在Python中声明在函数和类的变量都是局部变量。
def func3():
# d就是一个局部变量,使用范围只是从声明开始到函数结束。
d = 'a'
print('func3',d)
if True:
print(d) # 这个就是对的,因为在函数内
func3()
# print(d) NameError: name 'd' is not defined
# if True:
# print('if',d) NameError: name 'd' is not defined
aa = 100 # 全局变量aa
def func4():
aa = 200 # 重新声明一个局部变量 aa (不过两个同名了)
print('func4',aa)
func4()
print(aa)
注意:在函数中普通赋值不能修改全局变量的值,只能使用。
在函数或类中想修改全局变量的值?
使用global关键字
bb = 100
def func5():
# 想在这个地方去修改全局变量bb的值为200
global bb # 这个时候不能直接赋值,这个的意思是提醒机器bb是全局变量。
bb = 200
func5()
print(bb)
网友评论