讲解套路:
1、xxx是什么?
窍门:提取知识点名词中的关键字来加以解释
2、为什么要有它?
大前提:python中语言中出现的所有的语法都是为了让计算机能够具备人的某一功能/像人一样去做xxx
3、如何用?
今日内容:变量与基本数据类型(全为重点)
一、什么是变量?
变量就是可以变化的量,量是指事物的状态,比如人年龄、游戏角色的等级、金钱等
二、为什么要有变量?
为了让计算机能像人一样记忆某种状态且状态是可以发生改变的
详细的说:程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,我们需要一种机制能够反映或保存这种变化
三、如何用变量?
1.变量的基本使用
原则:先定义后使用
name="yoona"# 定义 --- 存print(name) # 引用 --- 取age=18print(age)
2.内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量无法被访问到,称之为垃圾
#引用计数增加x=10 #10的引用计数为1y=x #10的引用计数为2z=x #10的引用计数为3#引用计数减少del x #解除变量名x与值10的绑定关系,10的引用计数为2del y #10的引用计数变为1z=234 #10的引用计数变为0
3.变量三大组成部分
变量名:是指向等号右侧值的内存地址,用来访问等号右侧的值
赋值符号:将变量值的内存地址绑定给变量名
变量值:代表记录的事物的状态
4.变量的命名规则
原则:变量名的命名应该见名知意
注:变量名只能由数字、字母、下划线组成,且数字不能打头,关键字不能声明为变量名
常见关键字:and、as、assert、break、class、continue、def、del、elif、else、except、exec、finally、for、from、global、if、import、not、or、pass、print、in、lambda、raise、return、try、while、with、yield?age=18print="yoona"#关键字不可作为变量名?
注意:不要使用拼音,不要用中文,见名知意
name="yoona"age=23gender="male"
5.变量名的命名风格
5.1纯小写加下划线方式
gender_of_yoona="female"print(gender_of_yoona)
5.2驼峰体
GenderOfYoona="female"print(GenderOfYoona)
6.变量值的三个重要特征
name="yoona"
id:反映的是变量值的内存地址,内存地址不同id不同
print(id(name))
type:不同类型的值表示记录不同的状态
print(type(name))
value:值本身
print(name)
6.2is与==
is:比较左右两值身份id是否相等
==:比较左右两值他们的值是否相等
注意:值相等 id可能不同,即两块不同的内存空间可以存相同的值
x="info:yoona:23"y="info:yoona:23"print(id(x),id(y))#21080047920 21080050608x==y #TrueX is y#False
了解:小整数池
从python解释器启动的那一刻开始,就会在内存中事先申请,内存空间中存放好常用的整数
小数池范围 [-5,256]
x=-5y=-5x is y #Truex=-6y=-6x is y #False
7.常量:不变的量
注意:Python语法中没有常量的概念,但是在程序开发过程中会涉及到常量
AGE_OF_TOM=66#变量名称全为大写代表常量,这是一种约定、规范print(AGE_OF_TOM)
基本数据类型
1.数字类型
1.1整型 int
作用:记录年龄、身份证号、物品个数等
age=23print(type(age))#int
1.2浮点型 float
作用:记录工资、身高、体重
salary=1.4height=1.74weight=65.2print(type(salary))#float
数字类型的其他使用
level=1level=level+1print(level)print(10*3)?print(10+3.3)#int和float之间可以相加age=23print(age>18)
2.字符串类型
作用:记录描述性质的状态,名字,
定义:用引号(‘ ‘," ",‘‘‘ ‘‘‘)包含一串字符
info="I love you forever"print(type(info))name="yoona"print(name)
x=18print(type(x))#intx="18"print(type(x))#string
其他使用:字符串的嵌套
注意:外层单引号,内层双引号
print(‘my name is "yoona"‘)print(‘my name is \‘yoona‘\‘)
字符串之间可以相加,但仅限于str与str之间进行
字符串的拼接效率极低,不推荐使用
print(‘my name is‘+"yoona")print("*"*20)
3.列表:索引对应值,索引从0开始,0代表第一个
作用:按位置记录多个值
定义:在[]内用逗号分隔开任意多个类型的值,一个值称之为一个元素
x=[10,3.1,"aaa",["bbb","ccc"],True]print(x)print(x[1])print(x[3][0]
其他用途
student_info=[["yoona",18,["music",]],["tom",23,["sleep","eat"]]]print(student_info[0][2][0])#取出第一个学生的第一个爱好
索引 :反映的是顺序,位置,对值没有描述性功能
info=["yoona",23,"female",1.4]print(type(info))#listprint(info[0])print(info[1])print(info[2])print(info[-1])
4.字典:key对应值,其中key通常为字符串类型,所以key对应值可以有描述性功能
作用:用来存多个值,各个值都有唯一一个key与其对应,key对值有描述性功能
定义:在{}内用逗号分开多个key:value
a={"b":1,"c":2}?print(type(a))#dict?print(a["b"])#1?info={"name":"yoona","age":23,"gender":"female","salary":1.4}print(info["gender"])#female?#其他用途#student_info=[第一个信息,第二个信息,第三个信息]student_info=[{"name":"a","age":18,"gender":"male"}{"name":"b","age":18,"gender":male}{"name":"c","age":18,"gender":male}]print(student_info[1]["name"])#b
5.布尔bool
作用:用来记录真假两种状态
定义
is_ok=Trueis_ok=Falseprint(type(is_ok))?student=[{"name":"a","gender":1},{"name":"b","gender":0}]
其他使用:通常作为判断条件,在if判断中得到充分使用
总结:如何选择合适的类型来记录状态
1.选取的类型是否可以明确标识事物状态
2.存不是目的,存的目的是为了日后取出来用,方便的用
3.把自己想象成一台计算机,如果我是计算机,我会如何以何种形式把状态记到脑子里,然后再用Python找相应的数据类型来让计算机像自己一样记录事物状态
原文地址:https://www.cnblogs.com/mayrain/p/12410757.html