基础知识
Python 解释器可不止一种,有 CPython、IPython、Jython、PyPy 等。
顾名思义,CPython 就是用 C 语言开发的了,是官方标准实现,拥有良好的生态,所以应用也就最为广泛了。
而 IPython 是在 CPython 的基础之上在交互式方面得到增强的解释器(http://ipython.org/)。
Jython 是专为 Java 平台设计的 Python 解释器(http://www.jython.org/),它把 Python 代码编译成 Java 字节码执行。
PyPy 是 Python 语言(2.7.13和3.5.3)的一种快速、兼容的替代实现(http://pypy.org/),以速度快著称。
1.变量
1.1什么是变量
变量是可以变化的量,量指的是事物的状态
1.2变量的使用
原则先定义后使用
1.3 变量的内存管理
垃圾回收机制:当变量引用计数为0时,
x=10
y=x
z=x
del x #解除x与10的绑定关系
1.4变量名的命名
变量的三大组成部分:变量名+赋值符号+变量值
原则:‘见名知意’,不能是数字开头,不能用内置函数名,
1.5 变量值的三个特征
(1)ID 反应的变量值的内存地址,内存地址不同则id不同
id()
(2)type 不同类型的值表示记录不同的状态
type()
(3)value 值本身
(4)is 与 ==
is 比较两个的id是否相等
== 比较值是否相等
值相等id可能不同,但id相同值一定相同
小整数池:从python启动开始,就会在内存中事先申请好(-5,256)
2常量
不变的量
Python无法定义常量,但在开发过程中会涉及常量如pi.
3垃圾回收机制(GC)
专门回收不可用的变量值
x=20#直接引用
l=['a',x]#间接引用
栈区和堆区
栈区:存放变量名对应值的地址
堆区:存放变量值
3.1引用计数
只要被引用,计数加1
谨慎使用‘循环引用’==>导致内存泄漏
3.2标记清除
当内存不够用时,解释器会扫描内存空间,删除没有变量名定义的值
3.3 分代回收
在多次扫描的情况下,都没有回收的变量,GC机制会认为是常用变量,GC对其扫描频率会降低
4.类型
### 4.1 数据类型
4.1.1整型(int)
4.1.2浮点型(float)
4.2.容器类型
4.2.1 字符串(str)
记录描述性质的状态,定义:用引号(’’,"",’’’’’’)包含的一串字符
4.2.2列表(list)
4.2.3 元祖(tuple)
4.2.4字典(dict)
4.2.5 集合(set)
5.用户交互
5.1接收用户输入
username=input('str')
print(username,type(username))
5.2 格式化输出
# %
%s:字符串(但可以接收任何类型);%d:整型数字
print('my name is %s My age is %d'%(name,age))
print('my name is %(name)s My age is %(age)d'%{'name':'lees','age':18}
# str.format方法
print('my name is {0} My age is {1}'.format('name','age')
print('my name is {name} My age is {age}'.format(name='',age=18)