函数

函数

希望是人生的乳母。—— 科策布

函数的定义

函数相当于把代码封装到了一个区域里,这样每次使用的时候提高了代码的复用性

函数定义

  • 基本语法

在 Python 中函数必须是以 def 开头


def 函数名:

   xxxx要执行的代码
  • 要是空函数可以

def nop():
    pass

pass 语句就是什么都不用做,占位使用,比如还没有想好使用什么,先让程序跑起来

  • 例如

if age >=18:
   pass

返回值和 return 语句

  • return 是一个关键字

  • 函数应该返回的值或者表达式


def returnValue(value):
    return value


print(returnValue('haha'))

# 结果
# haha

在 Python 中有一个值为 None,他表示没有值(JS 中称为 null)

重点首字母必须大写

  • None

他的意思就是没有值

Global 语句 (用来在局部变量中修改全局变量)

如果需要在一个函数内修改全局变量,就使用 global 语句.如果函数顶部有 global eggs 这样的代码,他相当于告诉 Python 在这个函数中 eggs 就是全局变量,不要用这个名称创建一个局部变量

  • 错误示范 这样局部变量改变不了全局变量,最后结果还是今天开始

他只不过就是起了一个和全局变量同名的局部变量而已

str1 = "今天开始"


def re():

    str1 = '哈哈哈'


re()
print(str1)

# 结果
# 今天开始
  • 正确示范

必须使用 global 才能修改全局变量

str1 = "今天开始"


def re():

    global str1

    str1 = '哈哈哈'


re()
print(str1)

# 结果
# 哈哈哈

函数的另外一种匿名函数

  • 在 Python 中有些时候不需要显示的定义函数,直接传入匿名函数更方便

  • 在 Python 中匿名函数通过关键字 lambda 来支持 冒号前面的 x 表示函数参数


f = lambda x: x*x

# 等价于

def f(x){
    return x*x
}

# 只不过他没有名字罢了

map 和 reduce 函数

  • map(参数一,参数二) map 的作用就是 参数二就是参数一里面的参数,参数一必须十函数

def f(x):
    return x*x
r = map(f,[1,2,3])

print(list(r))
# 结果就是
# list(r)
# [1,4,9]
  • reduce 函数就是把一个函数作用在一个序列[x1,x2,x3,…]上,这个函数必须接收两个参数 reduce 把结果和序列的下一个元素做累积运算,其效果就是

reduce(f,[x1,x2,x3,x4]) = f(f(f(x1,x2),x3),x4)

  • 比方说对一个序列求和,既可以用 reduce 来实现

from functiontools import reduce

def add(x,y):
    return x + y
reduce(add,[1,3,5,7,9])

# 结果就是25

文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录