04-python你得知道的语法基础--变量和基本数据类型
一.变量
1.定义:顾名思义可以变化的量。 你感觉我说的是废话!!!矮跟说了,我说的没有一句是废话。
2.作用:记录事物的状态,状态是可以变化的。
王者荣耀你玩过没,一局游戏刚开始等级是1,最后可以到15级,这就是状态的变化。啥?!你没玩过,那你快去给老马做个贡献。
实在不想玩的话,其实你的年龄也是一个变量,今年18岁,明年19岁,这也是状态的变化哦!除非你的年龄永远定格,三鞠躬。。。。
3.如何使用变量:
3.1 变量的基本使用:先定义后使用
本宫就在那,你不喊我的名字,我怎么知道你喊的是本宫!!!
1 name = 'amy' # 先定义,存 2 print(name) # 后使用,取
3.2 变量的三大组成部分:
变量名:用来指向等号右侧的内存地址,用来访问等号右侧的值。
注意:变量名必须绑定值否则会报错,但是值可以不绑定变量名,不会报错,但可能会被python解释器当成垃圾。。。。。
赋值符号:将变量值得内存地址绑定给变量名
值:代表记录的事物的状态
3.3 变量名的命名规则:
你爸妈给你起名字总不能随随便便叫什么123、@#¥吧,虽然秦桧是个人名,但我相信没几个爸妈会给孩子起这个名字,除非。。。你是充话费送的。
1.必须是字母、数字、下划线组成
2.数字不能开头
3.关键字不能声明为变量
4.不要使用拼音和汉字作为变量名,在见名知意的前提下尽可能简洁。
3.4变量名的命名风格
1.纯小写字母加下划线(python推荐使用的变量命名规则)
age_amy = 18
2.驼峰体,下划线去掉,全部首字母大写
AgeAmy = 18
3.5变量名的三个重要特征
1.id,反映的是变量的内存地址
id不同时,值可能相同,两个内存空间可以存相同的数据
id相同时,值一定相同
2.type:不同类型的值表示不同的状态
3.value:值本身
4.is与==
1.is:比较左右两个值得id是否相等,身份运算
2.==比较左右两个值是否相等
5.内存管理---垃圾回收机制
垃圾:当一个变量值被绑定的变量名个数为0时,该变量值无法访问,称之为内存中的垃圾
引用计数(简单版):一个变量值被变量名引用过的次数
引用计数增加:如上图
x = 10 # 引用计数为1
y = x # 引用计数为2
z = x # 引用计数为3
引用计数减少:
del x # 解除x和10的绑定关系,10的引用计数变成2
del y # 解除y和10的绑定关系,10的引用计数变成1
z = 20 # 对z进行重新赋值,10的引用计数变成0
注:这里的10只是举一个例子,10在小整数池中,不会被当做垃圾。。。。有特殊待遇
6.小整数池:一种内存优化机制
作用:python解释器在启动那一刻起,就在内存空间中开辟了一系列的内存空间,用来存放常用的整数-5-256,字符串也有类似的机制,存在这里的数据不会受垃圾回收机制的影响
注意注意注意:pycharm申请的内存空间大于python解释器,所以有些时候在解释器上执行的 is 是False,但是在pycharm上是True.以解释器的执行为准!!!!
7.常量:不变的量
python中并没有常量的概念,但在程序开发过程中会涉及到常量的概念。
常量名:约定俗成,所有字母为大写代表常量
比如:PIE=3.14....
再比如:矮跟卒于17:29:01,AGE=19.......,默哀三秒钟。。。
二、基本数据类型
1、数字类型
1.1 整型int
作用:记录年龄、个数。。。
定义:age = 18 没错,我就是18岁(^-^)V
print(type(age))
1.2 浮点型float
作用:记录身高、体重等
定义:salary = 1.8 没错,我就是这么有钱
print(type(salary))
1.3 数字类型的其他使用
玩游戏的等级:level = 1----->level = level +1
print(3*10)
int类型和float类型的数据可以直接相加
2、字符串类型
2.1.作用:记录描述性质的状态,比如名字
2.2定义:用引号(成对的单引号或者双引号或者三引号)包含的一串字符
注意注意注意,人生至理名言来了!!!此处必须用代码表示
1 info = ''' 2 天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃, 3 另一种人把最好的留到最后吃。 4 照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的; 5 第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。 6 不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。 7 ''' 8 print(type(info))
ladies and 乡亲们注意了!!!'name' = 'egon' 涉嫌违法,语法错误,变量名不能有引号!!!
2.3.其他应用
字符串的嵌套:外层使用单引号,内层应该使用双引号,反之也是。或者可以用\对字符串内的引号进行转义。
1 print("my name is 'egon'") 2 print('my name is \'egon\'')
3、列表类型:索引对应值,索引从0开始,0代表第一个
3.1作用:可以按照位置记录多个同种属性的值(所有人名字,十二个月薪资等。。。),并且可以按照索引取指定的值
3.2 定义:在[]内用,分隔开任意类型的值,一个值称之为一个元素。
my_list = [1,'name',[1,2,3]]
3.3 其他用途
列表可以嵌套取值
my_list[-1][1] ---->2
4、字典类型:key对应值,key通常为字符串类型,所以key对值具有描述性的功能
3.1 作用:用来存多个值,每个值都有唯一一个key与其对应,可以存不同属性的多个值
3.2 定义:在{}内用,分开各个键值对
my_dic = {'name' = 'amy','age' = 12}
3.3 其他用途:列表中可以嵌套字典
info = [
{'name' = 'amy1','age' = 12}
{'name' = 'amy2','age' = 14}
]
5、布尔类型bool,虽然简单,但很重要
3.1 作用:用来记录真假两种状态,True和False。
3.2 非零为真,记录两种状态比如1和0
3.3 其他作用
通常用来当做判断的条件。