L6-6 函数升级

Posted xiaoxiao-ya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L6-6 函数升级相关的知识,希望对你有一定的参考价值。

一、课程回顾

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

二、递归函数

# 在函数内部,可以调用其他函数。如果一个函数在内部调用自身,这个函数就是递归函数。
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 函数升级的主要内容,如果未能解决你的问题,请参考以下文章

2C++ 的升级

gcc 升级导致模板函数的静态局部变量变得未知

升级到 React Native 26 后使用箭头函数时不再绑定

Rails 3 升级:使用数组作为参数从 js.erb 调用 javascript 函数

C语言升级版猜数字小游戏(含简单中等困难模式并且支持战绩查询以及界面美化)

jQuery1.9+ 废弃的函数和方法 升级Jquery版本遇到的问题