日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python语言整数类型-Python 的内置数值类型

發(fā)布時(shí)間:2023/12/10 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python语言整数类型-Python 的内置数值类型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python 是一種敏捷的、動(dòng)態(tài)類型化的、極富表現(xiàn)力的開(kāi)源編程語(yǔ)言,可以被自由地安裝到多種平臺(tái)上。Python 代碼是被解釋的。如果您對(duì)編輯、構(gòu)建和執(zhí)行循環(huán)較為熟悉,則 Python 代碼對(duì)您來(lái)說(shuō)更簡(jiǎn)單。但是,請(qǐng)不要搞錯(cuò):Python 器可以是簡(jiǎn)單的腳本,也可以是大型的復(fù)雜程序。事實(shí)上,Python 解釋器的最大特點(diǎn)是鼓勵(lì)探索和簡(jiǎn)化學(xué)習(xí)過(guò)程。如果您想證明這一點(diǎn),請(qǐng)使用 Python 編寫著名的 Hello World! 程序:

啟動(dòng) Python 解釋器。在 UNIX 系統(tǒng)(包括 Mac OS X)中,啟動(dòng)解釋器通常包括在命令提示行鍵入 python;在 Microsoft? Windows? 系統(tǒng)中,啟動(dòng) Python 命令 shell。

在 Python 提示行中,在三個(gè)大于號(hào) (>>>) 標(biāo)志后輸入 print Hello World!,然后按 Enter。

完成:沒(méi)有第三步了。清單 1 顯示了此命令的輸出。

清單 1. 用 Python 編寫的 “Hello World” 的輸出

rb% python

