变量、常量和基本数据类型 变量 变量的基本使用 常量 基本数据类型 总结
什么是变量?
变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等
为什么要有变量?
为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
详细地说:
程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态,以及状态的变化。
变量的基本使用
原则上变量先定义,后引用
变量的三大组成部分
变量名 =>是指向等号右侧值得内存地址,用来访问等号右侧的值
赋值符号:将变量值得内存地址绑定给变量名
变量值:记录事务的状态
变量名命名规范
原则:变量名的命名应该见名知意
由字母数字下划线组成,不能是数字开头,不能用关键字命名
ps:不要用拼音,不要用中文,见名知意的前提下尽量短
变量名命名风格
风格一:驼峰体
AgeOfTony = 56
NumberOfStudents = 80
风格二:纯小写下划线
age_of_tony = 56
number_of_students = 80
变量值的三个特征
id:反映的是变量值的内存地址,内存地址不同id则不同
type:不同类型的值用来表示记录不同的状态
value:值本身
is与==的区别
==:比较左右两个值他们的值是否相等
is:比较左右两个值身份id是否相等
小整数池(了解)
从python解释器启动那一刻开始,python就会在内存中事先申请好一系列内存空间存放好常用的整数可供使用,范围是[-5,256]
垃圾回收机制
垃圾:指的是变量值被绑定的变量名的个数为0,该变量值无法被访问到
引用计数:
引用计数增加
x = 10 # 10的引用计数为1
y = x # 10的引用计数为2
z = x # 10的引用计数为3
引用计数减少
del x # 解除变量名x与10的绑定关系, 10的引用计数变为2
print(y)
del y # 10的引用计数变为1
print(z)
z = 12345 # 10的引用计数变为0,此时10不能被任何变量名访问到,因此会被垃圾回收机制自动清理内存
print(z)
常量
什么是常量
常量指在程序运行过程中不会改变的量
为什么要有常量?
在程序运行过程中,有些值是固定的、不应该被改变,
怎么使用常量?
python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念
AGE_OF_ALEX=73 # 小写字母全为大写代表常量,这只是一种约定、规范
AGE_OF_ALEX=74
print(AGE_OF_ALEX)
基本数据类型
数字类型(int,float)
整型(int)
作用:记录年龄、身份证号、个数等等
定义:age = 18
浮点型(float)
作用:记录年龄、身份证号、个数等等
定义:height = 1.87 ,weight = 70.3
字符串类型
作用:记录描述性质的状态,名字、一段话
定义:用引号('',"",''' ''',""" """,)包含的一串字符
info = '''
这是一段注释,
哈哈哈
'''
外层用单引号,内层就应该用双引号
info = 'my name is "egon"'
print(info)
列表类型
作用:按位置记录多个值(同一个人的多个爱好、同一个班级的所有学校姓名、同一个人12个月的薪资),并且可以按照索引取指定位置的值
定义:在[]内用逗号分隔开多个任意类型的值,一个值称之为一个元素
本质上是索引对应值,索引从0开始,0代表第一个
l = [10, 3.1, 'aaa', ['bbb', 'ccc'], 'ddd']
ps:索引反映的是顺序、位置,对值没有描述性的功能
字典
作用:用来存多个值,每个值都有唯一一个key与其对应,key对值有描述性功能
定义:在{}内用逗号分开各多个key:value
本质上是key对应值,其中key通常为字符串类型,所以key对值可以有描述性的功能
info={
"name":'egon',
"age":18,
"gender":'male',
"salary":19}
布尔类型
作用:用于记录真假两种状态
定义:True/False
is_ok = True
print(10>3)
ps:通常用来当作判断的条件,我们将在if判断中用到它
总结
如何选择合适的类型来记录状态
1、选取的类型是否可以明确标识事物的状态
2、存不是目的,存的目的是为了日后取出来用,并且方便的用
3、把自己想象成一台计算机,如果我是计算机,
我会如何以何种形式把事物的状态记到脑子里
然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态