前言
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦


文章目录

  • python中的全局变量与局部变量
  • 全局变量
  • 局部变量
  • global关键字
  • 递归函数
  • 什么是递归函数
  • 匿名函数lambda


python中的全局变量与局部变量

全局变量

全局变量:在 python脚本最上层代码块的变量

全局变量可以在函数内被读取使用

python3 定义全局bytes变量 python定义全局变量的函数_局部变量

函数体内只能使用全局变量,无法修改。如果在函数体内修改了这个变量,相当于这个变量变成了这个函数体内的局部变量。

局部变量

局部变量:只在局部使用的变量。

如果在外部使用会报错:

python3 定义全局bytes变量 python定义全局变量的函数_python_02

global关键字

将一个变量定义(声明)为全局变量。

在使用这个变量之前,要先将这个变量声明为全局变量才可以进行修改。
在本函数中用global声明的全局变量,只能在本函数内修改。想要在其他函数内修改这个变量,还需要再次声明。

# coding:utf-8

name = 'xiaoming'   # 定义一个全局变量

def test():
    global name   # global+全局变量名,可以将全局变量导入到函数提内使用。这是可以给全局变量重新赋值

注意!在工作中不建议使用global对全局变量进行重新定义

例子:

python3 定义全局bytes变量 python定义全局变量的函数_python_03

需要通过global声明为全局变量的类型只有数字、字符串、布尔及空类型。而字典和列表类型是不需要global进行声明的:

python3 定义全局bytes变量 python定义全局变量的函数_python_04

递归函数

什么是递归函数

通过返回值,直接执行自身函数就达到了递归的效果

def test(a):
    print(a)
    return test(a)  # 通过返回值,直接执行自身函数

注意,编写代码是一定要避免滥用递归,如果出现无限递归,可能会导致内存溢出导致死机

例子:

python3 定义全局bytes变量 python定义全局变量的函数_全局变量_05

匿名函数lambda

匿名函数lambda用来定义一个轻量化的函数

即用即删除,很适合需要完成一项功能,但是此功能只在此一处使用

# 无参数的匿名函数:
f = lambda:value
f()

# 有参数的匿名函数
f = lambda x,y:x*y
f(3,4)

例子:

python3 定义全局bytes变量 python定义全局变量的函数_python_06

lambda的应用小实例:

对列表按照某个元素进行排序:

python3 定义全局bytes变量 python定义全局变量的函数_python_07