Python 基础系列 | 第二讲 变量、常量、数据类型

1.什么是变量(Variable)?

1.1 定义变量、变量的初始化

name = "zhangsan"
age = 25
height = 1.75  # 单位为米

1.2 变量的本质

在这里插入图片描述

1.3 变量的赋值

name1 = "zhangsan"
name1 = "lisi"
name2 = name1

1.4 变量名的命名规则(标识符的命名规则)

  1. 变量名只能是 字母、数字或下划线的任意组合
  2. 变量名的第一个字符不能是数字
  3. 不能使用关键字作为变量名

1.5 变量名的命名规范

  1. 下划线命名法
name_of_student = "zhangsan"
  1. 驼峰命名法
nameOfStudent = "zhangsan"

2.什么是常量(Constant)?

  • 常量是与变量相对应的一个概念,顾名思义,就是值不可改变的量;
  • 进一步说,就是当我们定义了一个变量的时候,并对其进行初始化后,就不能再对该变量赋值;(从这个角度讲,常量是变量的特例);
  • 与C/C++ 不同,Python 并没有提供定义常量的语法,这意味着在Python中,常量首次赋值后, 无法阻止其他代码对其进行修改或删除;
  • 但是,从编程规范上,常量的命名规范为大写字母和下划线组成;
TIMEOUT = 100

3. 数据类型

3.1 什么是数据类型?

  • 从概念上将,世界纷繁复杂,我们能够接触到各种各样的数据,通常我们会将具有不同特点的数据归纳分类,比如整数、小数,文本等。那么对应到计算机中,我们必须提供某种方式去表示不同类型的数据,这就是数据类型。
  • 数据类型的本质是限制了限定了变量的取值可能性。我们知道,变量本质是内存中一段存储空间,数据类型的作用是修饰变量(类别定语)。

3.2 数据类型的作用是什么?(数据类型的本质)

  • 限定变量的取值范围: 如果一个变量被修饰某种数据类型,那么该变量所对应的内存存储空间就只能存放某种数据类型的数据(对于静态类型语言/强类型语言)。
	整型 age = 25  # 正确,age所指向的内存空间只能存放整型
	整型 age = "hello"  # 错误,age所指向的内存空间只能存放整型,不能存放字符串
  • 限定变量的操作范围: 如果一个变量被修饰某种数据类型,那么只能对该变量做相应数据类型所允许的操作。比如,整数允许做加法操作,不允许做拼接操作。

3.3 数据类型分类(从包含数据元素个数的角度)

3.3.1 基本数据类型

  1. 整型(int)
  • 在32位系统上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647
  • 在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807
  1. 长整型(long)
  2. 浮点型(float)
  3. 复数型 (complex)
  • 复数由实数部分和虚数部分组成,一般形式为a+bj,其中的a是复数的实数部分,b是复数的虚数部分,这里的a和b都是实数。

3.3.2 复合数据类型

  1. 字符串看(str)
  2. 列表(list, 对比数组)
  3. 元组 (tuple)
  4. 字典 (dict)
  5. 自定义数据类型(通过类定义自己的数据类型)

3.4 数据类型的分类(从数据类型提供者的角度)

  • 内置数据类型(Python 标准库所提供)
  • 第三方数据类型
  • 自定义数据类型

4. Python 中一切皆是对象

  • 官方描述:对象是对客观事物的抽象,类是对对象的抽象。
    在这里插入图片描述
  • 查看对象的内存地址,使用id() 函数
name = "zhangsan"
print(id(name))
  • 查看对象的类型,使用 type() 函数
name = "zhangsan"
print(type(name))
  • 查看数据类型的所允许的操作,使用dir() 函数
print(dir(int))
a = 3
print(dir(a))
  • 交互式解释器输出如下:
>>> dir(int)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__',   
'__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__',   
'__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__',   
'__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__int__',   
'__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__',   
'__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__',   
'__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__',   
'__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__',   
'__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__',     
'__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__',  
 '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate',   
 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
>>>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页