文章目录
基础数据类型
整数
八进制0O
十六进制0X
二进制0B
浮点数
round()函数可以返回四舍五入的值
>>> round(2.3)
2
数字格式化
{:.2f}保留小数点后两位
{:+.2f}带符号保留小数点后两位
{:.0f}不带小数
>>> p=3.1415926
>>> str="{0:.2f},{0:+.2f},{0:.0f}"
>>> str.format(p)
'3.14,+3.14,3'
{:0>2d}数字补零,填充左边,宽度为2
{:0<4d}数字补零,填充右边,宽度为4
>>> num=18
>>> str="{0:0>4d},{0:0<4d}"
>>> str.format(num)
'0018,1800'
{:,}以逗号分隔的数字格式
{:.2%}百分比格式
{:.2e}指数记法
>>> num=100000000
>>> s="{0:,},{0:.2e},{0:.2%}"
>>> s.format(num)
'100,000,000,1.00e+08,10000000000.00%'
{:10d}右对齐
{:<10d}左对齐
{:^10d}中间对齐
>>> num=16
>>> str="{0:>6d},{0:<6d},{0:^6d}"
>>> str.format(num)
' 16,16 , 16 '
同一运算符
用于比较两个对象的储存单元,实际比较的是对象的地址
is 判断两个标识符是不是引用一个对象
is not 判断两个标识符是不是引用不同对象
is与==区别:
==用于判断引用变量引用的值是否相同,默认调用对象的__eq__()方法
is运算符比===效率高,在变量和None进行比较时更应使用is
整数缓存问题
在命令换模式下,python仅仅对较小的整数对象进行缓存(范围为[-5 , 256])
>>> a=10
>>> b=10
>>> a is b
True
>>> id(a)
2846217404944
>>> id(b)
2846217404944
>>> a=600
>>> b=600
>>> a is b
False
>>> id(a)
2846218443376
>>> id(b)
2846218443312
在文件中执行,则对[-5,任意正整数]范围内整数进行缓存(因为解释器做了一部分优化)
运算符
优先级
位运算和算术操作>比较运算符>赋值运算符>逻辑运算符
-
**
- 按位翻转
*/%//
±
<< >> 左移右移
& 位‘AND’
^| 位运算符
= >= > <= < 比较运算符
<> == = 等于运算符
= %= /= //= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
四则运算+ - * /
乘法运算符
1数字计算
2字符串复制
>>> str='abc'
>>> str*2
'abcabc'
3列表,元组复制
>>> L=[1,2,3]
>>> L*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
/浮点数除法//地板除
得到的结果会忽略纯小数的部分,得到整数的部分,地板除使用//进行。
>>> 1/8
0.125
>>> 1//8
0
小数点位数
使用Python计算小数的时候,经常需要保留小数点后若干位,可以使用round()函数来处理,这里先了解round的调用方式,使用两个参数,第一个是需要保留小数点位数的数值,第二个是保留的位数。
num = 10 / 3
print(num) # ==> 3.3333333333333335
# 使用round保留两位小数
round(num, 2) # ==> 3.33
**幂
>>> 2**3
8
divmod()函数同时得到商和余数,返回元组
>>> divmod(10,3)
(3, 1)
取模运算%
>>> 8%3
2
比较运算符
可以连用
>>> 1<2<3
True
增强值赋值运算符
+= -= *= /= //= **= %= <<= >>= &= | ^=
位操作
按位或|,按位异或^,按位与&
>>> a=0b101000101001
>>> b=0b000100000100
>>> c=(a|b)
>>> bin(c)
'0b101100101101'
>>> d=(a^b)
>>> bin(d)
'0b101100101101'
>>> e=(a&b)
>>> bin(e)
'0b0'
按位非~
正整数补码=原码,负整数补码=原码符号位不变,其他位按位取反加1
>>> i=123
>>> ~i
-124
>>> j=-123
>>> ~j
122
移位>><<
按位向右移动就是删除x二进制字符串结尾后y位
按位向左移动就是在x二进制字符串结尾添加y个0
>> a=3
>>> bin(a)
'0b11'
>>> b=a<<2 #左移一位*2
>>> bin(b)
'0b1100'
>>> c=a>>2 #右移一位/2
>>> bin(c)
'0b0'