python解释器和变量

时间:2021-05-04 17:07:40

一.python解释器

执行python程序的两种方式

1.交互式

在终端命令cmd中运行,敲完一条命令按下enter键马上能看到结果,程序调试起来比较方便,但是程序无法永久保存,关掉终端窗口数据就消失了。

2.命令行式

使用文本编辑器,在文本编辑器中写入一串字符,使用python解释器打开文件,python解释器会读一行翻译一行,永久保存在硬盘中。文件的后缀名(.txt或.py)虽然没有影响,但是为了区分文件建议保存为.py文件。

命令行下python执行程序的流程:1)启动python解释器;2)python解释器将文本从硬盘读入内存;3)python解释器执行文件代码(注意:只有第3阶段才识别python语法,才有python语法概念,否则输入的只是普通字符。)

二.变量

如何使用变量

1.定义变量

name = 'xiaoming'

age = 18

gender = 'male'

height = 180

weight = 150

2.变量的组成

变量的组成分为三部分:1)变量名:引用变量值,变量值的调用通过变量名实现;2)赋值:通过符号‘ = ’来赋值;3)变量值:存放数据,用来记录变化状态。

3.变量名命名规范

本质可以任意命名,但是为了方便他人能够读懂我们代码,命名要尽量规范化。

变量名应满足以下规范:1)变量的命名应该能反映变量值所描述的状态,不能使用中文;2)变量名必须用字母数字下划线组合,并且变量名的第一个字符不能是数字;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']

变量名两种风格:

==驼峰体==
AgeOfXiaoming = 19
print(AgeOfXiaoming) # 19
==下划线==
age_of_xiaoming = 19
print(age_of_xiaoming) # 19
以上两种变量名风格,推荐使用下划线风格

定义变量三个特征

定义变量的三个特征

对于每个变量,python都提供了这三个方法分别获取变量的三个特征,其中python的内置功能id(),内存地址不一样,则id()后打印的结构不一样,因为每一个变量值都有其内存地址,而id是用来反映变量值在内存中的位置,内存地址不同则id不同。

x = 10

print(x) # 获取变量的变量值

print(id(x)) # 获取变量的id,可以理解成变量在内存中的地址

print(type(x)) # 获取变量的数据类型

变量比较

判断变量值是否相等

name1='xiaoming'

name2='xiaozhang'

print(name1==name2) # False

判断变量id是否相等

x = 11

y = x

z = 11

print(x==y) # True

print(x is y) # True

print(x is z) # True,整数池的原因

x = 257

z = 257

print(x is z) # False

从上述的打印消息可以看出:id相等的变量,值一定相等,指向的是同一个内存地址;值相等的变量,id不一定相等。

其中在第一次打印 print(x is z) 的时候就触发了整数池,这可以理解成python的优化机制,11的值本身不大,并且由于我们快速的再一次使用了11,还由于申请内存空间需要计算机开销,因此python让x和z都指向同一个11。因为存不是目的,取才是目的,这样进行优化的话并不会影响程序的运行。

三.常量

变量是变化的量,常量则是不变的量。python中没有使用语法强制定义常量,也就是说,python中定义常量本质上就是变量。如果非要定义常量,变量名必须全大写。

AGE_OF_XIAOMING= 19
print(AGE_OF_XIAOMING) # 19
AGE_OF_XIAOMING = 18
print(AGE_OF_XIAOMING) # 18

如果是常量,那就没必要更改,所以python就只制定了一个规范,而没指定常量的语法。而在C语言中有专门的常量定义语法,const int age = 18 ,一旦定义 age 为常量,更改 age 即会报错。