python全局变量

python基础知识之函数与函数式编程

允我心安 提交于 2020-04-08 12:25:21
3种编程方式:   1.面向对象(最火的)。(过去大部分的编程方式);》》主要是依靠:类》》class ,就是具有逻辑的过程,说话的方式描述   2.面向过程。主要是 过程》》def 过程是没有返回值的函数,但是python也会返回none 基本与函数式编程没有区别了,最小的单元是一个一个的def定义的过程,一个一个逻辑是def定义的过程   3.函数式编程。编的函数更接近数学中的函数 是一种编程规范 也就是如何编程的方法论 主要是 函数》》def 例如lisp #hashshell erlang# 三种语言 可以 真正较纯粹的使用函数式编程来编写程序。 示例:(1+2)*3-4 传统编程方法:var a =1+2;        var b =1*3;        var c =b-4; 函数式编程则要求使用函数进行,把不同的运算定义成不同函数进行计算,写成下面的形式来进行: var result = subtract(multiplely(add(1,2),3),4); python中的函数式编程是:逻辑结构化和过程化的一种编程方法 一,函数基础介绍(day3 22)【funt_test.PY】 def func1():#函数 '''文档介绍''' print('in the func1')#过程 return 0#返回值 def func2():#过程 '''文档介绍'''

06-局部变量和全局变量

守給你的承諾、 提交于 2020-04-04 06:58:43
局部变量:在函数内部定义的变量,只是在当前函数中使用,在其他函数就不行 In [1]: def test1():    #定义一个test1函数 ...: a = 100  #赋值 ...: In [2]: def test2():    #定义一个test2函数 ...: print("a=%d"%a)  #打印 ...: In [4]: test1()  #调用test1函数,因为没有return,所以结果为空 In [5]: test2()  #调用test2函数,报错 --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-5-35ebc1c532fc> in <module>() ----> 1 test2() <ipython-input-2-d9ea9e4cdd20> in test2() 1 def test2(): ----> 2 print("a=%d"%a) 3 NameError: name 'a' is not defined  #表示a没有定义,a是在test1函数中定义的局部变量 全局变量:在函数外定义,在任何函数里都能使用 In [1]:

全局变量 局部变量

二次信任 提交于 2020-03-22 08:01:22
全局变量 大写 局部变量 小写 1、函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量,例如: num = 100 def func(): num = 123 print(num) func() #输出: 123 说明函数中定义的num是一个局部变量,会将全局变量覆盖。再例如: num = 100 def func(): num += 100 print(num) func() #输出: UnboundLocalError: local variable 'num' referenced before assignment 错误提示局部变量num在赋值前被应用,也就是该变量没有定义就使用它,由此再次证明了这里定义了一个局部变量,而不是使用的全局的num。 总结:函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量。 Python makes educated guesses on whether variables are local or global. It assumes that any variable assigned a value in a function is local. From: https://www.tutorialspoint.com/python

Python 全局变量与局部变量

你离开我真会死。 提交于 2020-03-16 14:56:47
某厂面试归来,发现自己落伍了!>>> 开篇 本文通过一个案例说明 Python 中全局变量用法与 Java 的不同。(ps:一直在用 Java 的方式用 Python,所以踩了一个坑)觉得无聊可以直接看文末总结。 局部变量与全局变量的概念 以下摘自百度百科: 变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。 全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。 案例 如果按照 Java 的用法描述下面的 Python 代码段以及最终打印结果,那么会是以下这样: 定义了一个全局变量 a, 然后在方法 func() 中去修改 a 的值为 2, 因此最终打印结果就是 2。 a = 1 def func(): a = 2 print(a) 虽然实际的打印结果确实是 2,但是上面的描述是不对的。方法体外的 a (全局变量)与 方法内部的 a (局部变量)是不相关的。 简单来讲就是: 在 python 中,当你在函数内定义一个与全局变量一样名字的变量时,相当于你在函数内重新定义了一个局部变量 如何验证? 看如下的代码段,在方法内部拿到方法体外的一个变量,去进行运算。 如果在 java 中,下面的变量用法以及代码逻辑是 ok 的; 而在 python 中

十、Python 命名空间和作用域

大城市里の小女人 提交于 2020-03-12 08:37:05
1、命名空间 I) 定义: 1)命名空间(Namespace)是从名称到对象的映射,大部分的命名空间都是通过 Python 字典来实现的。 2)命名空间提供了在项目中避免名字冲突的一种方法。 3)各个命名空间是独立的,没有任何关系的,所以一个命名空间中不能有重名,但不同的命名空间是可以重名而没有任何影响。 例如: 我们举一个计算机系统中的例子,一个文件夹(目录)中可以包含多个文件夹, 每个文件夹中不能有相同的文件名,但不同文件夹中的文件可以重名 II)三种命名空间格式: 一般有三种命名空间: 内置名称(built-in names) : Python 语言内置的名称,比如函数名 abs、char 和异常名称 BaseException、Exception 等等。 全局名称(global names) : 模块中定义的名称,记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。 局部名称(local names) : 函数中定义的名称,记录了函数的变量,包括函数的参数和局部定义的变量。(类中定义的也是) III) 命名空间查找顺序 Python 的查找顺序为:局部的命名空间去 -> 全局命名空间 -> 内置命名空间 如果找不到变量 a,它将放弃查找并引发一个 NameError 异常 IV) 命名空间的生命周期: 命名空间的生命周期取决于对象的作用域,如果对象执行完成

函数二

