dayⅡ:编程语言+变量+垃圾回收制
目录
一、编程语言分类:
1、机器语言
#直接用二进制指令编写程序
优点:程序的运行速度快
缺点:
1、编写程序太复杂了
2、记忆困难
2、汇编语言
#用英文标签取代二进制指令去编写程序
3、高级语言
#用人类能理解的表达方式编写程序,需要经过翻译才能被计算机理解、运行
#按照翻译方式的不同,又分为两种:
1、编译型(c、go)
2、解释型(python,shell
#运行效率:机器语言>汇编语言>高级语言(编译型>解释型)
#开发效率:机器语言<汇编语言<高级语言
二、运行python的两种方式:
1、交互式环境
输入代码立即得到结果
2、脚本的方式
python3 /Users/linhaifeng/PycharmProjects/s15/day02/d.txt
三、运行python程序经历的三个步骤:
1、先启动python解释器
2、python解释器就相当于一个文本编辑器先把d.txt的内容由硬盘读入内存
3、解释器解释执行刚刚读入内存的d.txt的内容,开始识别python语法
# 多行注释:'''''',""""""
# 单行注释:#
四、变量:
1、什么是变量?
量:记忆下事物的状态
变:事物的状态是可以发生变化的
2、为何要用变量?
变量是为了控制计算机能够像人一样去记忆下事物的状态
并且记录的状态是可以发生变化的
变量其实是一种控制计算机把数据存起来的机制,存到内存中
名字 = egon
年龄 = 18
程序=数据+逻辑
3、如何用变量?
(1)原则:先定义、后引用
name = "egon"
age = 18
salary = 3.1
height = 1.81
weight = 73
print(name)
print(age)
print(salary)
print(height)
print(weight)
print(weight # 语法错误不能忍,打死他
name="egon"
name # 逻辑错误不可避免,应该尽量规避
(2)变量的三大组成部分:
# 变量名:相当于门牌号,用来访问/引用值
# =:是把变量值的内存地址绑定给变量名
# 变量值:就是我们记录的状态,也就是程序中的数据
(3)变量名命名规则
#I: 变量名只能是 字母、数字或下划线的任意组合
age_of_egon1=18
age1=19
age2=20
_=13 #不建议是下划线开头
_a=14
#II. 变量名的第一个字符不能是数字
1age=18 # 非法
123=18 # 非法
#III:不用使用关键字
print=123 # 非法
print("hell world") # 非法
['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']
(4)变量名的命名原则:变量名应该见名知意
age=19
level=19
print(age)
print(level)
(5)变量名的命名风格:变量名推荐使用风格II
# I:驼峰体
AgeOfEgonBaby=18
# II:纯小写加下划线
age_of_egon_baby=18
(6)变量值的三大特征
# I:id号,又称之为身份,id反映的是内存地址,id相同内存地址则相同
age=18
print(id(age))
#ps: id不同,代表内存空间不同,但是不同的内存空间中可以存放相同的值
Python 3.8.3 (v3.8.3:6f8c8320e9, May 13 2020, 16:29:34)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> x=257
>>> y=257
>>> id(x)
4494198128
>>> id(y)
4494198192
>>>
>>>
>>> m=256 # -5~256间的整数值id相同
>>> n=256
>>> id(m)
4490930816
>>> id(n)
4490930816
>>>
x=25712312312312312312 #超过一定值后id也相同
y=25712312312312312312
print(id(x))
print(id(y))
# II:类型
age=18
salary=3.1
name="egon"
print(type(age))
print(type(salary))
# III:值本身
五、内存管理值垃圾回收机制
1、引用计数
age=18 # 18被引用1次
x=age # 18被引用了2次
print(age)
print(x)
x=19 # 18被引用计数减1
del age # 18被引用计数减1
# 当18的引用计数为0时,他就是垃圾,就会被gc回收
AGE = 18
# AGE = 19
print(AGE)