數字常量 int: 一般的整數, long: 長整型,2.x版本需在數字後加 “L” 或 “l” ,表示長整型 如 100000000L; python3.x 版本後不分長整型,統一為int,不可加 “L” 或 “l” float: 浮點數,1.0 也為浮點數,float 可強制轉換為 int,取整 ...
數字常量
-
int: 一般的整數,
-
long: 長整型,2.x版本需在數字後加 “L” 或 “l” ,表示長整型 如 100000000L; python3.x 版本後不分長整型,統一為int,不可加 “L” 或 “l”
-
float: 浮點數,1.0 也為浮點數,float 可強制轉換為 int,取整;
print(type(1234))
print(type(-24))
print(type(0))
print(type(2147483647)) # 為int
print(type(2147483648)) # >=2^31 為long Python2.x ; Python3.x long 和 int 合併為 int
i = 1l # Python2.x 表示long,Python3 會報錯
print(i,type(i))
print(type(i))
print(type(1e+1)) # e表示法為浮點型
print(int(1e+20)) # 強制轉換為int
print(int(1e+30)) # 超長精度丟失
print(type(1.0)) # 小數表示為float
print(int(1.999)) # int()強制轉換為int 會把float取整
數字計算
加減乘數運算
a=1
b=2
c=2.0
print(a+b)
print(type(a+b))
print(a-c) # 輸出 -1.0
print(type(a+c)) # 有浮點型加入,即自動轉換為 float
print(a*b)
print(type(a*b)) # 兩個整數相乘,仍為整數型
print(type(a*c)) # 有浮點型加入,即自動轉換為 float
print(a/b)
print(type(a/b))
print(b/a)
print(type(b/a)) # 除法運算,即使整除,結果仍為 float 類型
備註: print(1/0) 除數為0會報錯,而不是返回 NaN;一定要 註意 除數為0時的異常判斷;如需處理 NaN,需 from decimal import *
Decimal numbers include special values such as NaN which stands for “Not a number”, positive and negative Infinity, and -0
取餘運算、指數冪運算、取絕對值、四捨五入
print(3%2) # 通常就做整數間的取餘運算
print(type(3%2))
print(type(3.0%2)) # 不建議浮點型取餘
print(2.1%2) # 雖然float也可運算取餘,但結果帶精度,此結果為0.10000000000000009
print(3**2) # ** 表示做次方運算,即冪運算
print(type(3**2)) # 整數的整數次冪仍為整數
print(2**-2)
print(type(2**-2))
print(1**-2)
print(type(1**-2)) # 負數次冪均為 float
print(4**0.5)
print(type(4**0.5)) # 非整數次冪均為 float
print(pow(2,3)) # 指數冪的另一表示法
print(abs(-1)) # 取絕對值
print(round(3.5)) # 四捨五入取整
print(round(3.49)) # 四捨五入取整
print(round(3.49,1)) # 可加一參數,表示取小數點後幾位四捨五入,如上結果為 3.5
print(round(3.04,1))
數字比較
比較運算符 == != > >= < <=
a = 1
b = 1.0
print(a==b) # 數值的比較 返回 True
進位數
2進位數以 0b 開頭表示,8進位數以 0o 開頭表示(零和小寫o),16進位數以 0x 開頭表示;bin() 會以二進位輸出形式
a = 0b11100 # 2進位數 0b 開頭
b = 0o34 # 8進位數 0o 開頭
c = 0x1c # 16進位數 0x開頭
print(a,b,c)
print(bin(2)) # bin()表示以二進位輸出
位運算
同很多語言一樣,Python的位運算符包括 << >> & | ~ ^
print(bin(0b110<<2)) # 左移2位
print(bin(0b110>>1)) # 右移1位
print(0&0,0&1,1&0,1&1) # & 與運算
print(0|0,0|1,1|0,1|1) # | 或運算
print(0^0,0^1,1^0,1^1) # ^ 異或運算
print(bin(~0b11)) # ~ 非運算,有符號數的取反
Math 模塊
複雜的數學計算需導入數學模塊,即 import math ; 僅列出 math 模塊中一些常用的常量、函數等;具體要用時參閱官方幫助文檔。
import math
print(math.e) # 數學常量e
print(math.pi) # 數學常量pi
print(math.ceil(3.00001)) # 向上取整
print(math.floor(3.99999)) # 向下取整
print(math.sqrt(9)) # 平方根 math.sqrt(x) == x**0.5 同樣返回 float 類型
print(math.exp(1)) # exp(n) math.e的n次方
print(math.log(math.e)) # 即Ln運算 即以自然常數e (2.71828......)為底數的對數
print(math.log(16,2)) # 以2為底,16的對數
print(math.log(1,10)) # 以10為底,1的對數
print(math.degrees(math.pi)) # Converts angle x from radians to degrees.
print(math.radians(60)) # Converts angle x from degrees to radians.
print(math.sin(math.radians(30))) # 精度丟失
print(math.cos(math.pi/3)) #小編創建了一個Python學習交流群:725638078
Random 模塊
random 模塊可產生多種隨機數;這裡僅介紹 randint:產生範圍內的隨機整數;若需其他隨機數方法,具體要用時參閱官方幫助文檔。
random.randint(a, b)
Return a random integer N such that a <= N <= b.
from random import randint
for i in range(1,11): # 表示做十次迴圈
print(randint(1,10)) # 輸出1到10內的任意數字