2 《定义函数def、返回值return、元组tuple》
【功能】 返回函数return ' '不需要立刻print,先存起来需要再print()
(1)【局部变量】和【全局变量】
1 #(1)【局部变量】和【全部变量】
2 # A.【局部变量】函数内部定义,只能内部使用,外部不能使用
3 def egg(): 4 global a # 声明a是全局变量,print(a+2) 就不会报错了
5 a=108
6 print(a+1) 7 egg() 8 print(a+2) 9
10 # B. 【全部变量】函数外部定义,内外都能使用
11 a=108
12 def egg(): 13 print(a+1) 14 egg() 15 print(a+2) 16 x = 99
17 def num(): 18 x = 88
19 print(x) 20 num() 21 # 调用局部变量x,若不加,就不能打印88
22 print(x) # 打印全局变量x
23 print('\n')
(2)【参数类型】位置参数类型a1,a2 ; 默认参数a3 ; 不定长a4
1 #(2)【参数类型】位置参数类型a1,a2 ; 默认参数a3 ; 不定长a4
2 a4=('小米','小面','小苗') 3 print(type(a4)) # <class 'tuple'>
4 def a(a1,a2,a3='它',*a4): # 位置参数类型a1,a2 ; 默认参数a3 ; 不定长a4
5 print('我最喜欢'+a1) 6 print('我最讨厌' + a2) 7 print('我不认识' + a3) 8 print('我刚认识:',end='') 9 for i in a4: 10 print(i+' ',end='') 11 print('\n') 12 a('你','他') 13 a('他','你') 14 a('他','你','她') # 覆盖a3='它'
15 a('他','你','她',*a4) # 覆盖a3='它 + 遍历a4
16 print('\n')
(3)【没有return语句,默认返回None】
1 ## 4. 返回函数 return ''
2 # 【功能】 不需要立刻print,先存起来需要再print()
3 def face(name): 4 return name + '的脸蛋'
5 def body(name): 6 return name + '的身材'
7 print('我的女神长什么样?:'+face('李若彤')+'+'+body('林志玲')) 8 #要再次调用就要复制一遍,然后改参数
9 print('我的女神长什么样?:'+face('新垣结衣')+'+'+body('长泽雅美')) 10 print('\n') 11
12 ## (1)【没有return语句,默认返回None】
13 # 【有多个return只返回第1个】
14 def fun(): 15 a ='I am coding'
16 # 没有return 就默认返回 None
17 print(fun()) # None
18 def fun(): 19 a='I am coding'
20 return a 21 print(fun()) # I am coding
22 def fun(): 23 return 'I am coding.' # 返回第一个return
24 return 'I am not coding.'
25 print(fun()) # I am coding
26 print('\n')
(4)多次调用:定义 【主函数main()】,调用 【非主函数的return】
1 ## (2)多次调用:定义 【主函数main()】,调用 【非主函数的return】
2 def a(a1): 3 return a1 + '的脸蛋'
4 def b(b1): 5 return b1 + '的身材'
6 def main(c1, c2): 7 return '我的女神长什么样?:'+a(c1)+'+'+b(c2) 8 print(main('李若彤', '林志玲')) 9 print(main('新垣结衣','长泽雅美')) 10 print('\n')
(5)多个返回值:定义 【元组tuple=(‘’,’’)】,调用 【元组元素】
——python的独特之处,其他编程语言没有【元组】
1 ##(3)多个返回值:定义 【元组tuple】,调用 【元组元素】
2 ### ——python的独特之处,其他编程语言没有【元组】
3
4 # A. 两数比较
5 def a(a1,a2): 6 if a1>a2: 7 return '较大的数是'+str(a1) 8 elif a1<a2: 9 return '较大的数是'+str(a2) 10 else: 11 return '两数一样大'
12 tuple=a(99**2,8888) 13 print(tuple) # 较大的数是9801
14
15 # B. 调用多个返回值
16 def a(a1,a2): # <class tuple> 元组不能作为返回值!!!
17 b1= a1 + '的脸蛋'
18 b2= a2 + '的身材'
19 return b1,b2 20 # return '我的女神长什么样?:' + a(c1,c2) # 报错
21 tuple=a('倪妮','母其弥雅') # 定义一个元祖,再调用
22 print('我的女神长什么样?:'+tuple[0]+'+'+tuple[1])
实例11:HellowKitty倒计时随机抽奖器?
【方法1:random, time】
1 ### 1. 原始代码
2 import random,time 3 luckylist = ['海绵宝宝','派大星','章鱼哥'] 4 a = random.choice(luckylist) 5 print('开奖倒计时',3) 6 time.sleep(1) 7 print('开奖倒计时',2) 8 time.sleep(1) 9 print('开奖倒计时',1) 10 time.sleep(1) 11 ## 使用三引号打印hellokitty的头像
12 image = '''
13 /\_)o< 14 | \\ 15 | O . O| 16 \_____/'''
17 print(image) 18 print('恭喜'+a+'中奖!') 19 print('\n\n')
【方法2:封装函数def】
1 ### 2. 使用 封装函数def
2 import random,time 3 def a(a1,a2,a3): 4 x=[a1,a2,a3] 5 global b 6 # 定义b前先声明它是【全局变量】
7 b=random.choice(x) 8 # 随机选择列表元素
9 return b 10 a('海绵宝宝','派大星','章鱼哥') 11 print('开奖倒计时',3) 12 time.sleep(1) 13 print('开奖倒计时',2) 14 time.sleep(1) 15 print('开奖倒计时',1) 16 time.sleep(1) 17 image = '''
18 /\_)o< 19 | \\ 20 | O . O| 21 \_____/'''
22 print(image) 23 print('恭喜'+b+'中奖!')