一、函数的返回值
def 函数名(参数列表)
说明文字
函数体
函数的返回值:1.就是函数调用表达式的值;
2.就是return关键字后的表达式的值;
3.就是函数返回给调用者的值
如何看一个函数的返回值是多少:就看return后面的结果,如果没有return就是none
-
1.函数调用表达式:就是调用函数的那个表达式(这个表达式是有值的,默认值是none)
func1()就是一个函数 def func1(): print('hello world')
func1()就是函数调用表达式,他是一个值;
普通的值能够做的事情,函数调用表达式都能做;
例如:给变量赋值,打印(可以作为实参传给函数),运算等
result = func1()
print(result, func1())
-
2.return: 1.将值传给函数调用者(函数调用表达式);2.结束函数
def func2(): print('hello world') # return None 如果函数中国没有return, # 就相当于在函数结束的时候,在后面加了一个return none return 'aaa' result = func2() * 2 print(result, func2()) # hello world hello world aaaaaa aaa
练习:写一个函数,获取两个数的乘积
def yy_sum(num1, num2):
return num1 * num2
result = yy_sum(10, 3)
print(result)
-
3.函数的结束:
a.没有return,函数体执行完毕,函数结束;
b.如果函数中有return,遇到return函数就结束。
程序直接回到函数调用位置,接着往下执行
def func3():
print('hello')
return 10
print('world')
print(func3()) # hello 10
def download(url):
下载数据
if 数据下载失败:
return '下载失败'
解释数据
处理和显示数据
练习:写一个函数,找出100-200之间第一个能被13整除的数
def yy_sum(num):
for item in num:
if item % 13 == 0:
print(item)
return item
yy_sum(num=range(100, 201))
二、将列表作为参数
练习:写一个函数,删除列表中的偶数
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) # [1, 3]
# 注意:将列表变量作为实参传递给函数,如果在函数中改变了列表元素,那么原来的列表元素也会改变
print(list2) # [1, 3]
三、作用域
在python中,只有模块、函数和类会产生作用域。在作用域中声明的变量我们叫局部变量
在产生作用域外的位置声明的变量叫全局变量
不管是局部变量还是全局变量,都是从声明开始起作用的
-
1.全局变量(声明在产生作用域外的,使用范围是:从声明开始到整个文件结束的任何位置都可以使用)
a = 10 print(a) # 10 if True: print(a) # 10 for x in range(3): print('for', a) # for 10 for 10 for 10 def func1(): print('func1', a) func1() # func1 10
if 语句、for/while 循环体,是不会产生作用域的;
相当于写在if、或者循环体中的变量,不改变其变量属性,相当于全局变量。
if True:
b = 20 # 在这儿的b也是全局变量
print('if', b) # if 20
print(b) # 20
while True:
print('while', b) # while 20
break
def func2():
print('func2', b)
func2() # func2 20
-
2.局部变量:在python中声明在函数和类的变量都是局部变量。
def func3(): d = 'a' # d就是一个局部变量,使用范围就是整个函数,从声明开始到函数结束 print('func3', d) func3() # func3 a # print(d) 报错:NameError: name 'd' is not defined
注意:在函数中不能改变全局变量的值,只能使用
aa = 100 # 全局变量aa
def func4():
aa = 200 # 重新声明了一个局部变量 aa,只是重名了
print('func4', aa)
func4() # func4 200
print(aa) # 100
-
3.global关键字的使用
bb = 100 # 全局变量bb def func5(): global bb # 在这个地方去修改全局变量bb的值为200 bb = 200 print('func5', bb) func5() # func5 200 print(bb) # 200
网友评论