码迷,mamicode.com
首页 > 其他好文 > 详细

L6-6 函数升级

时间:2019-09-20 21:02:21      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:bsp   glob   修改   注意   ret   print   需要   class   变量定义   

一、课程回顾

上节课我们学习了函数的参数,学习了四种传参方式,分别是位置参数、默认参数、可变参数和关键字参数。

二、递归函数

# 在函数内部,可以调用其他函数。如果一个函数在内部调用自身,这个函数就是递归函数。
def foo(num):
    print(num)
    if num==1:
        return
    foo(num-1)
    print(num,"=======>")
foo(3)

三、高阶函数

# 高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数。

 

1.变量可以指向函数,以内置函数abs为例,调用函数时将结果赋值给变量

a=abs(-10)

print(a)

 

2.直接将函数本身赋值给变量

a=abs

print(a(-10))
3.一个函数可以接收另一个函数作为参数,这种函数就是高阶函数。

map函数:是Python 内置的高阶函数

# map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组)。其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数。

案例1:

a=(1,2,3,4,5)
b=[1,2,3,4,5]
c="Rita"

la=map(str,a)
lb=map(str,b)
lc=map(str,c)

print(la)
print(lb)
print(lc)

案例2:

L = [sKY, tOM, LUKAS]
def upper_first(s):    
    return s[0].upper() + s[1:].lower()
print(map(upper_first, L))

注:upper(),lower()作用

# upper()字符串中字母由小写变为大写
# lower()字符串中字母由大写变为小写

四、变量作用域

# 作用域指的是范围,值得就是作用的的范围,分为以下两种:全局变量和局部变量。

# 全局变量:一般在函数体外定义的变量

# 局部变量:在函数内部定义的变量

全局变量:

num = 100
def func():
    x = num + 100
    print(x)
func()

# 结果:200

局部变量:

num = 100
def func():
    num = 200
    x = num + 100
    print(x)
func()

# 结果:300

注意使用函数时,变量名既有全局变量也有局部变量,则默认使用局部变量。

global:在局部声明一个名字是来自于全局作用域的,可以用来在局部修改全局的不可变类型。

在函数中将某个变量定义为全局变量时需要使用关键字global。

num = 100
def func():
    global num
    num = 200
    print(num)
func()
print(num)

# 结果:
# 200
# 200

 

 

 

 

1111111111

L6-6 函数升级

标签:bsp   glob   修改   注意   ret   print   需要   class   变量定义   

原文地址:https://www.cnblogs.com/xiaoxiao-ya/p/11499127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!