Python的Number类型

Python 的数字类型可以存储在数学上的各种数字,包括常见的自然数、复数中的虚数、巨大的数字、正负数、带小数点的数、不同进制的数等等,非常灵活丰富。

x = 100    # int, 整型
y = 0.2  # float, 浮点
z = 10+2j   # complex, 复数

数值类型

常用的有以下几种类型:

类型 描述 示例
int 有符号整数,它们通常被称为整数或整型。它们是没有小数点的0、正或负整数。 Python3 中的整数是无限大小的 2, -1, 0, 0×69
float 浮点实数值,也称为浮点数,它们表示实数,并用小数点写整数和小数部分。 浮点数也可以是科学符号,E或e表示10的幂 0.00, 1.4, -23.22, -32.54e100
complex 复数是以a + bJ的形式,其中a和b是浮点,J(或j)表示-1的平方根(虚数)。数字的实部是a,虚部是b。复数在Python编程中用处较少 3.14j, 9.322e-36j

整数

整型就是常说的整数,或正或负的整数,没有小数点。它的长度是没有限制的,所以 Python3 没有其他语言的长整型(long)。

可以直接定义不同进制的数字,以下方法定义的都是同一个值:

a = 97 # 10 进制
a = 0b01100001 # 2 进制
a = 0x61 # 16 进制
a = 0o301 # 8 进制

可以使用前缀 0x,0o 和 0b 分别表示 16、8、2 进制的表示方式。

浮点数

有小数点的数字,如果小数点后全是 0 也可以只写小数点。

float('inf') 的结果 inf 正无穷,float("-inf") 负无穷。float("nan") 代表缺失值。

用科学计数法赋值:

e = 3.5e5 # 350000.0 e后面跟着的表示是10的幂次
f = 1E6 # 1000000.0

复数

j 代表复数的虚部。

x = 1+2j
y = 2j
z = -3j

千分位

整数部分支持千分位,Python 3.6后支持下划线作为千分位,注意,逗号已经有其他用途了,不能用作千分位

123_456_789 # 123456789 可以在较大的数字用下划线连接
123_456.888 # 123456.888
f'{10000000000:_}' # 10_000_000_000
'{:_}'.format(10000000000) # 10_000_000_000


a = 123,456,789
print(a) #数字中间加逗号后变成元组了,(123, 456, 789)

科学计数法

如果中间有字母 e 在其中,那么 e 后边的数学就代表 10 多少次方乘以前面的数字:

# 用科学计数法赋值
a = 4e7
print(a) #40000000.0
b = 5.2E3
print(b) #5200.0
c = 2.123e-5
print('%0.9f'%c) #0.000021230

运算符

算术运算

算符

描述

实例

+

加 - 两个对象相加

a + b 输出结果 31

-

减 - 得到负数或是一个数减去另一个数

a - b 输出结果 -11

*

乘 - 两个数相乘或是返回一个被重复若干次的字符串

a * b 输出结果 210

/

除 - x 除以 y

b / a 输出结果 2.1

%

取模 - 返回除法的余数

b % a 输出结果 1

**

幂 - 返回x的y次幂

a**b 为10的21次方

//

取整除 - 往小的方向取整数

>>> 9//2

4

>>> -9//2

-5

比较运算

运算符

描述

实例

==

等于 - 比较对象是否相等

(a == b) 返回 False。

!=

不等于 - 比较两个对象是否不相等

(a != b) 返回 True。

>

大于 - 返回x是否大于y

(a > b) 返回 False。

<

小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。

(a < b) 返回 True。

>=

大于等于 - 返回x是否大于等于y。

(a >= b) 返回 False。

<=

小于等于 - 返回x是否小于等于y。

(a <= b) 返回 True。

赋值运算

运算符

描述

实例

=

简单的赋值运算符

c = a + b 将 a + b 的运算结果赋值为 c

+=

加法赋值运算符

c += a 等效于 c = c + a

-=

减法赋值运算符

c -= a 等效于 c = c - a

*=

乘法赋值运算符

c *= a 等效于 c = c * a

/=

除法赋值运算符

c /= a 等效于 c = c / a

%=

取模赋值运算符

c %= a 等效于 c = c % a

**=

幂赋值运算符

c **= a 等效于 c = c ** a

//=

取整除赋值运算符

c //= a 等效于 c = c // a

:=

海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符

在这个示例中,赋值表达式可以避免调用 len() 两次:

if (n := len(a)) > 10:

    print(f"List is too long ({n} elements, expected <= 10)")

位运算

运算符

描述

实例

&

按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

(a & b) 输出结果 12 ,二进制解释: 0000 1100

|

按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。

(a | b) 输出结果 61 ,二进制解释:0011 1101

^

按位异或运算符:当两对应的二进位相异时,结果为1

(a ^ b) 输出结果 49 ,二进制解释:0011 0001

~

按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1

(~a ) 输出结果 -61 ,二进制解释:1100 0011, 在一个有符号二进制数的补码形式。

<<

左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。

a << 2 输出结果 240 ,二进制解释: 1111 0000

>>

右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数

a >> 2 输出结果 15 ,二进制解释: 0000 1111

逻辑运算

在python中,0是False,非0是True:

if 2:
    print('2 is True!')
if 0:
    print('0 is True!')
else:
    print('0 is False!')
if -1:
    print('-1 is True!')
if 1.1:
    print('1.1 is True!')
if 1+2j:
    print('1+2j is True!')
else:
    print('1+2j is False!')
if 0.0:
    print('0.0 is True!')
else:
    print('0.0 is False!’)
if 1 and 1.1:
    print('1 and 1.1is True!')

‘’'
2 is True!
0 is False!
-1 is True!
1.1 is True!
1+2j is True!
0.0 is False!
1 and 1.1is True!
‘''

数值可以直接进行逻辑运算 

运算符

逻辑表达式

描述

实例

and

x and y

布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。

(a and b) 返回 20。

or

x or y

布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。

(a or b) 返回 10。

not

not x

布尔"非" - 如果 x 为 True,返回False 。如果 x 为 False,它返回True。

not(a and b) 返回 False

运算符优先级

算符

描述

(expressions...),

[expressions...], {key: value...}, {expressions...}

圆括号的表达式

x[index], x[index:index], x(arguments...), x.attribute

读取,切片,调用,属性引用

await x

await 表达式

**

乘方(指数)

+x, -x, ~x

正,负,按位非 NOT

*, @, /, //, %

乘,矩阵乘,除,整除,取余

+, -

加和减

<<, >>

移位

&

按位与 AND

^

按位异或 XOR

|

按位或 OR

in,not in, is,is not, <, <=, >, >=, !=, ==

比较运算,包括成员检测和标识号检测

not x

逻辑非 NOT

and

逻辑与 AND

or

逻辑或 OR

if -- else

条件表达式

lambda

lambda 表达式

:=

赋值表达式

 

你可能感兴趣的:(python,开发语言)