【Python基礎(chǔ)】5.數(shù)字,運(yùn)算,數(shù)據(jù)類型的轉(zhuǎn)換

本篇筆記知識(shí)點(diǎn):

  • 基礎(chǔ)數(shù)字類型
  • 運(yùn)算
  • 數(shù)據(jù)類型間的轉(zhuǎn)換

</br>

數(shù)字類型

Python 數(shù)字?jǐn)?shù)據(jù)類型用于存儲(chǔ)數(shù)學(xué)上的值,比如整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)等。數(shù)字類型在python中是不可變類型,意思是一個(gè)變量被賦予了一個(gè)不一樣的數(shù)值之后就不再是原來的內(nèi)存指向了,python是基于值得內(nèi)存管理機(jī)制。

數(shù)據(jù)類型是不允許改變的,這就意味著如果改變數(shù)字?jǐn)?shù)據(jù)類型的值,將重新分配內(nèi)存空間。

數(shù)字類型.png

Python 支持三種不同的數(shù)值類型:

  • 整型(Int) - 通常被稱為是整型或整數(shù),是正或負(fù)整數(shù),不帶小數(shù)點(diǎn)。Python3 整型是沒有限制大小的,可以當(dāng)作 Long 類型使用,所以 Python3 沒有 Python2 的 Long 類型。
  • 浮點(diǎn)型(float) - 浮點(diǎn)型由整數(shù)部分與小數(shù)部分組成,浮點(diǎn)型也可以使用科學(xué)計(jì)數(shù)法表示(2.5e2 = 2.5 x 102 = 250)
  • 復(fù)數(shù)( (complex)) - 復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用a + bj,或者complex(a,b)表示, 復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型。

二進(jìn)制,八進(jìn)制,十六進(jìn)制

進(jìn)制也就是進(jìn)位制。進(jìn)行加法運(yùn)算時(shí)逢X進(jìn)一(滿X進(jìn)一),進(jìn)行減法運(yùn)算時(shí)借一當(dāng)X,這就是X進(jìn)制,這種進(jìn)制也就包含X個(gè)數(shù)字,基數(shù)為X。

二進(jìn)制 Binary

二進(jìn)制以2為基數(shù),只用0和1兩個(gè)數(shù)字表示數(shù),逢2進(jìn)一。
二進(jìn)制常量用0b或0B開頭,后面跟著二進(jìn)制數(shù)字(0、1)
例,ob010101

八進(jìn)制 Octal

八進(jìn)制,就是其基數(shù)為8,基數(shù)值可以取0、1、2、3、4、5、6、7共8個(gè)值,逢八進(jìn)一。
八進(jìn)制常量以數(shù)字0o或0O開頭(0和小寫或大寫的字母“o”),后面接著數(shù)字0~7構(gòu)成的字符串。
例,0o177

十六進(jìn)制 Hexadecimal

十六進(jìn)制一ox或0X開頭,后面接十六進(jìn)制的數(shù)字0~9和A~F。十六進(jìn)制的數(shù)字編寫成大寫或小寫都可以。
例,ox9ff

各種進(jìn)制的用途
  • 2進(jìn)制,是供計(jì)算機(jī)使用的,1,0代表開和關(guān),有和無,機(jī)器只認(rèn)識(shí)2進(jìn)制。
  • 10進(jìn)制,當(dāng)然是便于我們?nèi)祟悂硎褂?,我們從小的?xí)慣就是使用十進(jìn)制,這個(gè)毋庸置疑。
  • 16進(jìn)制,內(nèi)存地址空間是用16進(jìn)制的數(shù)據(jù)表示, 如0x8049324。

編程中,我們常用的還是10進(jìn)制。   
比如:int a = 100,b = 99;   
不過,由于數(shù)據(jù)在計(jì)算機(jī)中的表示,最終以二進(jìn)制的形式存在,所以有時(shí)候使用二進(jìn)制,可以更直觀地解決 問題。但二進(jìn)制數(shù)太長了。比如int 類型占用4個(gè)字節(jié),32位。比如100,用int類型的二進(jìn)制數(shù)表達(dá)將是:   
0000 0000 0000 0000 0110 0100   
面對這么長的數(shù)進(jìn)行思考或操作,沒有人會(huì)喜歡。因此,用16進(jìn)制或8進(jìn)制可以解決這個(gè)問題。因?yàn)椋M(jìn)制越大,數(shù)的表達(dá)長度也就越短。

  1. 用于計(jì)算機(jī)領(lǐng)域的一種重要的數(shù)制
  2. 對計(jì)算機(jī)理論的描述,計(jì)算機(jī)硬件電路的設(shè)計(jì)都是很有益的。比如邏輯電路設(shè)計(jì)中,既要考慮功能的完備,還要考慮用盡可能少的硬件,十六進(jìn)制就能起到一些理論分析的作用。比如四位二進(jìn)制電路,最多就是十六種狀態(tài),也就是一種十六進(jìn)制形式,只有這十六種狀態(tài)都被用上了或者盡可能多的被用上,硬件資源才發(fā)揮了盡可能大的作用。
  3. 十六進(jìn)制更簡短,因?yàn)閾Q算的時(shí)候一位16進(jìn)制數(shù)可以頂4位2進(jìn)制數(shù)。

Python 數(shù)字類型轉(zhuǎn)換

