每个对象都有类型,python中最基本的内置数据类型有
int
float/double
boolean
string
基本算术运算符
python支持整数和小数的运算
加(+)
减(-)
乘(*)
浮点数除(/)
整数除(//)
模/取余(%)
幂(**)
0不能做除数,否则会报错
使用divmod函数同时得到商和余数,,他返回的结果是一个元祖
整数
python支持二进制 ,八进制,十六进制,适用于位运算
使用int()实现类型转换
- 浮点数直接舍去小数部分
- 布尔值true转为1,false转为0
- 字符串符合整数格式则直接转成对应整数,否则直接报错
自动转型:整数和浮点数混合运算时,表达式结果自动转换为浮点数
整数可以多大?
python2中:int是32位 long类型是64位
python3中:int可以存储任意大小的整数,long被取消
浮点数
类型转换和四舍五入
- float()将其他类型转换为浮点数
- 整数和浮点数混合运算时,表达式结果自动转换为浮点数
- round(value) 可以返回四舍五入的值
注意:但不会改变原有的值,而是产生新的值
增强赋值型运算符
+=
-=
*=
/=
//=
**=
%=
时间的表示
计算机表示的时间是从"1970年1月1日00:00:00“开始,以毫秒进行计算,也称为"unix时间点"
python中可以通过time.time()获取当前时刻,返回的值以秒为单位,带微妙精度的浮点值
巩固知识做个小练习 —定义多点坐标绘出折线并计算起始点和终点距离
import turtle
import math
# 定义多个点的坐标
x1,y1 = 100,100
x2,y2 = 100,-100
x3,y3 = -100,-100
x4,y4 = -100,100
#绘制折线
turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()
turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)
# 计算起点和终点的距离
distance = math.sqrt((x1-x4)**2 + (y1-y4)**2)
turtle.write(distance)
程序运行结果:
布尔值
在python3中,将True和False定义为关键字,但本质还是1和0,甚至可以和数字相加,
主要配合比较运算符,同一运算符使用
比较运算符
所有比较运算符返回1为真,0为假
== 等于
!= 不等于
< 大于
”>“ 小于
”>=“ 大于等于
<= 小于等于
逻辑运算符
注意:短路问题!!!
and 与
or 或
nor 非
同一运算符 is/is not
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址
is:判断两个标识符是不是引用同一个对象
isnot:判断两个标识符是不是引用不同对象
is与==区别
is:用于比较两个变量引用对象是否为同一个,即比较对象的地址 (id)
== :用于判断引用变量引用对象值是否相等,默认调用对象的_eq_()方法 (value)
代码测试:
整数缓存问题
python仅对比较小的整数对象进行缓存(范围【-5,256】)缓存起来,而并非是所有整数对象,需要注意的是,这仅仅是在命令行执行,在pycharm或者保存文件执行,结果是不一样的,这是因为解释器做了一部分优化(范围【-5,任意整数】)
运算符总结
运算符优先级
复杂表达式一定要使用小括号组织
乘除优先加减
位运算和算术运算>比较运算>赋值运算