1. 程式人生 > 實用技巧 >ubuntu安裝教程

ubuntu安裝教程

技術標籤:Python基礎python

文章目錄

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。在這裡插入圖片描述
  • 小整數物件池(瞭解)

    • 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)
      

布林型別

  • 布林型別介紹(掌握)

    • 比如我們拋硬幣,不是正面就是反面。那其實對於對與錯、0與1,都是傳統意義上的布林型別。
    • 但在Python語言中,布林型別只有兩個值,Ture與Flase。
    • 注意:首字母必須大寫,不能有其他的花式變型。
  • bool()使用

    • 我們通過python內建的bool()函式來測試一個表示式的布林值。在這裡插入圖片描述
      在這裡插入圖片描述
      • 歸納:
        • 數值型別:0、0.0的bool值都為False,其它的都為True。注意空格字串為True在這裡插入圖片描述
        • 列表:空列表的bool值為False,其他的都為True。
        • None 的 bool值永遠為False
  • 布林型別運算如下:

    • 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,也不允許為浮點數
  • 字串型別轉換(掌握)

    • 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