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还提供了比较运算符,比较运算符会返回True
或False
:
>>> 1 < 5
True
>>> 1 > 5
False
>>> 1 <= 5
True
>>> 1 >= 5
False
>>> 5 == 5
True
>>> 5 != 5
False
True
和False
很好理解,如果比较的条件满足,就返回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'
在正常的程序开发过程中,你从来都不会执行这些二进制运算。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。