基于 python 3
目录
- 核心数据类型
- 表达式和运算符
- 运算符和优先级
- print函数、变量
- 赋值语句
- 关联、绑定、引用
- 序列赋值、is-is not运算符
- -id函数与del语句
- 复合赋值算术运算符
python 2与python 3区别
https://blog.csdn.net/pangzhaowen/article/details/80650478
在Linux环境下执行 .py 文件
#方法1.直接运行
$python3 *.py
#方法2.
#首先修改权限
$chmod u+x *.py
#其次在py程序第一行加上代码:#! /usr/bin/python
$./*.py
#方法3.交互模式(用于验证或执行短小程序)
$python3
>>>
python程序的组成
程序由模块组成
模块由语句,函数,类,数据等组成
语句包含表达式
表达式建立并处理数据对象
1. 核心数据类型
核心数据类型(整型(int),浮点型(float),复数(complex),布尔型(bool)
整型数 int
整形数是不带小数部分的数字
整数型数的字面值表示方式:
十进制表示:10 200 99999 -99999999
二进制表示(0b,0~1):0b111(7);0b101(5);0b11111(31)
八进制表示(0o,0~7):0o177(127);0o11(9)
十六进制表示(0x,0~9;A~F):0x11(17);0xFF(255);0x1234ABCD(305441741)
进制转换:
二进制到八进制,从右往左,每三位转换;
二进制到十六进制,从右往左,每四位转换;
浮点型 float
浮点型数是带有小数部分的数字。
表示方式:
小数形式: 3.14; 3.1; 3.; .14; 0.14
科学计数法:小数e/E(正负号)指数:6.18E-1; 2.9919e8
复数 complx
分为两部分:
实部(real)+虚部(image) #虚部以j或J结尾
字面值:1j; (2j); 1+1J; 3-4J; (-100+213j)
布尔型 bool
用来表示真和假两个状态的类型。
True 表示真(条件满足或成立),取1
False表示假(条件不满足或不成立),取0
空值 None 对象
None是一个表示不存在的特殊对象
作用:
用来占位
用来变量接触绑定
2. 表达式和运算符
表达式 expression
由一个数字或数字和运算符组成
作用:通常让计算机做一些事情并返回结果
eg:1+(3*4)/5
运算符:
算数运算符:
+ 加法 - 减法 * 乘法 / 除法(除法得到的是浮点型,不会丢弃小数部分)
% 求余(取模) ** 幂运算 // 地板除(结果向下取整)
3. 运算符和优先级
运算符优先级:从上到下;同级别从左到右
() #最高优先级
**
* / // %
+ - #最低优先级
eg: 1+3*3**2+4//2
1+3*9+4//2
1+27+4//2
1+27+2
28+2
30
4. print函数、变量
基本输出函数 print
格式:print(要打印的数据)
可打印多个数据,各数据可以用','分隔开
eg:print('hello python')
print("1+2=",1+2)
变量 variable
变量使用来绑定数据对象的标识符。
命名方法:
必须为字母或下划线开头,后跟字母或下划线或数字,不能使用python的关键字做变量名.
合法的变量名示例: a; a1; b; bb_; _aa; _Abcd; a1b2c3
不合法变量名示例: 1a; 123; $ABC; +a; -b; #c; @ab;a*b;a|2
python的关键字: True; False; None; is; del; if; elif...
5. 赋值语句
赋值语句 statement
语法:
变量名 = 表达式 eg:(a=10*20)
变量名1 = 变量名2 = 表达式 eg:(a=b=30)
变量名1,变量名2,... = 序列 eg:(a,b =20,30)
作用:
用于创建变量并将变量绑定(或关联)在一个对象上.
说明:
1.当变量不存在时,创建该变量同时绑定在这个对象上.
2.当变量存在时,改变此变量的绑定对象.
3.一个变量只能绑定一个对象.
4.两个变量可以同时绑定同一个对象.
eg: a = 10 #创建一个变量,和10绑定在一起
b = 20
c = a + b #创建变量c,和10 + 20的结果绑定在一起
6. 关联、绑定、引用
python中关联/绑定/引用的含义:
在python中,变量没有类型
关联/绑定/引用都是指变量和一个对象的关联关系
在交互模式下查看变量的绑定关系:
>>>help('__main__') #两个下划线 '__'
python中的自动化内存管理:
a = 100
b = 200
a = a + b #100->a 200->b 100+200=300->a
7. 序列赋值、is-is not运算符
序列赋值的语法:
变量名1, 变量名2, ... = 对象1,对象2,...
变量名1, 变量名2, ... = (对象1,对象2,...)
变量名1, 变量名2, ... = [对象1,对象2,...]
变量的交换绑定:
若a=1000,b=2000,在不创建任何新对象的情况下,如何交换a,b绑定对象?
答:a, b = (b,a) #其实内存中生成了(b,a)这个对象
is / is not 运算符
is 作用:判断两个变量是否绑定同一个对象,是则返回True,否则返回False
is not 作用与is相反
eg:
a = b = 1000
a is b #>>>True
a is not b #>>>False
a = 1000 #创建1000这个对象
b = 1000 #创建1000这个对象,与上个1000不在同一内存
a is b #>>>False #a,b值相同,但绑定的对象不同
小整数对象池: //-5,-4,......255,256//
CPython(编译器)中整数 -5 ~ 256
永远存在于小整数池中,不会释放并可重复使用
eg:
a = 5 #5这个不需创建,直接从小整数对象池中绑定到a
b = 5
a is b #>>>True
a = 1+4
b = 2+3
a is b #>>>True
8. -id函数与del语句
id() 函数
格式: id(对象)
作用: 返回一个对象在内存中的地址
如果两个对象地址相同,那他们是同一对象
eg:
a = 1000
b = 1000
help('__main__')
id(a)
id(b)
a is b
del 语句 (delete)
格式: del 变量名
作用: 删除变量,同时删除与对象的关联关系,如果可能则释放对象(引用计数为0)
python的内存管理和引用计数:
每个对象都会记录有几个变量引用自身,当引用的数量为0,则对象被销毁,
此种自动化内存管理的方式叫做引用计数
9. 复合赋值算术运算符
运算符 | 说明 |
---|---|
y += x | 即:y = y + x |
y -= x | 即: y = y - x |
y *= x | 即:y = y * x |
y /= x | 即:y = y / x |
y //= x | 即:y = y // x |
y %= x | 即:y = y % x |
y **= x | 即: y = y ** x |