Python 2.4 (#1, Mar 29 2005, 12:05:39)

[GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> print "Hello World!"

Hello World!Show moreShow more icon

您可以看到,我使用的是運(yùn)行于 Apple OS X 系統(tǒng)上的 Python V2.4。但是,不管操作系統(tǒng)是什么,基本原理都是一樣的,而且在本例中,所用的是 Python 的哪一個(gè)實(shí)際版本也無(wú)所謂。我雖然不了解您,但是此 Hello World! 練習(xí)比我學(xué)過(guò)的 C、C++ 甚至 Java? 語(yǔ)言的對(duì)應(yīng)練習(xí)容易多了。這種簡(jiǎn)單性就是使用 Python 解釋器的主要優(yōu)點(diǎn)之一。開(kāi)發(fā)人員可以快速試驗(yàn)一個(gè)想法、研究一種對(duì)象屬性或不同算法,而無(wú)需編譯、執(zhí)行和測(cè)試任何代碼。

Python 類型層次結(jié)構(gòu)

從其他語(yǔ)言過(guò)渡到 Python 編程語(yǔ)言時(shí)需要學(xué)習(xí)的最重要的課程之一是,Python 中的每樣?xùn)|西都是對(duì)象。這一點(diǎn)可能并沒(méi)有什么特別之處,尤其是對(duì)于熟悉面向?qū)ο蟮恼Z(yǔ)言(如 C++、Java 或 C#)的人來(lái)說(shuō)。然而,Python 的面向?qū)ο笤砼c其他語(yǔ)言不同,主要表現(xiàn)在兩個(gè)方面:第一,Python 中的所有數(shù)據(jù)值都被封裝在相關(guān)對(duì)象類中。第二,Python 程序中的所有東西都是可以從程序訪問(wèn)的對(duì)象,即使是您編寫的代碼也不例外。

大多數(shù)流行的編程語(yǔ)言都有多個(gè)內(nèi)置的數(shù)據(jù)類型,在這一方面 Python 也一樣。例如,C 編程語(yǔ)言具有整型和浮點(diǎn)類型。由于譜系相同,Java 語(yǔ)言和 C# 具有內(nèi)置類型也不足為奇。這意味著在 C 程序中,可以編寫 int i = 100 來(lái)創(chuàng)建和初始化整型變量。在 Java 和 C# 中,此方法也是可能的,而且使用它們的自動(dòng)裝箱功能,在需要時(shí)這兩種語(yǔ)言還可以把這種簡(jiǎn)單的內(nèi)置類型轉(zhuǎn)換為 Integer 對(duì)象。

另一方面,Python 不包含像 int 這樣的簡(jiǎn)單類型 —— 只有對(duì)象類型。如果 Python 中需要整數(shù)值,將整數(shù)賦值給相應(yīng)變量(如 i = 100 )即可。在后臺(tái),Python 將創(chuàng)建一個(gè)整數(shù)對(duì)象,并將對(duì)新對(duì)象的引用賦值給變量。問(wèn)題的關(guān)鍵是:Python 是一種動(dòng)態(tài)類型化語(yǔ)言,所以無(wú)需聲明變量類型。事實(shí)上在單個(gè)程序中,變量的類型是可以改變(多次)的。

一種直觀演示動(dòng)態(tài)類型化工作方式的簡(jiǎn)單方法是,設(shè)想單個(gè)名為 PyObject 的基類,讓 Python 中的所有其他對(duì)象類型都繼承它。在這一模型中,您創(chuàng)建的所有變量都將引用在總的類層次結(jié)構(gòu)中創(chuàng)建的對(duì)象。如果您還讓 PyObject 類記錄曾創(chuàng)建并分配給變量的子類的實(shí)際 類型 或名稱,則 Python 程序可正確確定程序執(zhí)行過(guò)程中需要采取的步驟。

上一段描述 Python 的面向?qū)ο蟮哪P蛨D像是對(duì) Python 的實(shí)際工作方式很好的模擬。除此之外,Python 還可以使用類型函數(shù)來(lái)簡(jiǎn)化對(duì)變量類型的確定。(本例還介紹如何使用帶有 # 字符的內(nèi)聯(lián)注釋。)

清單 2. 演示 Python 簡(jiǎn)單類型

>>> i = 100 # Create an int object whose value is 100

>>> type(i)

>>> f = 100.0

>>> type(f)

Show moreShow more icon

可以將 PyObject 類之下的所有 Python 類劃分為 Python 運(yùn)行時(shí)解釋器可以使用的四個(gè)主要類別:

簡(jiǎn)單類型 —— 基本構(gòu)建塊,如 int 和 float 。

容器類型 —— 保存其他對(duì)象。

代碼類型 —— 封裝 Python 程序的元素。

內(nèi)部類型 —— 程序執(zhí)行期間使用的類型。

到本系列結(jié)束時(shí),我會(huì)把所有不同類別都介紹給大家。但是在這第一篇文章中,我重點(diǎn)介紹簡(jiǎn)單類型。

簡(jiǎn)單類型

Python 有五個(gè)內(nèi)置的簡(jiǎn)單類型: bool 、 int 、 long 、 float 和 complex 。這些類型是不可變的,就是說(shuō)整數(shù)對(duì)象一旦創(chuàng)建,其值便不可更改。相反,系統(tǒng)將創(chuàng)建新的簡(jiǎn)單類型對(duì)象并將其賦值給變量。通過(guò) Python id 函數(shù),可以查看基本 PyObject 標(biāo)識(shí)的變更方式:

清單 3. 使用 Python id 函數(shù)

>>> i = 100

>>> id(i)

8403284

>>> i = 101

>>> id(i)

8403296Show moreShow more icon

此方法看似容易丟失對(duì)象,會(huì)導(dǎo)致內(nèi)存泄漏。但是,Python 像 C# 和 Java 一樣,使用了垃圾回收功能,以釋放用于保存不再引用的對(duì)象的內(nèi)存,如上例中用于保存 100 的整數(shù)對(duì)象。

布爾類型

Python 中最簡(jiǎn)單的內(nèi)置類型是 bool 類型,該類型包括的對(duì)象僅可能為 True 或 False :

清單 4. bool 類型

>>> b = True

>>> type(b)

>>> id(b)

1041552Show moreShow more icon

因?yàn)橹挥袃蓚€(gè)可能值,所以布爾類型是惟一的。Python 解釋器提供這僅有的(也是必需的)兩個(gè) bool 對(duì)象: True 和 False 。在任何時(shí)候,在 Python 程序需要這些對(duì)象時(shí),變量只能相應(yīng)地引用其中一個(gè)值。清單 5 顯示 bb 變量如何具有同一個(gè) id ,不管您直接賦予它 b 變量的值還是直接賦予它 True 對(duì)象。

