1- 变量及基本数据类型

1、变量的基本概念

1.1 什么是变量?

​ 变量就是可以变化的量,量指的是事物的状态,比如人的年龄,游戏角色等级,金钱等

1.2 为什么要有变量?

​ (1)为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以改变的
​ (2)也就是说程序的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要一种机制能够反映这种变化状态


2、如何用变量

2.1 变量的基本使用(先定义,后引用)

name = "Hello" 	  # 定义-->存
print(name) 	  # 引用-->取

2.2 内存管理:垃圾回收机制

# 1、垃圾:当一个值没有被任何变量名所绑定,该值就无法访问,称之为垃圾
# 2、引用计数增加
x = 10 		# 10的引用计数为1
y = x		# 10的引用计数为2
z = x		# 10的引用计数为3
# 3、引用计数减少
del x			# 解除变量名x与值10的绑定关系,10的引用计数变为2
del y			# 解除变量名y与值10的绑定关系,10的引用计数变为1
print(x,y)		# 此时已经无法打印出x,y的值
z = 123			# 此时z被赋予新的值,解除原来和10的绑定关系,绑定新的123这个值,所以10的引用计数为0
print(z)

2.3 变量三大组成部分

1、变量名:指向等号右侧值的内存地址,用来访问等号右侧的值
​ (1)命名规则:只能是字母、数字、下划线的任意组合;第一个字符不能是数字;不能用关键字当作变量名
​ (2)命名原则:见名知意;不要用拼音;不要用中文
​ (3)命名风格:纯小写加下划线(推荐使用);驼峰体

2、赋值符号:将值的内存地址绑定给变量名

3、变量值:代表记录的事物状态
​ (1)id:反映的是变量值的内存地址,内存地址不同则id不同
​ (2)type:不同类型的值用来表示记录不同的状态
​ (3)value:值本身

2.4 is与==

​ 1、is:比较左右两个变量的id是否相等(id相等,值一定相等)(x is y成立,则x == y也一定成立)
​ 2、==:比较左右两个变量的值是否相等(值相等,id不一定相等)
​ ps:“数值型和字符型is为True,tuple,list,dict或set型时,为False“

2.5 小整数池:

​ Python解释器在启动时就已经为常用的整数[-5,256]申请了内存地址,当变量的值为这些数时,id返回的地址也一样,但是Pycharm中会扩大这个池,只是为了开发效率,所以要以Python自带的解释器为准


3、常量

1、常量就是不变的值
2、Python的语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念
3、Python有一种约定,字母全部为大写时代表常量
rpj_year = 19		# 变量
RPJ_YAER = 19		# 常量
# 只是一种约定,给代码开发人员去看的


4、基本数据类型

1、数字类型(Python中没有这个类型,只是把整型和浮点型归结到一起而起的名字)

(1)整型int	
(2)浮点型float

2、字符串类型

(1)使用 ''(一对单引号)	 ""(一对双引号) ''''''(三对单引号)""""""(三对双引号)来定义字符串
(2)字符串的嵌套:外层用单引号,内层用双引号,反之亦然;也可以使用转义字符
print("My name is 'RongPengju'")
print('My name is \'RongPengju\'')

3、列表类型

(1)在[]内用逗号分隔开多个任意类型的值,一个值称为一个元素

l = ['1','str','Fuck','88',['66','string'],'Amazing']

(2)按照位置索引,来找到元素的

print(l[0])			# '1'
print([l[-1])		# 'Amazing'
print(l[4][1])		# '66'

4、字典类型

(1)在{}内用逗号分开各个key:value;key通常为字符串类型,value可以为任意类型,key必须是不可变类型

people = {'name':'Jeff','age':18,'gender':'men'}
print(people['age'])	# 找到people这个字典中age这个key所对应的value

(2)列表+字典的嵌套使用

students_informatio=[
    {'Name':'Martin','Age':18,'Gender':'men'}
    {'Name':'Alice','Age':26,'Gender':'women'}
    {'Name':'Jhon','Age':35.'Gender':'men'}
]
print(studens_information[1]['Gender'])  # 找到1索引中,‘Gender’这个key对应的value

5、布尔类型

(1)显式布尔值:条件可以是比较运算符,可以是True、False

age = 18
print(age > 10)
is_student = True
print(is_student)

(2)隐式布尔值:

所有的值都可以当成条件去用0、None、空(空字符串,空列表,空字典)代表的布尔值为False,其余的都是True

if 10:
print("Hello,World")
posted @ 2020-12-14 23:02  梵音sir  阅读(254)  评论(0)    收藏  举报