Python基础-变量作用域】的更多相关文章

1.函数作用域介绍 函数作用域 Python中函数作用域分为4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的. G:global,全局变量,即模块级别定义的变量,在模块开始.函数外定义的变量. B:built-in,系统固定模块里的变量,比如int,bytearray等. 搜索变量的优先级顺序依次是:局部作用域 > 外层作用域 > 当前模块中全局作用域 > python内置作…
在Python中,对象是独立的,不同作用域中的不同名字都可以被绑定在同一个对象上,当然对这个对象的修改会影响所有的引用.赋值操作就是名字和对象的绑定或重绑定.这和C++中的引用是一样的. 1,基础概念 1.1 命名空间(namespace) A namespace is a mapping from names to objects 命名空间是名字和对象的映射.也就是可以把一个namespace理解为一个字典,实际上很多当前的Python实现namespace就是用的字典.各个命名空间是独立的,…
变量是只不过保留的内存位置用来存储值.这意味着,当创建一个变量,那么它在内存中保留一些空间. 根据一个变量的数据类型,解释器分配内存,并决定如何可以被存储在所保留的内存中.因此,通过分配不同的数据类型的变量,你可以存储整数,小数或字符在这些变量中. 变量的赋值: a = ' b = 'abc' c = [] d = 123 变量类型: 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 str1 = 'python' str2 = "py…
偶然掉进了一个坑里.仔细分析了下原因.原来是变量作用域的问题.简单抽象如下: id=1 #许多行代码 [id for id in range(10)] #许多行代码 if id!=1: #做一些事情 pass else: #做另外一些事情 结果由于id在 [id for id in range(10)] 中受到了影响发生了变化,导致虫虫的产生. 索性探索了下变量作用域,结论如下: 1. 函数中的同名变量不会影响函数外的同名变量(若未加任何修饰--比如global) id=1 def test()…
python 数据类型 一,整数,可以出来任意大小的整数. 如 1, 100, -8080,0 等等. 二,浮点数,浮点数也可以被成为小数. 三,字符串,字符串是以'' 或"". 四,布尔值,布尔值和布尔代数的表示完全一致,一个布尔值只有 True ,False. 五,空值,空值是Python 里一个特殊的值,用None 表示,None 不能理解为0, 因为0 是有意义的,而不是None是一个特殊的空值.   print 语句: print 'hello,world'   python…
一.计算机基础 1.CPU 相当于人体的大脑,用于计算处理数据. 2.内存  用于存储数据,CPU从内存调用数据处理计算,运算速度很快. PS:问:既然在内存里的数据CPU运算速度快,为什么计算机不全部用内存呢? 答:1.内存成本很高:2.计算机断电时,在内存里的数据会即刻消失:因此计算机不会全部使用内存存储数据. 3.硬盘 用于储存应该长久保存的数据和文件等.硬盘分两种,固态硬盘和机械硬盘.固态硬盘(Solid State Drive)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(…
函数 函数对象 函数是第一类对象 函数名可以被引用 函数名可以当作参数使用 函数名可以当作返回值使用 函数名可以当作容器类型的元素 函数嵌套 嵌套调用:在函数内部中调用函数 嵌套定义:在函数内部中定义函数 名称空间 存放变量名称的空间,分为内置名称空间.全局名称空间.局部名称空间 内置名称空间:python中,提前定义的名字,存在内置名称空间中.例如:关键字.内置方法 全局名称空间:存放于文件级别的名字,就是全局名称空间 if / while / for 内部定义的名字,在执行之后都存放于全局名…
1.局部变量 局部变量也叫auto自动变量(auto可写可不写),一般情况下代码块{}内部定义的变量都是自动变量,它有如下特点: 只有当执行到这句语句时,系统才为这个变量分配空间 在一个函数内定义,只在函数范围内有效 随着函数调用的结束或复合语句的结束局部变量的声明声明周期也结束 复合语句中定义,只在复合语句中有效 如果没有赋初值,内容为随机 不同的{}中,变量的名字可以一样,可以把{}比作房子,不同的房子中可以有同名的小伙伴 #include <stdio.h> void test() {…
------  python注释 注释的作用:代码提示,运行时忽略不必要的代码 注释的三种方式: 1.“#” 单行注释 2.多行注释   三个单引号  和三个双引号都可以 注释的快捷键 Ctrl + / ------  在使用pyCharm 的时候一定要 顶格 ----  python 变量 变量: 用于存储数据 创建变量并赋值 # python 中你赋予变量什么值就是什么类型 x = 1 x = 1.232 x = '帅' x = "哈哈" x,y = 2,'cc' print(x)…
一.注释 注释就是对代码的解释和说明.目的是为了让别人和自己很容易看懂.为了让别人一看就知道这段代码是做什么用的.正确的程序注释一般包括序言性注释和功能性注释.序言性注释的主要内容包括模块的接口.数据的描述和模块的功能.模块的功能性注释的主要内容包括程序段的功能.语句的功能和数据的状态.–来自百度百科 注释的分类 1.单行注释 以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用 #我是注释,可以在这里写一下功能说明之类 print("我上面一行是对我的注释")…
初识变量 1.变量命名规则: a.字母 b.数字(不能开头) c.下划线 ps.硬性规定,命名必须是字母,数字,下划线,且不能以数字开头. 软性规则,以下划线分割 2.实例: a.写法: age_of_oldboy = 60 b.命名潜规则:age_of_oldboy 普通变量 Age_of_oldboy 首字母大写,一般为类 AGE_OF_OLDBOY 一般为常量写法 python中的变量不需要指明类型,系统会自动识别 可以使用type(变量的名字),来查看变量的类型 输出函数 输出格式: n…
变量与运算符 变量 定义一个变量 a = [1,2,3,4,5,6] print(a) # [1,2,3,4,5,6] 变量命名要求: 首字母不能是数字 只能包含字符数字下划线 不能是关键字 type 不是关键字,可以做变量名,但是不建议使用. 变量名区分大小写. 关于列表 a = 1 b = a a = 3 print(b) # 1 a = [1,2,3,4,5] b = a a[0] = '1' print(a) # ['1',2,3,4,5] print(b) # ['1',2,3,4,5…
 一.python初识 python是一门 解释型弱类型编程语言. 特点: 简单.明确.优雅 二.python的解释器 CPython. 官方提供的. 内部使用c语言来实现 PyPy. 一次性把我们的代码解释成字节码文件. 可以直接去运行. 三.第一个python程序 print(任何内容) 四.变量 程序运行过程中产生的中间值. 暂时保存在内存中. 供后面的程序使用 命名规则: 1. 使用字母, 数字, 下划线组成 2. 不能数字开头, 更不能是纯数字 3. 不能用python的关键字 4.…
1.什么是变量? 其实就是给数据起个名字而已.在python中你不想要关心数据类型,因为在你赋值的时候它已经自己帮你识别了 2.创建变量时候会在内存中开辟一个空间,具体的细节不需要咱们关心,解释器会分配指定内存,并决定什么数据可以被存储在内存中 3.python中的变量不需要声明.每个变量在使用前都需要赋值,变量赋值以后该变量才会被创建 4.变量的命名:字母.数字.下划线; 数字不能开头;不可以使用关键字 5.变量的分类: 可变:列表\字典 不可变:数字\字符串\元组(数组) counter =…
变量 变量名由字母.数字(不能为首字符).下划线组成,不能使用关键字 以下关键字不能声明为变量名 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'pri…
变量赋值 1. 把任意类型的变量[名称]赋值给新的变量,总是增加对象引用,而不是创建新的对象 2. 对于list.dict可变类型,操作的都是同一个对象 3. 使用del删除的是该对象的一个引用,只有当引用减为0对象才被回收 创建相同值的变量 1. 把相同值赋值给不同变量,list.tuple.dict.set都会创建新的对象 2. string类型不创建新对象 3. number类型和系统配置有关,值较小时候不会创建新对象…
一.变量的定义 字母.数字.下划线组成,不能以数字开头,同时区分大小写 二.输出 print() print(,) 输出空格 input() 读取键盘输入…
def _private_1(name): return 'Hello, %s' % name def _private_2(name): return 'Hi, %s' % name def greeting(name): if len(name) > 3: return _private_1(name) else: return _private_2(name) 类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用. 我们在模块里公开greeting()函…
import time global mark,sum def gaosi(Q): global sum,mark # 在 使用的时候防止隔离 也要声明一下 这个是全局变量 , 引用外面的值 sum+=Q Q-=1 if(Q==0 or mark==1): mark=1 else: gaosi(Q) return sum while True: a=int(input())# 真是 让人蛋疼 , 还要转换数据类型 . mark=sum=0 a=gaosi(a) print (a) time.sl…
使用 global强制声明为全局变量…
python中变量作用域包括: L (Local) 局部作用域,函数内部声明但没有使用global的变量E (Enclosing) 闭包函数外的函数中,def或者lambda的本地作用域G (Global) 全局作用域,函数中使用global声明的变量或在模块层声明的变量B (Built-in) 内建作用域,python的内置类和函数等 当在函数中使用未认证的变量名时,将依照L->E->G->B的顺序搜索. Python除了def/class/lambda 外,其他如: if/elif/…
先看一个问题: 下面代码输出的结果是0,换句话说,这个fucn2虽然已经用global声明了variable1,但还是没有改变变量的值 def func1(): variable1=0 def func2(): global variable1 variable1=2 func2() print(variable1) if __name__=="__main__": func1() #下面这段代码也是输出0 variable1=0 def func1(): variable1=0 de…
最近看 scala ,看到了它的作用域,特此回顾一下python的变量作用域问题. A = 10 B = 100 print A #10 print globals() #{'A': 10, 'B': 100, '__builtins__': <module '__builtin__' (built-in)>, '__file__': 'E:/PycharmProjects/untitled/test1.py', '__package__': None, '__name__': '__main…
一.博客链接 1.基础操作 python基础,变量,if语句 while循环/格式化输出/ 逻辑运算/ 编码 /单位转换 列表的操作,元组,range; enumerate dict字典;dict的操作 is 与 == 的区别;小数据池; 编码与解码 str中的join方法; set集合;深浅拷贝 基础数据类型及其相关操作总结 文件操作 更新中>>> 2.函数.三大器和模块 函数基础 函数的进阶 闭包函数; 迭代器 生成器;三元表达式, 推导式(表达式) 装饰器 内置函数 匿名函数,递归…
函数基础 1. 速查笔记 #-- 函数相关的语句和表达式 myfunc('spam') # 函数调用 def myfunc(): # 函数定义 return None # 函数返回值 global a # 全局变量 nonlocal x # 在函数或其他作用域中使用外层(非全局)变量 yield x # 生成器函数返回 lambda # 匿名函数 2. 函数的好处 代码复用.保持代码一致性.可扩展性 函数的参数 1. 速查笔记 #-- 函数参数,不可变参数通过“值”传递,可变参数通过“引用”传递…
1.函数的定义: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数: 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串—用于…
变量作用域标识符的作用域是定义为其声明的可应用范围,或者即是我们所说的变量可见性.也就是,我们可以在程序的那个部分去访问一个制定的标识符.全局变量与局部变量定义在函数内的变量有局部作用域,在一个模块中最高级别的变量有全局作用域.全局变量的一个特征是除非被删除掉,否则它们将存活到脚本运行结束,且对于所有的函数,他们的值都是可以被访问的,然而局部变量,就像它们存放的栈,暂时地存在,仅仅只依赖于定义它们的函数现阶段是否处于活动.当一个函数调用出现时,其局部变量就进入声明它们的作用域.在那一刻,一个新的…
一:变量作用域 变量可以是局部域或者全局域.定义在函数内的变量有局部作用域,在一个模块中最高级别的变量有全局作用域. 全局变量的一个特征是除非被删除掉,否则它们的存活到脚本运行结束,且对于所有的函数,他们的值都是可以被访问的.然而局部变量,仅仅只依赖于定义它们的函数现阶段是否处于活动. 在Python中,变量查找遵循LGB原则,即优先在局部作用域(local scope)中对变量进行查找,失败则在全局作用域(globalscope)中进行查找,最后尝试再内建作用域(build-inscope)内…
变量作用域规则 在示例 7-4 中,我们定义并测试了一个函数,它读取两个变量的值:一个是局部变量 a,是函数的参数:另一个是变量 b,这个函数没有定义它. >>> def f1(a): ... print(a) ... print(b) ... >>> f1(3) 3 Traceback (most recent call last): File "<stdin>", line 1, in <module> File &quo…
Python基础-类变量和实例变量 写在前面 如非特别说明,下文均基于Python3 大纲: 1. 类变量和实例变量 在Python Tutorial中对于类变量和实例变量是这样描述的: Generally speaking, instance variables are for data unique to each instance and class variables are for attributes and methods shared by all instances of th…