## 变量
  - 指向唯一内存地址的一个名字
  - 目的是为了更方便地引用内存中的值
  - 可以使用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函数
    - 可以通过这两个函数显示出全局变量和局部变量

最新文章

  1. 从ASP.NET 升级到ASP.NET5(RC1) - 翻译
  2. CSS 重设文章
  3. Activiti学习(一) 环境搭建
  4. 20135316王剑桥 linux第五周课实验笔记
  5. vs c++ 将string转换为double
  6. jQuery--each遍历使用方法
  7. HTML语义化标签(一)
  8. 如何使用WCF调试器WcfTestClient.exe
  9. Effective Java从零开始 - 就是爱Java
  10. .bash_profile与.bashrc和.profile的区分概念
  11. 控件编写:增强 TMEMO (一)(增加对WM_HSCROLL消息的处理)
  12. Android WiFi管理(WIFI_SERVICE)
  13. 极化SAR图像基础知识(1)
  14. 通过demo学python
  15. Python编码规范(PEP8)及奇技淫巧(不断更新)
  16. Python--day04(流程控制)
  17. 控制结构(11): Continuation passing style(CPS)
  18. CSS:与input相关的一些样式设置问题
  19. html 表格边线设置
  20. full gc频繁的分析及解决案例

热门文章

  1. net图片转格式
  2. java.lang.ArrayIndexOutOfBoundsException: 160
  3. Visual Studio 2017 安装失败,你们有这样的问题吗?怎么解决
  4. Hibernate课程 初探多对多映射1-1 多对多应用场景
  5. 一张图看懂offsetX, clientX, pageX, screenX的区别
  6. ASP.NET MVC 音乐商店 - 2.控制器
  7. 夜色的 cocos2d-x 开发笔记 00
  8. JavaScript平台Platypi悄然登场
  9. [Maven]Eclipse集成遇到的问题
  10. COGS 678. 双重回文数