python基础02——变量与基本数据类型
分享学习思路:
1、xxx是什么?
敲门:提取知识点名词中的关键字来加以解释
2、为什么要有它?
大前提:
python中语言中出现的所有的语法都是为了让计算机能够具备人的某一功能/像人一样去做xxx
3、如何使用xxx?
变量与基本数据类型(全为重点)
变量
一、什么是变量?
变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等
二、为什么要有变量?
为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
详细地说:
程序执行的本质就是一系列状态的变化
变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序
三、如何用变量?
1、变量基本使用
原则:先定义,后引用
name = 'lucky' # 定义-存
print(name) # 引用-取
age = 18
print(age)
2、内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
(1)引用计数增加
x = 10 # 10的引用计数为1
y = x # 10的引用计数为2
z = x # 10的引用计数为3
(2)引用计数减少 (del不是删除的意思是解绑的意思)
del x # 解除变量名x与值10的绑定关系,10的引用计数变为2
print(y)
del y # 10的引用计数变为1
print(z)
z = 12345 # # 10的引用计数变为0
print(z)
四、变量的三大组成部分
1、变量名是指向等号右侧值的内存地址的,用来访问等号右侧的值
2、赋值符号:将变量值的内存地址绑定给变量名
3、变量值:代表记录的事物的状态
五、变量名命名规范
原则:变量名的命名应该见名知意
变量名只能是 字母、数字或下划线的任意组合
1、变量名的第一个字符不能是数字
2、关键字不能声明为变量名,常用关键字如下
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from','global', 'if', 'import', 'in',
'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
ps:不要用拼音,不要用中文,在见名知意的前提下尽可能短
六、变量名命名风格
1、纯小写加下划线的方式(python中推荐此种命名方式)
age_of_lucky = 18
print(age_of_lucky)
2、驼峰体
AgeOfLucky = 18
print(AgeOfLucky)
七、变量值的三个特征
name='lucky'
# id:反映的是变量值的内存地址,内存地址不同id则不同
print(id(name))
# type:不同类型的值用来表示记录不同的状态
print(type(name))
# value:值本身
print(name)
八、is与==
is:比较左右两个值身份id是否相等
==:比较左右两个值他们的值是否相等
id不同,值有可能相同,即两块不同的内存空间里可以存相同的值
id相同,值一定相同,x is y成立,x == y也必然成立
九、小整数池[-5,256]
从python解释器启动那一刻开始,就会在内存中事先申请好一系列内存空间存放好常用的整数
十、常量
注意:python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念
AGE_OF_LUCKY = 18
# 小写字母全为大写代表常量,这只是一种约定、规范
print(AGE_OF_LUCKY)
基本数据类型
一、数字类型
1、整型int
作用:记录年龄、身份证号、个数等等
age = 18
print(type(age))
2、浮点型float
作用:记录薪资、身高、体重
salary = 3.3
height = 1.87
weight = 70.3
print(type(height))
3、数字类型的其他使用
level = 1
level=level + 1
print(level)
print(10 *3)
# int与float之间可以相加
print(10 + 3.3)
age = 19
print(age > 18)
二、字符串类型str
作用:记录描述性质的状态,名字、一段话
定义:用引号('',"",''' ''',""" """,)包含的一串字符
例子:
x=18
print(type(x))
x='18' # 由数字组成的字符串,是字符串类型,不是int类型
print(type(x))
'name'='lucky' #语法错误,等号左边是变量名,变量名的命名不能有引号
xxx代表访问变量名字
'xxx' 代表的是值
其他使用:
# 字符串的嵌套:外层用单引号,内存应该用双引号,反之亦然
print("my name is 'lucky'")
# 字符串之间可以相加,但仅限于str与str之间进行,
# 代表字符串的拼接,不推荐使用,因为str之间的相加效率极低
三、列表类型
作用:按位置记录多个值(同一个人的多个爱好、同一个班级的所有学校姓名、同一个人12个月的薪资),并且可以按照索引
取指定位置的值
定义:在[]内用逗号分隔开多个任意类型的值,一个值称之为一个元素
l = [10, 3.1, 'aaa', ['bbb', 'ccc'], 'ddd']
print(l) #[10, 3.1, 'aaa', ['bbb', 'ccc'], 'ddd']
print(l[1]) #3.1
print(l[2]) #aaa
print(l[3][1]) #ccc
其他的用途:
students_info=[
['tony',18,['jack',]],
['jason',18,['play','sleep']]
]
# 取出第一个学生的第一个爱好
print(students_info[0][2][0])
# 索引反映的是顺序、位置,对值没有描述性的功能
info=['lucky',18,'female',19]
print(type(info))
print(info[0])
print(info[1])
print(info[2])
四、字典
字典类型:key对应值,其中key通常为字符串类型,所以key对值可以有描述性的功能
作用:用来存多个值,每个值都有唯一一个key与其对应,key对值有描述性功能
定义:在{}内用逗号分开各多个key:value
d={'a':1,'b':2}
print(type(d))
print(d['a'])
info={
"name":'egon',
"age":18,
"gender":'male',
"salary":19
}
print(info["salary"])
# 其他用途:
students_info=[
第1个信息,
第2个信息,
第3个信息,
]
students_info=[
{"name":'egon1','age1':19,'gender':'male'},
{"name":'egon2','age1':19,'gender':'male'},
{"name":'egon3','age1':19,'gender':'male'},
]
print(students_info[1]['gender'])
五、布尔bool
作用:用来记录真假这两种状态
定义:
is_ok = True
is_ok = False
print(type(is_ok))
x=1
y=0
students=[
{'name':'egon','gender':'male'},
{'name':'alex','gender':'female'},
]
students=[
{'name':'egon','gender':True},
{'name':'alex','gender':False},
]
students=[
{'name':'egon','gender':1},
{'name':'alex','gender':0},
]
其他使用:
# 通常用来当作判断的条件,我们将在if判断中用到它
补充:
list与dict:
相同点:都能存多个值,称之为容器类型
不同点:list是用索引对应值,索引反映的是位置/顺序
dict是用key对应值,其中key通常为字符串类型,而str类型具有描述性功能
key对值可以有描述性功能
举例:
msg="egon 10"
l=['egon',10]
info={'name':'egon','age':10}
info['name']
info={0:'egon',1:10}
总结:
1、选取的类型是否可以明确标识事物的状态
2、存不是目的,存的目的是为了日后取出来用,并且方便的用
3、把自己想象成一台计算机,如果我是计算机,我会如何以何种形式把事物的状态记到脑子里然后再去python中找相应的数据
类型来让计算机像自己一样去记下事物的状态