函数概念 无返回值,无参数传递的函数 带参数的函数 带参数和单个返回值的函数 带参数和多个返回值的函数 局部变量只作用于函数内,不同函数可以定义相同的变量名,彼此无关 全局变量 无*的参数,外面传入什么就是什么,但是只能是单个 单个 * 的参数会以元组的形式传入,可以是多个 声明函数时,参数中星号 * 可以单独出现,单独出现星号 * 后的参数必须用关键字传入。 两个星号 ** 的参数会以字典的形式传入,可以是多个1. 函数的概念
2. 定义函数
# 函数定义 def printinfo(): print('-'*20) print('人生苦短,我用Python') print('-'*20) # 函数调用 printinfo()
-------------------- 人生苦短,我用Python --------------------
# 定义带参数的函数 def add_2_num(a,b): # 这儿定义两个参数 c = a + b print(c) # 调用 add_2_num(1,2) # 根据定义的参数的个数和顺序保持一致,进行正确的传递
3
# 定义带参数的函数 def add_2_num(a,b): return a + b # 通过return返回运算结果,可以是表达式,或者是具体的参数 # 调用函数,并用变量来接收它 result = add_2_num(1,2) result
3
# 定义带参数的函数 def yushu_shang(a,b): shang = a // b yushu = a % b return shang,yushu # 多个返回值,用','隔开 # 返回多少值,则用多个变量来保存返回值 s,y = yushu_shang(5,2) print('商:{},余数:{}'.format(s,y))
商:2,余数:1
2.1 函数练习
# 1. def xian(): print("-"*40) xian()
----------------------------------------
# 2. def num_xian(num): for i in range(num): xian() num_xian(3)
---------------------------------------- ---------------------------------------- ----------------------------------------
# 3. def sum_num(a,b,c): return a + b + c sum_ = sum_num(1,2,3) sum_
6
def mean_num(a,b,c): mean = sum_num(a,b,c) / 3.0 return mean m = mean_num(1,2,3) m
2.0
3. 局部变量与全局变量
def test1(): a = 300 # 局部变量 print('test1----修改前:a = ',a) a = 100 print('test1----修改后:a = ',a) test1()
test----修改前:a = 300 test----修改后:a = 100
def test1(): a = 300 # 局部变量 print('test1----修改前:a = ',a) a = 100 print('test1----修改后:a = ',a) def test2(): a = 300 # 局部变量 print('test2----:a = ',a) test1() test2()
test1----修改前:a = 300 test1----修改后:a = 100 test2----:a = 300
a = 100 # 全局变量 def test1(): print('test1----:a = ',a) # 若没有局部变量,则默认调用全局变量 def test2(): print('test2----:a = ',a) test1() test2()
test1----:a = 100 test2----:a = 100
# 局部变量优先使用,没有局部变量,则默认调用全局变量 a = 100 def test1(): a = 300 # 局部变量 print('test1----修改前:a = ',a) a = 100 print('test1----修改后:a = ',a) def test2(): print('test2----:a = ',a) test1() test2()
test1----修改前:a = 300 test1----修改后:a = 100 test2----:a = 100
# 在函数中修改全局变量 a = 100 def test1(): global a # global是声明全局变量的标识符 print('test1----修改前:a = ',a) a = 300 print('test1----修改后:a = ',a) def test2(): print('test2----:a = ',a) test1() test2()
test1----修改前:a = 100 test1----修改后:a = 300 test2----:a = 300
4. 不定长参数
def test(a,b): print(a,b) test((1,2),{'a':2,'b':3})
(1, 2) {'a': 2, 'b': 3}
def test(a,b): print(a,b) test(1,2,3)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-47-2f2c173e1e56> in <module>() 1 def test(a,b): 2 print(a,b) ----> 3 test(1,2,3) TypeError: test() takes 2 positional arguments but 3 were given
def test(a,*b): print(a,b) test(1,2,3)
1 (2, 3)
# * 位于第一参数位置时报错 def test(*a,b): print(a,b) test(1,2,3)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-55-04948f903a07> in <module>() 2 def test(*a,b): 3 print(a,b) ----> 4 test(1,2,3) TypeError: test() missing 1 required keyword-only argument: 'b'
def test(a,*,b): print(a,b) test(1,b=2)
1 2
def test(*,a,b): print(a,b) test(a=1,b=2)
1 2
def test(a,**b): print(a,b) test(1,b=2,c=3)
1 {'b': 2, 'c': 3}
5. 匿名函数lambda
sum = lambda a,b:a + b sum(2,3)
5
sum = lambda a=1,b=2:a+b print(sum(),'t',sum(2,3))
3 5
学习参考
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算