03_python的数据类型和变量的定义及使用

1.数据类型按数值非数值分类

(1)python的数据类型可以分为 数字型非数字型

  • 数字型

    • 整型 (int)
    • 浮点型(float
    • 布尔型(bool
    • 复数型 (complex)(主要用于科学计算)
  • 非数字型

    • 字符串
    • 列表
    • 元组
    • 字典

(2)不同类型变量之间的运算问题:

  • 数字型变量之间可以直接计算
  • 字符串变量之间使用 + 拼接字符串
  • 字符串变量可以和 整数 使用 * 重复拼接相同的字符串
  • 数字型变量字符串之间不能进行其他计算

提示:在 Python 2.x 中,整数根据保存数值的长度还分为: int(整数) long(长整数)

2.按传递类型分类

(1)python语言参数传递类型

java中参数的传递是按值传递的。但是在python中,函数参数的传递是按引用传递的。因为python是弱类型的编程语言,定义变量不需要指定类型。因此,实际上python变量全部是指针,因为变量是指针,所以所有的变量无类型限制,可以指向任意对象。指针的传递即是引用传递
在java中数据类型分为基本数据类型引用数据类型。但是在python中所有的数据都是引用数据类型。但是引用数据类型又区部分为可变数据类型不可变数据类型

(2)python中的不可变数据类型

不可变数据类型中的不可变实际上指的是同一个数据,其地址不可变。当改变一个不可变数据类型的变量的值时,实际上python解释器重新创建了一个对象(产生一个新的引用),为其赋了新值。
这种不可变数据类型在进行函数参数传递时类似于java语言中的基本数据类型。

a=5 
b=5
b=6
b=7

例如上述代码(int型为不可变数据类型):

  • 执行第一、第二行代码后,实际上a和b指向的是同一块内存例如0x0000。这个时候,这块内存被两个变量引用。
  • 当执行第三行代码后,0x0000这块内存处更新为被一个变量引用,并且内存中又重新开辟了一块内存,用来存储6,假设这块内存的地址为0x0008。此时0x0008和0x0000都被一个变量引用。
  • 当执行第四行代码后,python解释器又开辟了一块内存,假设为0x000f,而由于0x0008这块内存已经没有变量引用它,它便会被系统回收掉。

(2)python中的可变数据类型

可变数据类型指的是,两个变量引用同一块内存,当其中一个变量执行改变内存中的数据的话,两个变量会同时更新数据,并不会开辟一块新内存。
这种可变数据类型在进行函数参数传递时类似于java中的按引用数据类型。

(3)python中的可变数据类型与不可变数据类型

  • 不可变类型

    • 数字类型 int, bool, float, complex, long(2.x)
    • 字符串 str
    • 元组 tuple
  • 可变类型

    • 列表 list
    • 字典 dict(字典key的值只能是不可变数据类型)

可变数据类型的数据是通过方法改变的。

3.python的局部变量与全局变量

(1)局部变量与全局变量概述

  • 局部变量 是在函数内部定义的变量,只能在函数内部使用。函数执行结束后,局部变量的内存就会被回收。
  • 局部变量在函数执行时被创建,在函数执行完毕后被回收。期间便是局部变量的生命周期。

(2)局部变量定义的位置与生命周期

(3)全局变量定义的位置与生命周期

  • 全局变量 是在函数外部定义的变量,所有函数内部都可以使用这个变量,全局变量一般定义在所有函数的上部(import下面)。
  • 不允许使用赋值语句直接修改全局变量的值(修改全局变量的引用)。
  • 如果想要在函数内部修改全局变量的值,可以做global声明后再修改。

(4))全局变量的命名

  • 一般定义全局变量时需要加前缀,例如:g_变量名或者gl_变量名。

4.python中变量的命名

  • python 标识符区分大小写
  • python 可以采用的变量命名方式:
    • 下划线法
    • 小驼峰法
    • 大驼峰法

5.python中变量的定义与使用

  • 定义:python是弱类型编程语言,它在定义变量时不需要指定数据类型。解释器会根据赋值运算符右边的数值进行自动识别数据类型。
  • 使用:在 Python 中,每个变量在使用前都必须赋值,变量 赋值以后该变量才会被创建

注意:使用交互式和解释器形式定义和使用变量上有所区别。

posted @ 2019-09-21 22:05  江南又一春  阅读(1328)  评论(0编辑  收藏  举报