python3之數字 python的數字型別

2021-06-01 11:51:51 字數 3471 閱讀 9529

python3之數字(python的數字型別)

----------

在python中,

數字並不是乙個真正的物件型別,而是一組類似型別的分類。python不僅支援通常的數字型別(整數和浮點數),而且能夠通過常量直接建立數字以及處理數字表示式。此外,python為更高階的工作提供了很多高階數字程式設計支援和物件。

python數字型別的完整工具包括:

1.整數和浮點數

2.複數

3.固定精度的十進位制數

4.有理分數

5.集合

6.布林型別

7.無窮的整數數度

8.各種數字內建函式和模組

數字常量

下表展示了python數字型別在程式中的顯示方式(作為常量),如例:

數字常量

1234,-24,0,999999999999

整數(無窮大小)

1.23,1.,3.14e-10,4e210,4.0e+210

浮點數0177,0x9ff,0b101010

python2.6中的八進位制、十六進製制和二進位制常量

0o177,0x9ff,0b101010

python3.0中的八進位制、十六進製制和二進位制常量

3+4j,3.0+4.0j,3j

複數常量

a.整數和浮點數常量

整數以十進位制數字的字串寫法出現,浮點數帶乙個小數點,也可以加上乙個科學計數標誌e或者e。如果編寫乙個帶有小數點或冪的數字,python會將它變成乙個浮點數物件,並且當這個物件用在表示式中時,將啟用浮點數(而不是整數)的運算法則。

b.python2.6中的整數:一般整數和長整數

python2.6中有兩種整數型別:一般整數(32位)和長整數(無窮精度),並且乙個整數可以以l或者l結尾,從而強迫其成為長整數。由於當整數的值超過32位的時候會自動轉換為長整數,我們不需要自己輸入字母l,當需要額外的精度的時候,python會自動地轉換為整數。

c.python3.0中的整數:乙個單獨的型別

在python3.0中,一般整數和長整數型別已經合二為一了,只有整數這一種,它自動地支援python2.6的單獨的長整數型別所擁有的無窮精度。因此,整數在程式中不再用末尾的l或l表示,並且整數也不再會顯示出這個字元。

d.十六進製制數、八進位制數和二進位制數

整數可以編寫為十進位制(以10為基數)、十六進製制數(以16為基數)、八進位制數(以8為基數)和二進位制數(以二為基數)形式。十六進製制數以0x或0x開頭,後面接十六進製制的數字0~9和a~f。十六進製制的數字編寫成大寫或小寫都可以。八進位制數常量以數字0o或0o開頭(0和小寫或大寫的字母「o」),後面接著數字0~7構成的字串。在python2.6及更早的版本中,八進位制常量也可以寫成前面只有乙個0的形式,但在python3.0中不能這樣。python2.6和python3.0中的新的二進位制常量,以0b或0b開頭,後面跟著二進位制數字0~1。注意:內建函式hex(i)、oct(i)和bin(i)把乙個整數轉為這3種進製表示的字串,並且int(str,base)根據每個給定的進製把乙個執行時字串轉換為乙個整數。

e.複數

python的複數常量寫成實部+虛部的寫法,這裡虛部是以j或j結尾。其中,實部從技術上講可有可無,所以可能會單獨表示虛部。從內部看來,複數都是通過一對浮點數來表示的,但是對複數的所有的數字操作都會按照複數的運算法則進行。

f.編寫其他的數字型別

還有一些上面例子中沒有包含的基他的、更高階的數字型別。其中的一些通過呼叫匯入的模組中的函式來建立,其它的一些擁有它們自己的常量語法(例如,集合)。

內建的數學工具和擴充套件

python還提供了一系列處理數字物件的工具:

表示式操作符,如:+、-、*、/、>>、**、&等。

內建數學函式, pow、abs、round、int、hex、bin等。

公用模組,random、math等。

python表示式操作符

操作符描述

yield x

生成器函式傳送協議

lambda args: expression

生成匿名函式

x if y else z

三元選擇表示式

x or y

邏輯或(只有x為假,才會計算y)

x and y

邏輯與(只有x為真,才會計算y)

not x

邏輯非x in y, x not in y

成員關係(可迭代物件、集合)

x is y, x is not y

物件實體測試

xy,x>=y,x==y,x!=y

大小比較,集合子集和超集相等性操作符

x|y 

位或、集合並集

x^y位異或,集合對稱差

x&y位與,集合交集

x<>y

左移或右移y位

x+y,x-y

加法/合併,減法,集合差集

x*y,x%y,x/y,x//y

乘法/重複,餘數/格式化,除法:真除法或floor除法

-x,+x

一元減法,識別

~x按位求補(取反)

x**y

冪運算x[i]

索引(序列、對映及其他)點號取屬性運算,函式呼叫

x[i:j:k]

分片x(...)

呼叫(函式、方法、類及其他可呼叫的)

x.attr

屬性引用

(...)

無組,表示式,生成器表示式

[...] 

列表,列表解析

字典、集合、集合和字典解析

混合操作所遵循的操作符優先順序

當編寫含有乙個操作符以上的表示式時,python將按照所謂的優先順序法則對其進行分組,這個分組決定了表示式中各部分的計算順序。上表的順序是根據操作符的優先順序來排列的:

a.上表中,操作符

在表中越靠後的優先順序越高,因此在混合表示式中要更加小心。

b.上表中,位於同一行的表示式在組合的時候通常

從左到右組合(除了冪運算,它是從右到左組合的,還有比較運算,是從左到右連線的)

括號分組的子表示式

如果用括號將表示式各部分進行分組的話,就可以完全忘掉優先順序的事情了。當

使用括號劃分子表示式的時候,就會超越python的優先順序規則。python總會先行計算括號中的表示式,然後再將結果用在整個表示式中。如:(x+y)*z , x+(y*z)

混合型別自動公升級

除了在表示式中混合操作符以外,

也能夠混合數字的型別。例如,可以把乙個整數與乙個浮點數相加:40+3.14

但是這將引出另乙個問題:它們的結果是什麼型別?是整數還是浮點數?答案很簡單:

在混合型別的表示式中,python首先將被操作的物件轉換成其中最複雜的操作物件的型,然後再對相同型別的操作物件進行數**算。python是這樣劃分數字型別的複雜度的:整數比浮點數簡單,浮點數比複數簡單。所以當乙個整數與浮點數混合時,整數首先會公升級轉為浮點數的值,之後通過浮點數的運算法則得到浮點數的結果。再者,要記住所有這些混合型別轉換僅僅在將數字型別(例如,乙個整數和乙個浮點數)混合到乙個表示式中的時候才適用,這包括那些使用數字和比較操作符的表示式。

python3菜鳥教程100例 Python3

python3 字典 字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 鍵必須是唯一的,但值則不必。值可以取任何資料型別,但鍵必須是不可變的,如字串,數字。乙個簡單的字典例項 也可如此建...

python3編譯安裝 編譯安裝Python 3

目前python最新版為python 3,以下是編譯安裝python 3.7.0的方法,根據提示一行乙個命令輸入即可 安裝依賴 yum y install wget gcc gcc c libffi devel zlib devel wget 解壓tar xvjf python 3.7.0.tar....

python3經典例題 經典例題 Python

python python開發 python語言 經典例題 python 經典例題 if巢狀 1.使用者輸入賬號 2.使用者輸入密碼 3.判斷使用者的賬號是不是alex 4.如果賬號是alex在繼續判斷密碼是不是alexdsb 5.賬號和密碼都正確提示使用者alex就是乙個dsb 6.如果賬號正確密...