C語言中文網 目錄

Python數值類型(整形、浮點型和復數)及其用法

數值類型是計算機程序最常用的一種類型,既可用于記錄各種游戲的分數、游戲角色的生命值、傷害值等,也可記錄各種物品的價格、數量等,Python 提供了對各種數值類型的支持,如支持整型、浮點型和復數。

Python整型

Python 3 的整型支持各種整數值,不管是小的整數值,還是大的整數值,Python 都能輕松處理(不像某些語言,short、int、long 等整型增加了開發難度)。

例如如下代碼:
#定義變量a,賦值為56
a = 56
print(a)
#為a賦值一個大整數
a = 9999999999999999999999
print(a)
#type()函數用于返回變量的類型
print(type (a))

對于沒有編程基礎的讀者, 同樣可以在交互式解釋器中逐行“試驗”上面程序來觀看運行效果。由于篇幅限制,本教程后面的程序不再詳細列出在交互式解釋器中逐行“試驗”的過程;但沒有基礎的讀者依然可以按照這種方式來“玩”Python。

上面程序中粗體字代碼將 9999999999999999999999 大整數賦值給變量 a,Python 也不會發生溢出等問題,程序運行一樣正常,這就是 Python 的魅力:別搞那些亂七八糟的底層細節,非專業人士也不關心什么字節之類的細節。

使用 Python 3.x 運行上面程序,可以看到如下輸出結果:

56
9999999999999999999999
<class 'int'>

從上面的輸出結果可以看出,此時 a 依然是 int 類型。

但如果用 Python 2.x 運行上面程序,則可以看到如下輸出結果:

56
9999999999999999999999
<type 'long'>

對比兩種輸出結果,不難發現:不管是 Python 3.x 還是 Python 2.x,Python 完全可以正常處理很大的整數,只是 Python 2.x 底層會將大整數當成 long 類型處理,但開發者通常不需要理會這種細節。

Python 的整型支持 None 值(空值),例如如下代碼:

a = None
print(a)

Python 的整型數值有 4 種表示形式:
  1. 十進制形式:最普通的整數就是十進制形式的整數。
  2. 二進制形式:以 0b 或 0B 開頭的整數就是二進制形式的整數。
  3. 八進制形式:以 0o 或 0O 開頭的整數就是八進制形式的整數(第二個字母是大寫或小寫的 O)。
  4. 十六進制形式:以 0x 或 0X 開頭的整數就是十六進制形式的整數,其中 10~15 分別以 a~f( 此處的 a~f 不區分大小寫)來表示。

下面代碼片段使用了其他進制形式的數:
#以0x或0X開頭的整型數值是十六進制形式的整數
hex_value1 = 0x13
hex_value2 = 0xaF
print("hexValue1 的值為:",hex_value1)
print("hexValue2 的值為:",hex_value2)
#以0b或0B開頭的整型數值是二進制形式的整數
bin_val = 0b111
print('bin_val的值為:',bin_val)
bin_val = 0B101
print('bin_val的值為:',bin_val)
#以0o或0O開頭的整型數值是八進制形式的整數
oct_val = 0o54
print('oct_val 的值為:',oct_val)
oct_val = 0O17
print('oct_val 的值為:',oct_val)
為了提高數值(包括浮點型)的可讀性,Python 3.x 允許為數值(包括浮點型)增加下畫線作為分隔符。這些下畫線并不會影響數值本身。例如如下代碼:
#在數值中使用下畫線
one_million = 1000000
print(one_million)
price = 234_234_234 #price 實際的值為234234234
android = 12341234 #android 實際的值為12341234
注意,Python 2.x 還支持八進制形式的整數(要求以 0 開頭),但由于八進制形式的整數其實很“雞肋”,所以 Python 3.x 刪除了這個功能。此外,Python 2.x 不支持在數值中使用下畫線。

Python浮點型

浮點型數值用于保存帶小數點的數值,Python 的浮點數有兩種表示形式:
  • 十進制形式:這種形式就是平常簡單的浮點數,例如 5.12、512.0、0.512。浮點數必須包含一個小數點,否則會被當成整數類型處理。
  • 科學計數形式:例如 5.12e2(即 5.12×102)、5.12E2(也是 5.12 ×102)。

必須指出的是,只有浮點型數值才可以使用科學計數形式表示。例如 51200 是一個整型值,但 512E2 則是浮點型值。

Python 不允許除以 0 。不管是整型值還是浮點型值,Python 都不允許除以 0。

下面程序示范了上面介紹的關于浮點數的各個知識點:
af1 = 5.2345556
#輸出af1的值
print("af1的值為:",af1)
af2 = 25.2345
print("af2的類型為:",type(af2))
f1=5.12e2
print("f1的值為:",f1)
f2 = 5e3
print("f2的值為:",f2)
print("f2的類型為:",type(f2))#看到類型為float
通過最后一行粗體字代碼可以看出,雖然 5e3 的值是 5000,但它依然是浮點型值,而不是整型值,因為 Python 會自動將該數值變為 5000.0。

復數

Python 甚至可以支持復數,復數的虛部用 j 或 J 來表示。

如果讀者對虛數虛部感到困惑,請直接跳過本節,大部分編程并不會用到復數這么“高級”的數學知識。

如果需要在程序中對復數進行計算,可導入 Python 的 cmath 模塊(c 代表 complex),在該模塊下包含了各種支持復數運算的函數。

模塊就是一個 Python 程序,Python 正是通過模塊提高了自身的可擴展性的;Python 本身內置了大量模塊,此外還有大量第三方模塊,導入這些模塊即可直接使用這些程序中定義的函數。

下面程序示范了復數的用法:
ac1 = 3 + 0.2j
print (ac1)
print(type(ac1)) #輸出復數類型
ac2 = 4 - 0.1j
print(ac2)
#復數運行
print(ac1 + ac2) #輸出(7+0.1j)
#導入cmath 模塊
import cmath
#sqrt()是cmath 模塊下的商數,用于計算平方根
ac3 = cmath.sqrt(-1)
print (ac3) #輸出1j

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo