## 变量
  - 指向唯一内存地址的一个名字
  - 目的是为了更方便地引用内存中的值
  - 可以使用id(变量)函数来查看变量的唯一id值,若两者id值相同,则表示两个变量指向同一地址,两个变量的值完全相同

## 变量的命名  
  - 变量名只能包含以下字符:
    - 小写字母(a~z)
    - 大写字母(A~Z)
    - 数字(0~9)
    - 下划线(_)
  - 变量名不允许以数字开头
  - 以下划线开头的名字有特殊的含义
  - 变量名不能使用系统关键字

## 变量的赋值
  - 使用 = 为变量赋值
  - 变量声明的同时必须进行赋值  
  - 示例:
    a = 10 # 单一变量赋值
    a, b, c = 10, 20, 30 # 多变量同时赋值
    

    a = 10
    b = 20
    a, b = b, a # 变量值互换,与Java、C等语言相比不需要中间值
    # -> 结果:a的值为20, b的值为10

## 变量内存指向过程及基本数据类型赋值和容器、对象赋值的区别
  - 基本数据类型赋值

  - 容器及对象赋值

* 在python中,strings, tuples, 和numbers是不可更改的对象(传值),而 list, dict, set 等则是可以修改的对象(传址)。

## 变量作用域

  - 变量有作用域范围
  - 分类:按作用域分类
    - 全局(global):在函数外部定义的变量
      - 在整个全局范围都有效
      - 全局变量可以在局部使用
    - 局部(local):在函数内部定义的变量
      - 局部范围(变量定义所在的函数内部)可以使用
      - 在函数外部无法使用
  - LEGB原则
    - L(Local)局部作用域
    - E(Enclosing function locale)外部嵌套函数作用域
    - G(Global module)函数定义所在的模块作用域
    - B(Buildin)python内置模块的作用域
  - 提升局部变量为全局变量
    - 在变量定义时使用global关键字
      def fun():
        global a # 先定义全局变量
        a = 1 # 后进行赋值

      fun()
      print(a)   # -> 1

  - globals, locals函数
    - 可以通过这两个函数显示出全局变量和局部变量

Python变量、赋值及作用域的更多相关文章

  1. Python变量赋值的秘密

    在Python中,我们令一个变量等于另外一个变量时,并不是把值传递给它,而是直接把指向的地址更改了.我们想要查看一个变量在内存中的地址,可以通过id(变量) 来查看.我们通过一个小例子来看看这个有趣的 ...

  2. Python 变量赋值

  3. Python 变量(赋值,数据类型,数据类型转换)

    一.python 变量赋值方式有三种: 1.直接赋值:age = 28 2.多个变量赋值 age, sex = 28, 1  #每个变量都必须要有个对应的值 3.特殊形式的赋值(链式赋值)  a = ...

  4. python变量的内存机制

    python变量的内存机制 作为一门简单易用的语言,且配备海量的库,python可谓是程序员手中的掌中宝,编程本身就是一种将人类思维转化为计算机思维的技术,如果不需要去追求极致的运行效率同时又不限制于 ...

  5. python 变量、列表、元组、字典

    python 变量.列表.元组.字典 1.python 变量赋值 2.ptython  列表 3.python 元组 4.python  字典 1.  Python变量赋值     1.1变量的命名规 ...

  6. Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...

  7. Python变量与基本数据类型

    Python变量与基本数据类型 前言 好了,从本章开始将正式进入Python的学习阶段.本章主要介绍的是Python变量与基本数据类型的认识,这些都是最基本的知识并且必须要牢靠掌握在心中. 注释 学习 ...

  8. Python变量作用域(一)

    在一个程序中使用变量名时,Python创建.改变或者查找变量名都是在所谓的命名空间中进行的.作用域指的就是命名空间. Python中的变量名在第一次赋值时已经创建,并且必须经过赋值后才能够使用.由于变 ...

  9. python——变量作用域及嵌套作用域

    ----------------------------------------------------------------------------- 前言-------------------- ...

随机推荐

  1. Discuz论坛UCenter无法登录问题修复方法完美解决无限刷新问题

    级20141225版本后,出现UC无法登录问题[完美]解决方法.自圣诞节发布 Discuz! X3.2 R20141225  小编手头多个站点也都在升级后出现了,后台登录[ UCenter]假死情况, ...

  2. 多个ModelForm组合成一个表单

    打个比方: 我将用户的基本信息 如用户名密码存在继承了Django auth认证组件中的 AbstractUser 类的模型中,并和第二个存了Details模型中,此模型继承UserInfo模型 继承 ...

  3. h5:WebSocket

    实时 Web 应用的窘境 Web 应用的信息交互过程通常是客户端通过浏览器发出一个请求,服务器端接收和审核完请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来,这种机制对于信息变化不是特 ...

  4. Window10 Bug记录

    1.两台新电脑刚安装: 妹子的电脑JDK配置后,重启后环境变量配置丢失,cmd里能输出,但eclipse启动不了,重新配置后正常. 我的电脑JDK配置,重启后环境变量在,但好像没加载,cmd输出与ec ...

  5. 测试驱动开发(TDD)及测试框架Mocha.js入门学习

    组里马上要转变开发模式,由传统的开发模式(Developer开发,QA测试),转变为尝试TDD(Test-driven development,测试驱动开发)的开发模型.由此将不存在QA的角色,或者仅 ...

  6. 夜色的 cocos2d-x 开发笔记 00

    第一次写博客,本人还是大二学生,纯新手,无论是文章的技术性,还是参考性,都不高,但却是根据我的经历,开发过的真实过程,对自己记载一些备忘的笔记,更希望也能帮到一些人. 本人用的win7 + vs201 ...

  7. selenium Element not found in the cache - perhaps the page has changed since it was looked up接解决

    selenium Element not found in the cache - perhaps the page has changed since it was looked up.这个问题爆出 ...

  8. AOP术语分析

    初看这么多术语,一下子都不好接受,慢慢来,很快就会搞懂. 通知.增强处理(Advice) 就是你想要的功能,也就是上说的安全.事物.日子等.你给先定义好,然后再想用的地方用一下.包含Aspect的一段 ...

  9. gitlab安装详解

    官方网站---https://www.gitlab.com.cn/downloads/ 1.选择操作系统 例如:CentOS6.CentOS7.Ubuntu12.04.Ubuntu14.04等,选择相 ...

  10. zendstudio 汉化

    http://archive.eclipse.org/technology/babel/index.php http://www.eclipse.org/babel/downloads.php 注册码 ...