清單 5. bb 變量的值

>>> b = True

>>> id(b)

1041552

>>> bb = b

>>> id(bb)

1041552

>>> bb = True

>>> id(bb)

1041552Show moreShow more icon

布爾對(duì)象名稱的大小寫是至關(guān)重要的,因?yàn)?true(和 false)是未定義的:

清單 6. 未定義的 true 和 false

>>> b = true

Traceback (most recent call last):

File "", line 1, in ?

NameError: name "true" is not definedShow moreShow more icon

在這一點(diǎn)上, bool 類型可能看起來(lái)不是很有用。不過(guò)顧名思義,布爾表達(dá)式是依賴于名稱的,如下所示:

清單 7. 布爾表達(dá)式

>>> b = 100 < 101

>>> print b

TrueShow moreShow more icon

很多程序利用布爾表達(dá)式,Python 提供一整套布爾比較和邏輯運(yùn)算,詳細(xì)信息請(qǐng)分別參見(jiàn)表 1 和表 2。

表 1. Python 中的布爾比較運(yùn)算符

運(yùn)算符

描述

示例<

小于

i < 100

<=

小于等于

i <= 100

>

大于

i > 100

>=

大于等于

i >= 100

==

相等

i == 100

!=

不相等(另外使用 <>)

i != 100

補(bǔ)充一點(diǎn),表 1 中列出的運(yùn)算符優(yōu)先級(jí)都一樣,除非將表達(dá)式置于括號(hào)中,否則按從左到右的順序應(yīng)用。

表 2. Python 中的邏輯運(yùn)算符

運(yùn)算符

描述

示例not

邏輯非

not b

and

邏輯與

(i <= 100) and (b == True)

or

邏輯或

(i < 100) or (f > 100.1)

邏輯運(yùn)算符的優(yōu)先級(jí)低于單獨(dú)的比較運(yùn)算符,這一點(diǎn)意義重大,因?yàn)楸仨毾扔?jì)算比較運(yùn)算符,然后才能計(jì)算邏輯運(yùn)算符。邏輯運(yùn)算符的實(shí)際優(yōu)先級(jí)就是表 2 中羅列這些運(yùn)算符的順序。

在 Python 中,關(guān)于 or 和 and 邏輯運(yùn)算符有意思的是,它們都是快捷運(yùn)算符。簡(jiǎn)言之,如果給定表達(dá)式 x or y ,則僅當(dāng) x 為 False 時(shí)才會(huì)計(jì)算 y 。同樣地,如果給定表達(dá)式 x and y ,則僅當(dāng) x 為 True 時(shí),才會(huì)計(jì)算 y 。此功能可以增強(qiáng)表達(dá)式求值的性能(尤其是針對(duì)長(zhǎng)的或復(fù)雜的表達(dá)式),然而對(duì)于習(xí)慣于從其他語(yǔ)言學(xué)來(lái)的不同規(guī)則的程序員而言,則容易犯錯(cuò)。

數(shù)值類型

Python 中其他四個(gè)簡(jiǎn)單的內(nèi)置類型都是數(shù)值類型: int 、 long 、 float 和 complex 。在程序中,數(shù)值類型很常見(jiàn),不管使用的是什么語(yǔ)言。Python 對(duì)算術(shù)運(yùn)算提供完整支持,包括加法、減法、乘法和除法(參見(jiàn)表 3)。

