一文帶你去懂Python資料類型之數字類型
一、數字型別
數字型別用來儲存數學意義上的數值。
數字型別是不可變型別。所謂的不可變類型,指的是類型的值一旦有不同了,那麼它就是一個全新的物件。數字1和2分別代表兩個不同的對象,對變數重新賦值一個數字類型,會新建一個數字對象。
Python的變數和資料類型的關係。
變數只是對某個物件的引用或說代號、名字、呼叫等等,變數本身沒有資料型別的概念。類似1,[2, 3, 4],「haha」這一類物件才具有資料類型的概念。
例如:
a = 1 # 创建数字对象1。 a = 2 # 创建数字对象2,并将2赋值给变量a,a不再指向数字对象1
這裡,發生了變化的是變數a的指向,而不是數字物件1變成了數字對象2。初學者可能會比較迷糊,但不要緊,我們努力去明白它。 <br/>
#<br/>
二、Python 支援三種不同的數字型別(整數、浮點數和複數)
1. 整數(Int)
通常稱為整數,是正或負整數,不帶小數點。 Python3的整型可以當作Long型別(較長的整型)使用,所以 Python3沒有Python2的Long型別。
例如:1,100,-8080,0,等等。
表示數字的時候,有時我們還會用八進位或十六進位來表示:
十六進位用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2。
八進位用0o前綴和0-7表示,例如0o12。
Python的整數長度為32位,並且通常是連續分配記憶體空間的。
什么是空间地址?
空间地址(address space)表示任何一个计算机实体所占用的内存大小。比如外设、文件、服务器或者一个网络计算机。地址空间包括物理空间以及虚拟空间。
例 :
print(id(-2)) print(id(-1)) print(id(0)) print(id(1)) print(id(2))
从上面的空间地址看,地址之间正好差32。为什么会这样?
因为Python在初始化环境的时候就在内存里自动划分了一块空间,专门用于整数对象的存取。当然,这块空间也不是无限大小的,能保存的整数是有限的,所以你会看到id(0)和id(10000)之间的地址差别很大。
>>> id(0) 1456976928 >>> id(10000) 45818192
小整数对象池:<br/>
Python初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!
这是一个包含262个指向整数对象的指针数组,范围是-5到256。也就是说比如整数10,即使我们在程序里没有创建它,其实在Python后台已经悄悄为我们创建了。
验证一下小整数对象池的存在
在程序运行时,包括Python后台自己的运行环境中,会频繁使用这一范围内的整数,如果每需要一个,你就创建一个,那么无疑会增加很多开销。创建一个一直存在,永不销毁,随用随拿的小整数对象池,无疑是个比较实惠的做法。
print(id(-6)) print(id(-5)) print(id(-4)) print(id(255)) print(id(256)) print(id(257))
<br/>
从id(-6)和id(257)的地址,我们能看出小整数对象池的范围,正好是-5到256。<br/>
除了小整数对象池,Python还有整数缓冲区的概念,也就是刚被删除的整数,不会被真正立刻删除回收,而是在后台缓冲一段时间,等待下一次的可能调用。
>>> a = 1000000>>> id(a)45818160>>> del a # 删除变量a>>> b = 1000000>>> id(b)45818160
给变量a赋值了整数1000000,看了一下它的内存地址。然后我把a删了,又创建个新变量b,依然赋值为1000000,再次看下b的内存地址,和以前a存在的是一样的。<br/>
del
是Python的删除关键字,可以删除变量、函数、类等等。
这一段内容,可能感觉没什么大用,但它对于理解Python的运行机制有很大帮助。
2. 浮點數(float)
浮點數也就是小數,如1.23,3.14,-9.01,等等。但對於很大或很小的浮點數,一般用科學計數法表示,把10用e替換,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。
3. 複數( (complex))
#複數由實數部分和虛數部分構成,可以用a bj,或complex(a ,b)表示,複數的實部a和虛部b都是浮點型。關於複數,不做科學計算或其它特殊需要,通常很難遇到。
數字型別轉換:
#有時候,我們需要轉換數字的型別。 Python為我們提供了方便的內建的資料型別轉換函數。
int(x):將x轉換為一個整數。如果x是個浮點數,則截取小數部分。
float(x) :將x轉換到一個浮點數。
complex(x) :將x轉換為複數,實數部分為 x,虛數部分為 0。
complex(x, y):将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。
转换过程中如果出现无法转换的对象,则会抛出异常,比如int("haha"),你说我把字符串“haha”转换为哪个整数才对?
a = 10.53b = 23print(int(a)) print(float(a)) print(complex(a)) print(complex(a, b))
<br/>
三、math库(数学计算)
科学计算需要导入math
这个库,它包含了绝大多数我们可能需要的科学计算函数,一般常用的函数主要包括abs()、exp()、fabs()、max()、min()等,这里就不再赘述了,感兴趣的小伙伴可以自行百度下。
下面是两个常用数学常量:
常數 | 說明 |
---|---|
#數學常數pi(圓周率,一般以π來表示) |
下面是一些应用展示,注意最后的角度调用方式:
import mathprint(math.log(2)) print(math.cos(30)) print(math.cos(60))print(math.sin(30)) print(math.sin(math.degrees(30))) print(math.sin(math.radians(30)))
<br/>
四、总结
本文详细的讲解了Python基础 ( 数字类型 )。介绍了有关Python 支持三种不同的数字类型。以及在实际操作中会遇到的问题,提供了解决方案。
以上是一文帶你去懂Python資料類型之數字類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
