Python变量的理解

  • Python属于动态数据类型语言,类型是在运行过程中自动决定的,不需要通过代码申明,根据所赋值来决定其数据类型。
  • 其中,Python变量的命名遵循标识符(类似C)命名规则。
  • python 数据类型: 数字型和非数字型
    • 数字型:整形(int)、浮点型(float)、布尔型(bool)、复数型(complex)
    • 非数字型: 字符串、列表、元组、字典
数据赋值
  1. 简单赋值: x=2
  2. 序列赋值:等号左侧是元组、列表表示的多个变量名,右侧是元组、列表或字符串表示的值。例如:
  3. 使用省略圆括号的元组赋值

    1
    2
    3
    a,b=1,2
    print('hahha %d %d' %(a,b))
    >>>hahha 1 2
  4. 使用元组赋值
    (a,b)=1,2

  5. 使用列表赋值
    [a,b]=[30,'abc']
  6. 用字符串赋值
    此时python会将字符串分解为单个字符,依次赋值给每个变量【变量个数必须和字符个数相等,否则报错】
    (a,b,c)='abc'
  7. 在变量名前使用*,为创建列表对象引用
    此时,不带星号的变量匹配一个值,剩余的作为列表对象。例如:

    1
    2
    3
    4
    5
    6
    x,*y='abc'
    print(x,y);
    >>>a ['b', 'c']
    *y,x='a'
    print(x,y);
    a []
  8. 多目标赋值:指用多个连续的等号为变量赋值: a=b=c=10

    • Tips: 使用type()函数可以查看一个变量的类型
    • 在python3中没有了long数据类型,只有int
  9. 变量的格式化输出

    • %s 字符串
    • %d 有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方用0补齐
    • %f 浮点数,%.02f 表示小数点后面只显示两位
    • %% 输出%
    • 以下几种常见输出格式:
      • print(‘my name is %s’ %name)
      • print(‘my name is %s , this is %s’ %(my_name,others))
  10. 标识符与关键字

    • 标识符:由字母数字和下划线组成,首字母不能是数字。
    • 关键字:内置标识符,具有特殊的功能和定义,标识符不能和关键字重命。
    • 以下命令可以查看python中的关键字:
      1
      2
      3
      4
      5
      6
         import keyword
      print(keyword.kwlist)
      >>>
      ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def',
      'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda',
        'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
  11. 变量的引用

    • 变量和数据都是保存在内存中的,Python中函数的参数传递以及返回值都是靠引用传递的
    • 在Python中,变量和数据是分开存储的,数据保存在内存中的一个位置,变量中保存数据的内存地址
    • 变量中记录数据的地址就叫做 引用,当再次给变量赋值时,实际上是修改了数据的引用
    • 使用id()函数可以查看数据的内存地址
    • 调用函数传递实参:调用函数时,本质上是传递的是实参保存数据的引用,而不是实参保存的数据
    • 函数返回值传递引用: 返回的是数据的引用,而不是数据本身
  12. 可变类型和不可变类型

    • 不可变类型:内存中的数据不允许被修改 – 数字类型、字符串、元组
    • 可变类型:内存中的数据可以被修改 – 列表、字典
    • 字典的key不能是可变类型,值可以是任意类型的数据。
  13. hash函数

    • python中的hash(o)函数接收一个不可变的数据作为参数,返回结果是一个整数
    • 哈希是一种算法,其作用就是提取数据的特征码(指纹),相同的内容得到相同的结果。
    • 在Python中,设置字典的键值对时,会首先对key进行hash,决定如何在内存中保存字典的数据,以方便后续对字典的操作
  14. 局部变量和全局变量
    • 局部变量是在函数内部定义的变量,只能在函数内部使用,函数执行结束,局部变量会被系统回收
    • 全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量
    • 局部变量的生命周期:从创建到被系统回收
      • 全局变量的使用:在函数内部,可以通过全局变量的引用获取对应的数据,但是在函数内部不允许直接修改全局变量(可变数据类型除外)的引用而是新创建局部变量
      • 在函数内部修改全局变量的值:用 global 声明与一下变量即可,这句只负责声明不能带赋值
      • 全局变量定义的位置:在开发时,应该把模块中的所有全局变量定义在所有函数的上方