Python内置了整数、复数、浮点数三种数字类型。

整数

整数是没有小数部分的数值,与数学上的一样:

>>> 1
1

整数没有大小限制,只要你的内存足够大,就可以创建任意大小的整数:

>>> 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

除了十进制外,Python还允许你使用二进制、八进制和十六进制创建整数:

#二进制:
>>> 0b10
2
>>> 0B10
2
#八进制:
>>> 0o10
8
>>> 0O10
8
#十六进制:
>>> 0x10
16
>>> 0X10
16

如果你不明白什么是进制,可以去查阅其他资料,或者直接略过就好了。

浮点数

浮点数是带有小数部分的数值,类似于数学上的小数:

>>> 1.1
1.1

如果你要创建的浮点数的小数部分或整数部分是0,那么可以省略不写,Python会自动帮你填上:

>>> .1
0.1
>>> 1.
1.0

与整数不同的是,浮点数的有效长度只有17位,对于超出的部分,Python会进行四舍五入操作:

>>> 1111.1111111111111111111111111111111111111
1111.111111111111
>>> 1111.8888888888888888888888888888888888888
1111.888888888889

需要注意的是,浮点数的运算不精确,请尽量避免使用浮点数进行运算:

>>> 1.75 * 2.3
4.0249999999999995

正数与负数

Python的正负数与数学中的完全一样,使用-创建负数,+显式的创建正数:

>>> 1
1
>>> +1
1
>>> -1
-1
>>> -(-1)
1

算数运算符

Python提供了一些基本的算数运算符,你可以通过这些运算符进行算数运算:

>>> 5 + 1
6
>>> 5 - 1
4
>>> 5 * 2
10
>>> 5 / 2
2.5
>>> 5 // 2
2
>>> 5 % 2
1
>>> 5 ** 2
25

需要注意除法操作,/我们称作真除法,对于真除操作,Python始终会得到浮点数:

>>> 1 / 2
0.5
>>> 1 / 1
1.0

//我们称作整除,对于整除操作,如果有小数部分的话,Python会省略小数向下取整:

>>> 5 // 2
2
>>> 5.0 // 2.0
2.0

如果算数表达式内同时包含整数与浮点数,最终结果永远都是浮点数:

>>> 1 + 1.0
2.0
>>> 4 // 2.0
2.0
>>> 4 // 2
2

比较运算符

除了算数运算符外,Python还提供了比较运算符,比较运算符会返回TrueFalse

>>> 1 < 5
True
>>> 1 > 5
False
>>> 1 <= 5
True
>>> 1 >= 5
False
>>> 5 == 5
True
>>> 5 != 5
False

TrueFalse很好理解,如果比较的条件满足,就返回True,否则返回False

按位运算符

对于整数,可以执行底层的二进制运算,位运算符就是用来干这个的:

>>> 6 & 4
4
>>> 6 | 4
6
>>> ~6
-7
>>> 6 ^ 4
2
>>> 6 << 2
24
>>> 24 >> 2
6

使用二进制编写表达式,并将结果显示为二进制,运算法则就更清晰了:

>>> bin(0b110 & 0b100)
'0b100'
>>> bin(0b110 | 0b100)
'0b110'
>>> bin(~0b110)
'-0b111'
>>> bin(0b110 ^ 0b100)
'0b10'
>>> bin(0b110 << 2)
'0b11000'
>>> bin(0b11000 >> 2)
'0b110'

在正常的程序开发过程中,你从来都不会执行这些二进制运算。


韩晓萌
249 声望1 粉丝

Linuxer and Programer.