表 3. Python 中的算術(shù)運(yùn)算

運(yùn)算符

描述

示例*

i * 100

/

i / 100

//

整除

i // 100

%

取余

f % 100

+

i + 100

i - 100

乘法和除法運(yùn)算符(表 3 中列出的前四個(gè))具有高于加法和減法的優(yōu)先級(jí)。如前所述,您可以通過(guò)使用括號(hào)分組子表達(dá)式,將其分離出來(lái)以提高優(yōu)先級(jí)。

Python 與 Java 語(yǔ)言不同,Java 語(yǔ)言通常定義允許的數(shù)值類型的范圍,而 Python 在這一點(diǎn)上更像 C,因?yàn)樗念愋头秶且蕾囉谄脚_(tái)的。您可以使用 int 和 long 兩種類型來(lái)保存整數(shù)值,它們的不同點(diǎn)在于 int 是一種 32 位的整數(shù)值。因而,它被限制為只能保存從 -232到 232– 1 之間的值(在多數(shù)平臺(tái)上)。與此相反,長(zhǎng)整數(shù)類型的精度不受限,僅計(jì)算機(jī)內(nèi)存對(duì)它有影響。要通知 Python 應(yīng)該按照長(zhǎng)類型處理整數(shù),只需將 L 附加到數(shù)字的末尾,如 100L 。在 Python 中,浮點(diǎn)值始終是按雙精度處理的;因此 Python 的 float 類型對(duì)應(yīng)于 C 類語(yǔ)言中的雙精度。

與數(shù)值類型相關(guān)的其他兩個(gè)重點(diǎn)是常量(如上例中的 100,只是明確表達(dá)的數(shù)字)和位運(yùn)算。程序員一般在十進(jìn)制系統(tǒng)(以 10 為基數(shù))中工作。但是,有時(shí)其他系統(tǒng)也相當(dāng)有用,尤其是我們知道計(jì)算機(jī)是基于二進(jìn)制的。Python 可以提供對(duì)八進(jìn)制(以 8 為基數(shù))和十六進(jìn)制(以 16 為基數(shù))數(shù)字的支持。要通知 Python 應(yīng)該按八進(jìn)制數(shù)字常量處理數(shù)字,只需將零附加在前面。將一個(gè)零加上一個(gè) x 附加在數(shù)字的前面是告訴 Python 按十六進(jìn)制數(shù)值常量處理數(shù)字,如以下代碼所示:

清單 8. 通知 Python 按十六進(jìn)制數(shù)值常量處理數(shù)字

>>> print 127 # Using decimal literal

127

>>> print 0177 # Using octal literal

127

>>> print 0x7F # Using hexadecimal literal

127Show moreShow more icon

當(dāng)您具有容易的方式來(lái)表達(dá)數(shù)值常量時(shí),尤其是十六進(jìn)制,就可以容易地構(gòu)建對(duì)應(yīng)于特定測(cè)試用例的標(biāo)志,這是一種常見(jiàn)的編程技術(shù)。例如,一個(gè) 32 位的整數(shù)可以存儲(chǔ) 32 個(gè)標(biāo)志值。使用位測(cè)試,可以容易地測(cè)試標(biāo)志變量上的特定標(biāo)志。Python 中位運(yùn)算的完整列表如表 4 所示。

表 4. Python 中的位運(yùn)算

運(yùn)算符

描述

示例~

按位求補(bǔ)

~b

<<

向左位移

b << 1

>>

向右位移

b >> 1

&

按位和

b & 0x01

^

按位異或

b ^ 0x01

按位或

b

0x01