對數(shù)據(jù)內(nèi)置的類型進(jìn)行轉(zhuǎn)換,數(shù)據(jù)類型的轉(zhuǎn)換,只需要將數(shù)據(jù)類型作為函數(shù)名即可。

  • int(x) 將x轉(zhuǎn)換為一個(gè)整數(shù)。
  • float(x) 將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)。
  • complex(x) 將x轉(zhuǎn)換到一個(gè)復(fù)數(shù),實(shí)數(shù)部分為 x,虛數(shù)部分為 0。
  • complex(x, y) 將 x 和 y 轉(zhuǎn)換到一個(gè)復(fù)數(shù),實(shí)數(shù)部分為 x,虛數(shù)部分為 y。x 和 y 是數(shù)字表達(dá)式。

常用的數(shù)據(jù)轉(zhuǎn)換:

函數(shù) 說明
int(x [,base ]) 將x轉(zhuǎn)換為一個(gè)整數(shù)
float(x ) 將x轉(zhuǎn)換為一個(gè)浮點(diǎn)數(shù)
complex(real [,imag ]) 創(chuàng)建一個(gè)復(fù)數(shù),real為實(shí)部,imag為虛部
str(x ) 將對象 x 轉(zhuǎn)換為字符串
repr(x ) 將對象 x 轉(zhuǎn)換為表達(dá)式字符串
eval(str ) 用來計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對象
tuple(s ) 將序列 s 轉(zhuǎn)換為一個(gè)元組
list(s ) 將序列 s 轉(zhuǎn)換為一個(gè)列表
chr(x ) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)Unicode字符
ord(x ) 將一個(gè)字符轉(zhuǎn)換為它的ASCII整數(shù)值
hex(x ) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串
oct(x ) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串
bin(x ) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)二進(jìn)制字符串

注意:

  1. 在整數(shù)除法中,除法(/)總是返回一個(gè)浮點(diǎn)數(shù);
    如果只想得到整數(shù)的結(jié)果,丟棄可能的分?jǐn)?shù)部分,可以使用運(yùn)算符 //

  2. 變量在使用前必須先"定義"(即賦予變量一個(gè)值),否則會(huì)出現(xiàn)錯(cuò)誤:

n   # 嘗試訪問一個(gè)未定義的變量
Traceback (mostrecent call last):  File "<stdin>", line 1, in<module>
NameError: name'n' is not defined

數(shù)字運(yùn)算

算術(shù)運(yùn)算符

下面以a=10 ,b=20為例進(jìn)行計(jì)算:

運(yùn)算符 描述 實(shí)例
+ 兩個(gè)對象相加 a + b 輸出結(jié)果 30
- 得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù) a - b 輸出結(jié)果 -10
* 兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串 a * b 輸出結(jié)果 200
/ b / a 輸出結(jié)果 2
// 取整除 返回商的整數(shù)部分 9//2 輸出結(jié)果 4 , 9.0//2.0 輸出結(jié)果 4.0
% 取余 返回除法的余數(shù) b % a 輸出結(jié)果 0
** 指數(shù) a**b 為10的20次方, 輸出結(jié)果 100000000000000000000

[注意]:
混合運(yùn)算時(shí),優(yōu)先級順序?yàn)椋?** 高于 * / % // 高于 + - ,為了避免歧義,建議使用 () 來處理運(yùn)算符優(yōu)先級。
并且,不同類型的數(shù)字在進(jìn)行混合運(yùn)算時(shí),整數(shù)將會(huì)轉(zhuǎn)換成浮點(diǎn)數(shù)進(jìn)行運(yùn)算。


賦值運(yùn)算符
運(yùn)算符 描述 實(shí)例
= 賦值運(yùn)算符 把 = 號(hào)右邊的結(jié)果 賦給 左邊的變量,如 num = 1 + 2 * 3,結(jié)果num的值為7
+= 加法賦值運(yùn)算符 c += a 等效于 c = c + a
-= 減法賦值運(yùn)算符 c -= a 等效于 c = c - a
*= 乘法賦值運(yùn)算符 c *= a 等效于 c = c * a
/= 除法賦值運(yùn)算符 c /= a 等效于 c = c / a
%= 取模賦值運(yùn)算符 c %= a 等效于 c = c % a
**= 冪賦值運(yùn)算符 c **= a 等效于 c = c ** a
//= 取整除賦值運(yùn)算符 c //= a 等效于 c = c // a

比較(即關(guān)系)運(yùn)算符
運(yùn)算符 描述 示例
== 檢查兩個(gè)操作數(shù)的值是否相等,如果是則條件變?yōu)檎妗?/td> 如a=3,b=3,則(a == b) 為 True
!= 檢查兩個(gè)操作數(shù)的值是否相等,如果值不相等,則條件變?yōu)檎妗?/td> 如a=1,b=3,則(a != b) 為 True
> 檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是,則條件成立。 如a=7,b=3,則(a > b) 為 True
< 檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是,則條件成立。 如a=7,b=3,則(a < b) 為 False
>= 檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是,則條件成立。 如a=3,b=3,則(a >= b) 為 True
<= 檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是,則條件成立。 如a=3,b=3,則(a <= b) 為 True

邏輯運(yùn)算符
運(yùn)算符 邏輯表達(dá)式 描述 實(shí)例
and x and y 布爾"與":如果 x 為 False,x and y 返回 False,否則它返回 y 的值。 True and False, 返回 False。
or x or y 布爾"或":如果 x 是 True,它返回 True,否則它返回 y 的值。 False or True, 返回 True。
not not x 布爾"非":如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 not True 返回 False, not False 返回 True

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容