python学习之旅(8)①定义函数和传递信息 ②关键字参数 ③默认参数 ④收集参数 ⑤局部变量和全局变量 ⑥global函数 ⑦内嵌函数 ⑧闭包 ⑨lambda函数 ⑩map函数

①定义函数和传递信息

def greet_user(name,words):           (name是形参)
    """显示简单的问候语"""    (提供注释)
    print(name+'问候'+words)
greet_user('你','我') 得                  (“你”是实参)
你问候我
 

②关键字参数(将实参与形参相对应,不必考虑顺序)

def greet_user(name,words):
    """显示简单的问候语"""
    print(name+'问候'+words)
greet_user(name='我',words='你')得
我问候你
 
③默认参数
def greet_user(name='我',words='你'):
    """显示简单的问候语"""
    print(name+'问候'+words)
greet_user()
greet_user('你妈')
greet_user('你','你妈')得

我问候你
你妈问候你
你问候你妈

④收集参数

def greet_user(*name):
    print('参数的长度是:'+str(len(name)))
    print(name)
    print(name[-2])
greet_user('你','我','他')得

参数的长度是:3
('你', '我', '他')

def greet_user(*name,num=8):
    print('参数的长度是:'+str(len(name)),num)
    print(name)
    print(name[-2])
greet_user('你','我','他',5)得      (实参若由逗号隔开,会被算入元组中,单独分开需设置为关键字函数)

参数的长度是:4 8
('你', '我', '他', 5)

 

def greet_user(*name,num=8):
    print('参数的长度是:'+str(len(name)),num)
    print(name)
    print(name[-2])
greet_user('你','我','他',num=5)得

参数的长度是:3 5
('你', '我', '他')

⑤局部变量和全局变量

def discount(for_grade,rate):
    last_grade=for_grade*rate
    rate=0.35                      (函数中的变量为局部变量,如'final_grade',在函数外不可打印。                                               
    print('修改',rate)               在函数中可以修改全局变量,但本质上是创建一个新的名字相同的变量,与函数外定义的互不影响)
    print("最终成绩为:",final_grade)
str_grade=float(input('请输入预估成绩'))
rate=float(input('请输入折算率'))
final_grade=discount(str_grade,rate)
print(rate)得                       (在函数外不可以打印局部变量'last_grade',会报错无改定义,本质是函数使用完后被删除)

请输入预估成绩100
请输入折算率0.8
修改 0.35
最终成绩为: 80.0
0.8

 

⑥global函数(将函数中的局部变量转化为全局变量)

count=5
def number():
    global count
    count=100
number()
print(count)得
100
 
 ⑦内嵌函数(只能在大的函数中使用)
def number_1():
    print(1)
    def number_2():
        print(2)
    number_2()    
number_1() 得

1
2

 

⑧闭包(就是能够读取其他函数内部变量的函数,函数中的函数)

def number_1(x):
    def number_2(y):
         return x*y
    return number_2    
number_1(3,5)得
15
 
def number_1():
    x=5
    def number_2():    (nonlocal函数在此中的作用与gobal类似,可让内部函数使用外部函数的变量)
        nonlocal x
        return 2+x
    return number_2    
number_1()得
7
 
⑨lambda函数
g=lambda x,y:x+y+7
g(2,3)得
12
 
⑩filter函数(筛选作用:筛选出不符合条件的元素)
list(filter(lambda x:x%2,range(10)))得            (此处筛选条件为奇数)
【1,3,5,7,9】
 
⑩map函数(映射关系)
list(map(lambda x:x*2,range(10)))得
【1,2,4,6,8,10,12,14,16,18,20】
  
 

 

 

posted @ 2020-10-06 17:09  潇潇雨人愁  阅读(133)  评论(0)    收藏  举报