孤街浪徒 提交于 2020-03-07 20:45:03
函数二 """ - 变量作用域 - 多函数程序执行流程 - 函数的返回值 - 函数的参数 - 拆包和交换两个变量的值 - 引用 - 可变和不可变类型 """ 一. 变量作用域 """ 变量生效的范围: 局部变量 全局变量 """ 1.局部变量 """ 定义在函数体内部的变量,即只在函数体内部生效 """ def testA ( ) : a = 100 print ( a ) testA ( ) # 100 print ( a ) # 报错:name 'a' is not defined 2.全局变量 """ 在函数体内、外都能生效的变量 函数修改变量a的值为200 `testB`函数内部的`a = 200`是定义了一个局部变量 在函数体内部修改全局变量a,加声明global """ a = 100 # 定义全局变量a def testA ( ) : print ( a ) # 访问全局变量a,并打印变量a存储的数据 testA ( ) # 100 def testB ( ) : a = 200 # 此a是局部变量 print ( a ) testB ( ) # 200 print ( f '全局变量a = {a}' ) # 全局变量a = 100 def testc ( ) : global a # global 关键字声明a是全局变量 a = 200 print ( a )

python——变量的高级使用

本秂侑毒 提交于 2020-03-05 16:53:35
变量进阶(理解) 目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变量 和 数据 是分开存储的 数据 保存在内存中的一个位置 变量 中保存着数据在内存中的地址 变量 中 记录数据的地址 ,就叫做 引用 使用 id() 函数可以查看变量中保存数据所在的 内存地址 注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用 变量 不再 对之前的数据引用 变量 改为 对新赋值的数据引用 1.2 变量引用 的示例 在 Python 中,变量的名字类似于 便签纸 贴在 数据 上 定义一个整数变量 a ,并且赋值为 1 代码 图示 a = 1 | 将变量 a 赋值为 2 代码 图示 a = 2 | 定义一个整数变量 b ,并且将变量 a 的值赋值给 b 代码 图示 b = a | 变量 b 是第 2 个贴在数字 2 上的标签 1.3 函数的参数和返回值的传递 在 Python 中,函数的 实参 / 返回值 都是是靠 引用 来传递来的 def test(num): print("-" * 50) print("%d 在函数内的内存地址是 %x" % (num, id(num))) result

python全局变量和局部变量的区别?

六月ゝ 毕业季﹏ 提交于 2020-03-05 07:52:14
python全局变量和局部变量的区别 全局变量和局部变量的区别在于作用域,全局变量在整个py文件中声明,全局范围内可以使用;局部变量是在某个函数内部声明的,只能在函数内部使用,如果超出使用范围(函数外部),则会报错。 推荐: Python教程 #!/usr/bin/python3 # -*- coding: utf-8 -*- A = 100 # 全局变量一般用大写字母表示 def func ( ) : a = 50 # 局部变量一般用小写字母表示 print ( a + A ) func ( ) print ( A ) print ( a ) # 报错信息NameError: name 'a' is not defined #!/usr/bin/python3 # -*- coding: utf-8 -*- A = 100 def func ( ) : A = 250 print ( A ) print ( A ) # 打印全部变量 func ( ) # 局部变量 如果想在函数内部改变全局变量,需要在前面加上global关键字,在执行函数之后,全局变量值也会改变。 #!/usr/bin/python3 # -*- coding: utf-8 -*- A = 100 def func ( ) : global A A = 200 print ( A ) print ( A ) #

16变量进阶(理解)

旧巷老猫 提交于 2020-02-29 09:58:07
01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变量 和 数据 是分开存储的 数据 保存在内存中的一个位置 变量 中保存着数据在内存中的地址 变量 中 记录数据的地址 ,就叫做 引用 使用 id() 函数可以查看变量中保存数据所在的 内存地址 注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用 变量 不再 对之前的数据引用 变量 改为 对新赋值的数据引用 1.2 变量引用 的示例 在 Python 中,变量的名字类似于 便签纸 贴在 数据 上 定义一个整数变量 a ,并且赋值为 1 代码 图示 a = 1 将变量 a 赋值为 2 代码 图示 a = 2 定义一个整数变量 b ,并且将变量 a 的值赋值给 b 代码 图示 b = a 变量 b 是第 2 个贴在数字 2 上的标签 1.3 函数的参数和返回值的传递 在 Python 中,函数的 实参 / 返回值 都是是靠 引用 来传递来的 def test ( num ) : print ( "-" * 50 ) print ( "%d 在函数内的内存地址是 %x" % ( num , id ( num ) ) ) result = 100 print ( "返回值 %d

Python学习-函数,函数参数,作用域

坚强是说给别人听的谎言 提交于 2020-02-28 10:23:16
一、函数介绍 函数定义:函数时组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 我们已经知道python提供了许多内建函数,print(), type()等。我们也可以自己创建函数,这被叫做用户自定的函数。 定义一个函数 定义是遵守的简单的规则: 以 def 关键字开头,后接函数标识符名称和圆括号(),然后以冒号 : 结尾(第一行也叫函数头) 圆括号中放入参数名(形参),如果没有,可以留空 函数头的下一行,缩进4个空格,开始写函数体 函数体中可以有 return [表达式] 语句,返回一个值给调用者,如果没有return语句,默认返回 None 一个自定义函数实例: # 打印两次传入的变量的值 # 此函数没有return语句,返回None给调用者 def print_twice(name): #函数头 形参:name print('你好', name) #函数体 print('你好', name) 定义一个函数会创建一个函数对象(function object),其类型是funtion: print(print_twice) print(type(print_twice)) #输出结果: <function print_twice at 0x10217df28> <class 'function'> 函数调用: 调用方式,函数名(),如果函数有参数,将实际参数(实参