【2020Python修炼记4】Python语法入门[1]_变量

【2020Python修炼记4】Python语法入门[1]_变量

一、葵花宝典:

学习新知识的【灵魂三问】

+ what -XXX是什么?

遇到新名词,先从字面意思下手,提取其中的关键词,拆分解释。
例如:变量,会变的量……

+ why -为什么要有它,有啥用?

一种事物的存在,即有其理由。
为什么要有它,用它来做什么?
编程语言是由人类创造,用来控制计算机运行操作的一系列指令。指令中的规则,是人为制定的,因此必定是为了满足某个需求创造的。
例如:变量,是用来存放数据的,就像一个个容器,装着程序中所需要使用的东西。

+ how -怎么使用它?

需要的时候,就去使用。
实践出真知。

知道what+why,是实现how的前提。如何更好地实现how,则需要做到融会贯通,熟能生巧。
台上一分钟,台下十年功。

二、变量和常量

1、变量

(1)什么是变量

变量,就是可以变化的量,量指的是事物的状态,比如人的年龄、性别、游戏角色的等级等等

(2)为什么要有变量,变量的作用

为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
详细地说:
程序执行的本质就是一系列状态的变化,【变】是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序的执行

(3)如何使用变量

+变量基本使用

原则:先定义,后引用

name = "egon" # 定义-》存
print(name) # 引用-》取
age = 18 >>> print(age)

+内存管理:垃圾回收机制

垃圾:当一个变量值被绑定的变量名的个数为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)

+变量有三大组成部分:

I:变量名:是指向等号右侧值的内存地址的,用来访问等号右侧的值
II:赋值符号:将变量值的内存地址绑定给变量名
III:变量值:代表记录的事物的状态
eg:z = 12345

+变量命名规则和风格

++命名规则

原则:变量名的命名应该见名知意

三大主要规则:
=变量名只能是字母、数字或下划线的任意组合
=变量名的第一个字符不能是数字
=关键字不能声明为变量名,常用关键字如下:

["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(名字)

++命名风格

+++纯小写加下划线的方式(在python中,关于变量名的命名推荐使用这种方式)
栗子1:

age_of_alex = 73
print(age_of_alex)

+++驼峰体
栗子2:

AgeOfAlex = 73
print(AgeOfAlex)

+变量的三个重要特征

++三大特征——id,type,value

栗子:

name="egon" #id:反映的是变量值的内存地址,内存地址不同id则不同
print(id(name)) #type:不同类型的值用来表示记录不同的状态
print(type(name)) #value:值本身
print(name)

++ 区分 is ,==

is:比较左右两个值身份id是否相等
==:比较左右两个值他们的值是否相等

ps:
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

** ps: pyCharm软件和Python解释器的程序运行结果有时会不同**

就上一个例子再次在pyCharm软件中运行,结果如下:

x="info:Egon:18"
y="info:Egon:18"
print(x,y)
info:Egon:18 info:Egon:18
print(id(x),id(y))
2017437926096 2017437926096

为什么x和y的id会一样呢?因为pyCharm软件在执行程序时,会对程序进行优化。
一般pyCharm软件是用于编写程序,程序的运行结果,仍应以Python解释器的程序运行结果为准。

++小整数池[-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)

2、常量

即 不变的量
注意:python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念

AGE_OF_ALEX = 73 # 小写字母全为大写代表常量,这只是一种约定、规范
AGE_OF_ALEX = 74
print(AGE_OF_ALEX)