- Python編程:從入門到實(shí)踐(第3版)
- (美)埃里克·馬瑟斯
- 1425字
- 2025-05-26 17:39:31
2.4 數(shù)
在編程中,經(jīng)常使用數(shù)(number)來記錄得分,表示可視化數(shù)據(jù),存儲信息,等等。Python 根據(jù)數(shù)的用法以不同的方式處理它們。鑒于整數(shù)使用起來最簡單,下面就先來看看 Python 是如何管理它們的。
2.4.1 整數(shù)
在 Python 中,可對整數(shù)(integer)執(zhí)行加(+)減(-)乘(*)除(/)運(yùn)算。
>>> 2 + 3 5 >>> 3 - 2 1 >>> 2 * 3 6 >>> 3 / 2 1.5
在終端會話中,Python 直接返回運(yùn)算結(jié)果。Python 使用兩個乘號(**)表示乘方運(yùn)算:
>>> 3 ** 2 9 >>> 3 ** 3 27 >>> 10 ** 6 1000000
Python 還支持運(yùn)算順序,因此可以在同一個表達(dá)式中使用多種運(yùn)算。還可以使用括號來調(diào)整運(yùn)算順序,讓 Python 按你指定的順序執(zhí)行運(yùn)算,如下所示:
>>> 2 + 3*4 14 >>> (2 + 3) * 4 20
在這些示例中,空格不影響 Python 計算表達(dá)式的方式。它們旨在讓你在閱讀代碼時,能迅速確定將先執(zhí)行哪些運(yùn)算。
2.4.2 浮點(diǎn)數(shù)
Python 將帶小數(shù)點(diǎn)的數(shù)稱為浮點(diǎn)數(shù)(float)。大多數(shù)編程語言使用了這個術(shù)語,它指出了這樣一個事實(shí):小數(shù)點(diǎn)可出現(xiàn)在數(shù)的任何位置上。每種編程語言都必須細(xì)心設(shè)計,以妥善地處理浮點(diǎn)數(shù),確保不管小數(shù)點(diǎn)出現(xiàn)在什么位置上,數(shù)的運(yùn)算都是正確的。
從很大程度上說,使用浮點(diǎn)數(shù)時無須考慮其行為。你只需輸入要使用的數(shù),Python 通常會按你期望的方式處理它們:
>>> 0.1 + 0.1 0.2 >>> 0.2 + 0.2 0.4 >>> 2 * 0.1 0.2 >>> 2 * 0.2 0.4
需要注意的是,結(jié)果包含的小數(shù)位數(shù)可能是不確定的:
>>> 0.2 + 0.1 0.30000000000000004 >>> 3 * 0.1 0.30000000000000004
所有編程語言都存在這種問題,沒有什么可擔(dān)心的。Python 會盡力找到一種精確地表示結(jié)果的方式,但鑒于計算機(jī)內(nèi)部表示數(shù)字的方式,這在有些情況下很難。就現(xiàn)在而言,暫時忽略多余的小數(shù)位數(shù)即可。在本書第二部分的項目中,你將在需要時學(xué)習(xí)處理多余小數(shù)位的方式。
2.4.3 整數(shù)和浮點(diǎn)數(shù)
將任意兩個數(shù)相除,結(jié)果總是浮點(diǎn)數(shù),即便這兩個數(shù)都是整數(shù)且能整除:
>>> 4/2 2.0
在其他任何運(yùn)算中,如果一個操作數(shù)是整數(shù),另一個操作數(shù)是浮點(diǎn)數(shù),結(jié)果也總是浮點(diǎn)數(shù):
>>> 1 + 2.0 3.0 >>> 2 * 3.0 6.0 >>> 3.0 ** 2 9.0
在 Python 中,無論是哪種運(yùn)算,只要有操作數(shù)是浮點(diǎn)數(shù),默認(rèn)得到的就總是浮點(diǎn)數(shù),即便結(jié)果原本為整數(shù)。
2.4.4 數(shù)中的下劃線
在書寫很大的數(shù)時,可使用下劃線將其中的位分組,使其更清晰易讀:
>>> universe_age = 14_000_000_000
當(dāng)你打印這種使用下劃線定義的數(shù)字時,Python 不會打印其中的下劃線:
>>> print(universe_age) 14000000000
這是因為在存儲這種數(shù)時,Python 會忽略其中的下劃線。在對數(shù)字位分組時,即便不是將每三位分成一組,也不會影響最終的值。在 Python 看來,1000 與 1_000 沒什么不同,1_000 與 10_00 也沒什么不同。這種表示法既適用于整數(shù),也適用于浮點(diǎn)數(shù)。
2.4.5 同時給多個變量賦值
可在一行代碼中給多個變量賦值,這有助于縮短程序并提高其可讀性。這種做法最常用于將一系列數(shù)賦給一組變量。
例如,下面演示了如何將變量 x、y 和 z 都初始化為零:
>>> x, y, z = 0, 0, 0
在這樣做時,需要用逗號將變量名分開;對于要賦給變量的值,也需要做同樣的處理。Python 將按順序?qū)⒚總€值賦給對應(yīng)的變量。只要變量數(shù)和值的個數(shù)相同,Python 就能正確地將變量和值關(guān)聯(lián)起來。
2.4.6 常量
常量(constant)是在程序的整個生命周期內(nèi)都保持不變的變量。Python 沒有內(nèi)置的常量類型,但 Python 程序員會使用全大寫字母來指出應(yīng)將某個變量視為常量,其值應(yīng)始終不變:
MAX_CONNECTIONS = 5000
在代碼中,要指出應(yīng)將特定的變量視為常量,可將其變量名全大寫。
動手試一試
練習(xí) 2.9:數(shù)字 8 編寫 4 個表達(dá)式,分別使用加法、減法、乘法和除法運(yùn)算,但結(jié)果都是數(shù)字 8。為了使用函數(shù)調(diào)用 print() 來顯示結(jié)果,務(wù)必將這些表達(dá)式用括號括起來。也就是說,你應(yīng)該編寫 4 行類似于這樣的代碼:
print(5+3)
輸出應(yīng)為 4 行,其中每行都只包含數(shù)字 8。
練習(xí) 2.10:最喜歡的數(shù) 用一個變量來表示你最喜歡的數(shù),再使用這個變量創(chuàng)建一條消息,指出你最喜歡的數(shù)是什么,然后將這條消息打印出來。
- 企業(yè)級Java EE架構(gòu)設(shè)計精深實(shí)踐
- Java面向?qū)ο筌浖_發(fā)
- 云原生Spring實(shí)戰(zhàn)
- Learn Programming in Python with Cody Jackson
- Julia Cookbook
- 深入淺出RxJS
- OpenStack Orchestration
- 深入理解Android:Wi-Fi、NFC和GPS卷
- 批調(diào)度與網(wǎng)絡(luò)問題的組合算法
- 微服務(wù)架構(gòu)深度解析:原理、實(shí)踐與進(jìn)階
- Mastering Web Application Development with AngularJS
- 金融商業(yè)數(shù)據(jù)分析:基于Python和SAS
- 從零開始學(xué)算法:基于Python
- Getting Started with the Lazarus IDE
- Kotlin入門與實(shí)戰(zhàn)