day3

变量把数据存哪里去了?是内存还是硬盘?
为什么要有变量这种语法呢?一定是为了计算机拥有人的某种功能。
没有这种语法会出现什么问题?
学习这种语法就要背,记,多敲。
一定是为了计算机拥有人的某种功能。
理解所有语法大前提:为何要有这种语法?为了能让计算机能够具备人的某项功能。
编写python程序的2个地方:1交互式环境(python解释器CMD,一旦退出写的代码不能保存,
python解释器就是一种交互式环境)
2写入文件(可以永久保存代码,以后写程序的主流)
运行python程序的三个阶段:
{python3(解释器) D:\a.py(文本字符)}这2中都在硬盘放着。
第一个阶段先运行python解释器
第二个阶段python解释器将a.py的内容从硬盘读入内存
第三个阶段python解释器识别刚刚读入内存的内容,解释器执行。
我们的python程序调用的都是解释器的功能,如果是C语言,就是Cpython。
pycharm(IDE集成开发编辑器)
注释又称为代码之母
python有2中注释方法(注释是增强代码可读性的)
第一种三引号或者双3引号注释。如
“”“
多行注释加在整个PY文件的开头
用来对该我呢见进行一个整体性的说明
通常一个PY中只有一个多行注释
”“”
第二中
# 这是一种贼溜的代码(注释的主流)关键性代码才加注释
(不确定规范不规范可以用Code-Reformat Code)
如果暂时不想运行某个代码可以用注释(# 某某代码)
所以注释的俩中用途
1、对代码进行注释说明,增强代码的可读性。
2、注释掉暂时不想运行的代码,调试程序有可能用到他。
什么是变量?
量:事物的状态
变:事物的状态是可以变化的
变量就是一种机制或者语法。
为何要用变量?
是为了让计算机像人一样记住事务的状态,并且可以改变。(人是把东西记到脑子里,
而计算机是把东西存到内存里面去。)所以变量其实是一种存取内存的机制。
如何用变量?
使用变量有原则:先定义,在引用。
定义语法:变量名=变量值
定义变量的三大组成部分
变量名:访问变量值
赋值符号:把变量值的内存地址绑定给变量名
变量值:就是我们记录的事物的状态,即存储的数据。
变量名可以随便取但是需要有意义(有意义就是我们能通过名字可以看出来什么意思)
所以变量名的命名是有讲究的,必须遵循一个大前提:见名知意。
变量名的规范:1字母,数字,下划线组成。2不能以数字开头。3不能与python关键字冲突
如(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')
变量名的命名风格:1纯小写加下划线(age_of_egon = 18)
2驼峰体(AgeOfEgon = 18)变量名的命名风格一般用纯小写加下划线
变量值的两大特征
(1)id号:是变量值的身份证号,反映的内存地址。
name = "egon"
age = 18
print(id(age ))
print(id(name))
(2)type类型
print(type(name)) str字符串类型
print(type(age)) int整型
变量值的内存管理机制
不用的内存就回收,1垃圾回收机制GC(变量值“引用计数”为0时就是垃圾,需要回收)
x = 10 (值10引用计数为1)
y = x (值10的引用计数为2)
y = 1000 (值10引用计数减少为1)
del x (值10的引用计数为0,这就变成垃圾被回收)
引用计数其实是有效率问题和BUG问题的
分代回收可以解决引用计数效率问题
分代回收就相当于你第一次扫描他时发现他是“好人”,“第二天”就不会扫描他,也就是说可以减少他被扫描的频率
一直到被发现不是“好人”。他也有BUG,比如说刚扫描他之后他是“好人”,还没一会就变“坏人”
扫描的频率也被变低了,但是他却不是“好人”。
引用内存发生内存泄露时可以用标记、清除来解决
如果我们想要回收python程序内存空间,只能通过把变量值的引用计数减少为0的方式实现。不能直接的回收。
小整数池
x = 100
y = 100 理论上他们的id不一样,但是却是一样。
为了优化效率python解释器先把-5到256的变量值的地址提前申请了,所以才会出现变量值相等的情况。
而pycharm优化机制更大了一些比256更大。(常用的优化了)
id 相等,值一定相等
值相等,id不一定相等
is:判断id是否相等(ture说明id相等 false说明不相等)
==:判断值是否相等 (ture说明id相等 false说明不相等)
None表示空值
x == None
print(x is None)
基本数据类型
1数字类型
python是一门解释型的、强类型的、动态语言。
比如“abc"+10
1.1整型int:记录整数(人的年龄、等级、号码、个数等)
age = 18
level = 10等
1.2浮点数型float:记录薪资、身高、体重等
salary = 3.7
x = 18
y =3.7
print(x + y)这2种类型可以混着来.
2字符串类型:记录描述性质的状态,比如名字,一段话,性别等
x = "两只黄鹂鸣翠柳“
y = ’两只黄鹂鸣翠柳‘
m = """两只黄鹂鸣翠柳"""
n = '''两只黄鹂鸣翠柳'''
print(x)
print(y)
print(m)
print(n)得到的都是 两只黄鹂鸣翠柳
msg = "my name is 'egon'"(外层用双引号,内层用单引号)
print(msg,type(msg))
age变量名 ”egon"变量值的一种,str
字符串可以乘除不能相加减
3列表类型(按照索引寻)
记录一个人的爱好
0 1 2
hobbies = 【“打篮球“,”阅读“,”看电影”】
print(hobbies【0】)
打篮球
print(hobbies【-1】)
看电影
4字典类型(按照key:value的格式存放多个元素,其中value可以是任何类型,而key通常是str类型)
info = [“egon",18,1.8,80,"male"]
info = {“name":"egon",等}
print(info【“name"])
egon

posted @ 2021-06-20 14:38  点滴180  阅读(23)  评论(0)    收藏  举报