python基础数据类型——数字类型及其运算

python基础数据类型——数字类型及其运算,第1张

文章目录
  • 基础数据类型
  • 整数
  • 浮点数
      • 数字格式化
      • 同一运算符
          • 整数缓存问题
  • 运算符
    • 优先级
    • 四则运算+ - * /
      • 乘法运算符
      • /浮点数除法//地板除
        • 小数点位数
    • **幂
    • 取模运算%
    • 比较运算符
    • 增强值赋值运算符
    • 位 *** 作
      • 按位或|,按位异或^,按位与&
      • 按位非~
      • 移位>><<

基础数据类型 整数

八进制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'

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/756015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-30
下一篇 2022-04-30

发表评论

登录后才能评论

评论列表(0条)

保存