至此,您可能想知道不同數(shù)值類型在單個(gè)表達(dá)式中混合出現(xiàn)的時(shí)候怎么辦。簡(jiǎn)單的答復(fù)是,Python 會(huì)根據(jù)需要將表達(dá)式中的所有操作數(shù)轉(zhuǎn)換為最復(fù)雜的操作數(shù)的類型。復(fù)雜度的順序是: int、long、 float和complex`(非雙關(guān)),下面是一個(gè)簡(jiǎn)單的示例:

清單 9. Python 將所有操作數(shù)轉(zhuǎn)換為最復(fù)雜的操作數(shù)

>>> 1 / 3

0

>>> 1.0 / 3

0.33333333333333331

>>> 1.0 // 3

0.0

>>> 1 % 3

1

>>> 1.0 % 3

1.0Show moreShow more icon

盡管 Python 會(huì)與您預(yù)期的一樣轉(zhuǎn)換操作數(shù),但是語(yǔ)言并不基于運(yùn)算符轉(zhuǎn)換操作數(shù),如 1/3 示例中所示,其計(jì)算結(jié)果為整數(shù)。如果要強(qiáng)制取得浮點(diǎn)結(jié)果,則必須確保操作數(shù)中至少有一個(gè)為浮點(diǎn)類型。

complex 類型

最后一種類型 complex 可能是大多數(shù)程序員難以識(shí)別的,因?yàn)樗皇瞧渌幊陶Z(yǔ)言中常見(jiàn)的內(nèi)置數(shù)據(jù)類型。而對(duì)于工程師和科學(xué)家來(lái)說(shuō),復(fù)數(shù)卻是個(gè)司空見(jiàn)慣的概念。從形式上講, 復(fù)數(shù) 具有實(shí)部和虛部?jī)蓚€(gè)部分,都由 Python 中的 float 類型來(lái)表示。 虛數(shù) 是 -1 的平方根的倍數(shù),用 i 或 j 表示 —— 取決于您被培養(yǎng)為科學(xué)家還是工程師。在 Python 中,復(fù)數(shù)的虛部被表示為 j :

清單 10. 復(fù)數(shù)的虛部

>>> c = 3.0 + 1.2j

>>> print c

(3+1.2j)

>>> print c.real, c.imag

3.0 1.2Show moreShow more icon

本例是一個(gè)實(shí)部為 3.0 和虛部為 1.2 的復(fù)數(shù)。注意,通過(guò)使用復(fù)雜對(duì)象的 real 和 imag 屬性,即可訪問(wèn)復(fù)數(shù)的不同部分。

它們真是對(duì)象嗎?

到此為止,我已經(jīng)介紹了 Python 只處理對(duì)象類型,然而示例中好像并沒(méi)有什么對(duì)象。最后還有一個(gè)問(wèn)題,構(gòu)造函數(shù)在哪里?對(duì)于簡(jiǎn)單的內(nèi)置數(shù)據(jù)類型,Python 替您做了大量的工作。不過(guò),構(gòu)造函數(shù)還在那里(其名稱與相關(guān)數(shù)據(jù)類型的名稱相同),如果您愿意,可以直接使用它們,如下所示:

清單 11. Python 構(gòu)造函數(shù)

>>> b = bool(True)

>>> i = int(100)

>>> l = long(100)

>>> f = float(100.1)

>>> c = complex(3.0, 1.2)

>>> print b, i, l, f, c

True 100 100 100.1 (3+1.2j)Show moreShow more icon

結(jié)束語(yǔ)

Python 是一種無(wú)比簡(jiǎn)單又功能強(qiáng)大的語(yǔ)言。入門極其容易,尤其是對(duì)于已經(jīng)具有 C 類語(yǔ)言的經(jīng)驗(yàn)的程序員來(lái)說(shuō)。本文簡(jiǎn)單介紹了 Python 編程語(yǔ)言和內(nèi)置數(shù)據(jù)類型: bool 、 int 、 long 、 float 和 complex 。如果您尚未理解,則請(qǐng)啟動(dòng)一個(gè) Python 解釋器,并嘗試按照我上面討論的方法操作。您將會(huì)很高興,我做到的您也可以做到。

總結(jié)

以上是生活随笔為你收集整理的python语言整数类型-Python 的内置数值类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。