目录
上节课复习:
一、什么是变量?
二、为什么要有变量?
三、如何用变量
# 1、变量基本使用
# 2、内存管理:垃圾回收机制
# 3、变量有三大组成部分
# 4、变量名的命名的规则
# 5、变量名的命名风格
# 6、变量值三个重要的特征
# 7、常量:不变的量
# 1、数字类型
# 1.1 整型int
# 浮点型float
# 2、字符串类型str
# 3、列表
# 字典类型
# 5 布尔bool
上节课复习:
? ? 1、机器语言、汇编语言、编译型、解释型语言在 ? ? ? ?执行效率、开发效率、跨平台性方面的高低对比
????????
#1、执行效率:机器语言>汇编语言>高级语言(编译型>解释型)
#2、开发效率:机器语言<汇编语言<高级语言(编译型<解释型)
#3、跨平台性:解释型具有极强的跨平台型
? ? 2、python解释器与python语言的关系 ? ? ? ? 1、python解释器是一款应用程序,专门用来解释python这门语言的语法风格并执行的 ? ? ? ? 2、python语言编写的程序最终都是被解释器执行的,所以我们可以这么说python语言 ? ? ? ? ? ? 更多地都是在调用python解释器的功能,所以解释器性能的高低很大程度决定了我们 ? ? ? ? ? ? 用python写出来的程序执行效率的高低 ? ? 3、什么是环境变量PATH,或者说它是用来干什么的 ? ? 4、运行python程序的两种方式 ? ? ? ? 交互式 ? ? ? ? 脚本的方式 ? ? ? ? ? ? python3.8 a.py ? ? 5、一个python程序运行的三个步骤/阶段 ? ? ? ? 1、python3.8解释器启动 ? ? ? ? 2、python3.8解释器把a.py的内容当做普通的文本内容由硬盘读入内存(本质是解释器 ? ? ? ? 向操作系统发起系统调用,让操作系统控制硬件完成读取) ? ? ? ? 3、解释器解释执行刚刚读入内存的python代码,开始识别python语法
? ? ? ?总结它与文本编辑器读取文件的三个阶段的相同之处与不同之处 ? ? 6、注释的种类、注释的用途
一、什么是变量?
变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等
二、为什么要有变量?
为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的 详细地说: 程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程
三、如何用变量
# 1、变量基本使用
# 原则:先定义,后引用 # name = 'egon' ?# 定义-》存 # print(name) ?# 引用-》取
# age = 18 # print(age)
# 2、内存管理:垃圾回收机制
# 垃圾:当一个变量值被绑定的变量名的个数为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 # print(z)
# 3、变量有三大组成部分
# I:变量名=》是指向等号右侧值的内存地址的,用来访问等号右侧的值 # II:赋值符号:将变量值的内存地址绑定给变量名 # III:变量值:代表记录的事物的状态
# 4、变量名的命名的规则
# 原则:变量名的命名应该见名知意 # 4.1. 变量名只能是 字母、数字或下划线的任意组合 # 4.2. 变量名的第一个字符不能是数字 # 4.3. 关键字不能声明为变量名,常用关键字如下 # ['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'] # age=18 # print='egon'
# ps:不要用拼音,不要用中文,在见名知意的前提下尽可能短 # mingzi='egon' # 名字='egon' # print(名字)
# 5、变量名的命名风格
# 5.1 纯小写加下划线的方式(在python中,关于变量名的命名推荐使用这种方式) age_of_alex = 73 # print(age_of_alex) # 5.2 驼峰体 AgeOfAlex = 73 # print(AgeOfAlex)
# 6、变量值三个重要的特征
# name='egon' # id:反映的是变量值的内存地址,内存地址不同id则不同 # print(id(name)) # type:不同类型的值用来表示记录不同的状态 # print(type(name)) # value:值本身 # print(name)
# 6.2 is与== # is:比较左右两个值身份id是否相等 # ==:比较左右两个值他们的值是否相等 ''' id不同的情况下,值有可能相同,即两块不同的内存空间里可以存相同的值 id相同的情况下,值一定相同,x is y成立,x == y也必然成立 >>>? >>> x='info:Egon:18' >>> y='info:Egon:18' >>> print(x,y) info:Egon:18 info:Egon:18 >>> print(id(x),id(y)) 4565819264 4566192176 >>>? >>>? >>>? >>> x == y True >>> x is y False '''
# 了解:小整数池[-5,256] # 从python解释器启动那一刻开始,就会在内存中事先申请 # 好一系列内存空间存放好常用的整数 ''' >>> m=10 >>> n=10 >>> id(m) 4562619328 >>> id(n) 4562619328 >>>? >>> res=4+6 >>> res 10 >>> id(res) 4562619328 '''
''' >>> x=-5 >>> y=-5 >>> x is y True >>> x=-6 >>> y=-6 >>> x is y False '''
''' >>> x='aaa' >>> y='aaa' >>>? >>>? >>> id(x) 4566200880 >>> id(y) 4566200880 '''
''' x=-6 y=-6 print(id(x)) print(id(y)) print(x is y) '''
# 7、常量:不变的量
# 注意:python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念 AGE_OF_ALEX = 73 ?# 小写字母全为大写代表常量,这只是一种约定、规范 AGE_OF_ALEX = 74 print(AGE_OF_ALEX)
# 1、数字类型
# 1.1 整型int
# 作用:记录年龄、身份证号、个数等等 # 定义: age = 18 # print(type(age))
# 浮点型float
# 作用:记录薪资、身高、体重 # 定义 salary = 3.3 height = 1.87 weight = 70.3 # print(type(height))
# 数字类型的其他使用 # level = 1 # level=level + 1 # print(level) # print(10 *3)
# print(10 + 3.3) # int与float之间可以相加 # age = 19 # print(age > 18)
# 2、字符串类型str
# 作用:记录描述性质的状态,名字、一段话 # 定义:用引号('',"",''' ''',""" """,)包含的一串字符 info = ''' 天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃, 另一种人把最好的留到最后吃。 照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的; 第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。 不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。 ''' # print(type(info)) # name="egon" # print(name)
# x=18 # print(type(x)) # x='18' # 由数字组成的字符串,是字符串类型,不是int类型 # print(type(x))
# 'name'='egon' # 语法错误,等号左边是变量名,变量名的命名不能有引号
# xxx # 代表访问变量名字 'xxx' ?# 代表的是值
# x=10 # y=x
# 其他使用: # 字符串的嵌套,注意:外层用单引号,内存应该用双引号,反之亦然 # print("my name is 'egon'") # print('my name is \'egon\'')
# 字符串之间可以相加,但仅限于str与str之间进行, # 代表字符串的拼接,了解即可,不推荐使用,因为str之间的 # 相加效率极低 # print('my name is '+'egon') # print('='*20) # print('hello world') # print('='*20)
# 3、列表
索引对应值,索引从0开始,0代表第一个 # 作用:按位置记录多个值(同一个人的多个爱好、同一个班级的所有学校姓名、同一个人12个月的薪资),并且可以按照索引取指定位置的值
# 定义:在[]内用逗号分隔开多个任意类型的值,一个值称之为一个元素 # ?0 ? 1 ? ?2 ? ? ? ?3 ? ? ? ? ?4 l = [10, 3.1, 'aaa', ['bbb', 'ccc'], 'ddd'] # print(l) # print(l[1]) # print(l[2]) # print(l[3][1])
# print(l[4]) # print(l[-1])
# hobbies='read music play' # print(hobbies) # hobbies = ['read', 'music', 'play'] # print(hobbies[1])
# 其他的用途: # students_info=[ # ? ? ['tony',18,['jack',]], # ? ? ['jason',18,['play','sleep']] # ] # 取出第一个学生的第一个爱好 # print(students_info[0][2][0])
# 4、 # 索引反映的是顺序、位置,对值没有描述性的功能 # ? ? ?0 ? ? ?1 ? 2 ? ? 3 info=['egon',18,'male',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'])
# 5 布尔bool
# 6.1 作用 # 用来记录真假这两种状态 # # 6.2 定义 # 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}, ]
# 6.3 其他使用
# 通常用来当作判断的条件,我们将在if判断中用到它
# 总结:如何选择合适的类型来记录状态 # 1、选取的类型是否可以明确标识事物的状态 # 2、存不是目的,存的目的是为了日后取出来用,并且方便的用 # 3、把自己想象成一台计算机,如果我是计算机, # ? ?我会如何以何种形式把事物的状态记到脑子里 # ? ?然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态
|