基本用法:2《定义函数def、返回值return、元组tuple》

时间:2021-12-02 11:35:54

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+'中奖!')