ubuntu安裝教程
阿新 • • 發佈:2020-12-13
文章目錄
Python基礎資料型別
-
資料型別介紹
- 為什麼會有資料型別?
1、可以更好的分配管理記憶體
2、方便統一管理
3、更貼近人類分類管理習慣
- 為什麼會有資料型別?
-
資料型別種類(熟悉)
- 資料型別:int、bool、float、complex
- 序列型別:
1、不可變性:str、tuple、bytes
2、可變:list
- 集合型別:set
- 對映型別:dict
數值型別
-
資料型別介紹(熟悉)
- 數值型別是不可變型別。所謂的不可變型別,指的是型別的值一旦有不同了,那麼他就是一個全新的物件。數字1和2分別代表兩個不同的物件,對變數重新賦值一個數字型別,會新建一個數字物件。
- 還是要強調一下Python的變數和資料型別的關係,變數只是對某個物件的引用或者說代號、名字、呼叫等等,變數本身沒有資料型別的概念。只有1,[1,2],"hello"這一類物件才具有資料型別的概念。
- Python支援三種不同的數值型別:整數、浮點數和複數與布林。
-
整數(int)介紹(熟悉)
- 整數通常被稱為整數,數值為正或者負,不帶小數點。表示數字的時候,通常使用十進位制(decimal)來表示。
- 有時我們還會用八進位制或十六進位制來表示(瞭解):
1、十六進位制用0x字首和0-9,a-f表示,例如:0xff00。python中使用hex()將十進位制轉為十六進位制
2、八進位制用0o字首和0-7表示,例如0o45。python中使用oct()將十進位制轉為八進位制
3、二進位制用0b字首和0-1表示,例如0b11。python中使用bin()將十進位制轉為二進位制
-
整數記憶體
- python的整數長度為32位,並且通常是連續分配記憶體空間的。
- 從下面程式碼的記憶體地址看,之間正好相差32。
- 從下面程式碼的記憶體地址看,之間正好相差32。
-
小整數物件池(瞭解)
- python初始化的時候會自動建立一個小整數物件池,方便我們呼叫,避免後期重複生成!這是一個包含262個指向整數物件的指標陣列,範圍是-5到256。也就是說比如整數10,即使我們在程式裡沒有建立它,其實在Python後臺已經悄悄為我們建立了。
- 作用:節省開銷,增快執行速度。
-
整數緩衝區(瞭解)
- 除了小整數物件池,Python還有整數緩衝區的概念,也就是剛被刪除的整數,不會被真正立刻刪除回收,而是在後臺緩衝一段時間,等待下一次的可能呼叫。
- 注意:在互動環境中演示不出來效果。該效果在pycharm當中實現;並且注意不是小整數物件池當中的值。
-
浮點數(float)介紹(熟悉)
- 浮點數也就是小數,如1.23,,314,-9.01,等等。但是對於很大或很小的浮點數,一般用科學計數法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。
-
浮點數與整數之間轉換(掌握)
- int轉為float:float(x)-> floating point number
- float轉為int:int(x=0)-> integer
-
複數(complex)(瞭解)
- 複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示
- 複數的實部a和虛部b都是浮點
-
數學計算(熟悉)
- 對於數學計算,除了前面提到過的簡單的加減乘除等等,更多的科學計算需要匯入math這個標準庫,它包含了絕大多數我們可能需要的科學計算函式。
math.ceil(x) abs(x) math.floor(x) round(x) math.pow(x)
- 對於數學計算,除了前面提到過的簡單的加減乘除等等,更多的科學計算需要匯入math這個標準庫,它包含了絕大多數我們可能需要的科學計算函式。
布林型別
-
布林型別介紹(掌握)
- 比如我們拋硬幣,不是正面就是反面。那其實對於對與錯、0與1,都是傳統意義上的布林型別。
- 但在Python語言中,布林型別只有兩個值,Ture與Flase。
- 注意:首字母必須大寫,不能有其他的花式變型。
-
bool()使用
- 我們通過python內建的bool()函式來測試一個表示式的布林值。
- 歸納:
- 數值型別:0、0.0的bool值都為False,其它的都為True。注意空格字串為True
- 列表:空列表的bool值為False,其他的都為True。
- None 的 bool值永遠為False
- 歸納:
- 我們通過python內建的bool()函式來測試一個表示式的布林值。
-
布林型別運算如下:
- and運算
- or運算
- not運算
- 算術運算,注意:把True看作1,而False看作0
空值
-
空值介紹(掌握)
- 空值不是布林型別,是Python裡一個特殊的值,用None表示(首字母大寫)。
- None不能理解為0,因為0是整數型別,而None是一個特殊的值。None也不是布林型別,而是NoneType。
字串(str)
-
字串介紹(掌握)
- 字串是Python中最常用的資料型別之一,使用單引號或雙引號來建立字串,使用三引號建立多行字串。
- 注意:
- 字串的單引號與雙引號都是成對出現的,不能一邊單一邊雙。
- 字串是不可變的序列資料型別,不能直接修改字串本身,和數字型別一樣!
-
字串的儲存(瞭解)
- 思考:以下數值與字串儲存是一樣的嗎?
顯然,num是數值,num_str是字串,id地址不一樣,所以儲存不一樣。
- 思考:以下數值與字串儲存是一樣的嗎?
-
儲存方式的介紹(瞭解)
- CPU:速度快,儲存小
- 硬碟:速度慢,儲存大
- 記憶體:速度比CPU慢,但比硬碟快。儲存比CPU大,但比硬碟小。
- 記憶體大小換算:
- 1G = 1024M
- 1M = 1024KB
- 1KB = 1024B
- 1B = 8bit
-
字串的儲存(瞭解)
- 整數在記憶體中佔一個位元組,字串不管中間多少記憶體都要單獨儲存。
num = 100→100
s = ‘100’→’1’和’0’和’0’
- 整數在記憶體中佔一個位元組,字串不管中間多少記憶體都要單獨儲存。
-
字串的下標(重點掌握)
- 由於字串是序列資料結構,所以我們可以通過下標將字串中某個字母取出來。下標也可以稱為索引,預設從0開始。
- 思考:
name = “hello oldamy”,如何取出e值?如何取出最後一個值?
儲存:‘h’、‘e’、’ l ‘、‘l’、‘o’、’ ‘、‘o’、’ l’、‘d’、‘a’、’ m’、‘y’
下標:‘0’、‘1’、‘2’、‘3’、‘4’、5、‘6’、‘7’、‘8’、‘9’、‘10’、11
-
字串的切片(重點掌握)
- slice(start,stop,[step])
- start:起始位置預設為0
- stop:結束位置預設最後一個元素
- step:可選引數:步長,預設為1
切片模式:a[start:stop:step]
- 注意:
- 索引預設為從0開始
- 切片時左閉右開
- 當是取單個字元的時候,索引超出範圍會報錯。而切片時不會報錯。
- 步長不能為0,也不允許為浮點數
- slice(start,stop,[step])
-
字串型別轉換(掌握)
- str轉為int:int(x)-> integer
- int轉為str:str(object=")->str
-
字串組成方式(掌握)
- 字串相加
- 字串格式化
- %s、%d、%f
- str.format()
- python3.6.4引入f"
- 例子:
- name = ‘hansen’
- age = 20
- 輸出的年齡為
-
字串常見操作(熟悉)
- S.find(sub)–> 返回該元素最小的索引
- S.index(sub)–返回該元素最小的索引
- S.replace(old,new[,count])–>替換
- S.split(sep=None)–>以sep來分割字串,並返回列表sep預設為None,分割預設認為空格
- S.startswith(prefix[,start[,end]])–>判斷字串是否以前字首開始,返回為bool值。
- S.endswith(suffix[,start[,end]])–>判斷字串是否以尾綴結束,返回為bool值。
- S.lower()–>將字串全部轉為小寫
- S.upper()–>將字串全部轉為大寫
- S.strip([chars])–>預設去掉字串左右的空格
- S.isalpha()–>判斷字串是否全為字母,返回的是bool值
- S.isdigit()–>判斷字串是否全為數字,返回的是bool值
- S.isalnum()–>判斷字串是否全為數字或字母,不存在特殊字元,返回的是bool值
- S.join(iterable)–>將序列中的元素以指定的字串連線生成一個新的字串
作業
- 作業1:
- 當輸入y或Y列印進入解除安裝,當輸入n或N列印退出程式, 輸入其他則列印輸入不在選項範圍之內
q = input('輸入:') if q == 'y' or q == 'Y': print('進入解除安裝') elif q == 'n' or q == 'N': print('退出程式') else: print('輸入不在選項範圍之內')
- 作業3:
- 完成字串的逆序以及統計
設計一個程式,要求只能輸入長度低於20的字串,當滿足需求時,則打印出字串長度以及使用切片逆序打印出字串,當不滿足需求時,列印使用者重新輸入
ter = input('輸入:') der = ter[::-1] if len(ter) < 20: print(len(ter)) print(der) else: print('使用者重新輸入')
- 完成字串的逆序以及統計
- 作業4:
- ‘3’+'4’的結果是什麼?
回答:因為是字串,所以輸出為34
- ‘3’+'4’的結果是什麼?