Python基礎重點知識

2020-08-09 10:38:01

一、變數的基本使用

1.1 變數的定義

  • 在 Python 中,每個變數 在使用前都必須賦值,變數 賦值以後 該變數 纔會被建立
  • 變數名 只有在 第一次出現 纔是 定義變數
  • 等號(=)用來給變數賦值
    • = 左邊是變數名
    • = 右邊是儲存在變數中的值
變數名 =

1.2 變數的型別

  • Python 中定義變數是 不需要指定型別
  • 數據型別可以分爲 數位型非數位型
  • 數位型
    • 整型 (int)
    • 浮點型(float
    • 布爾型(bool
      • True 非 0 數 —— 非零即真
      • False 0
    • 複數型 (complex)
      • 主要用於科學計算,例如:平面場問題、波動問題、電感電容等問題
  • 非數位型
    • 字串
    • 列表
    • 元組
    • 字典

提示:在 Python 2.x 中,整數 根據儲存數值的長度還分爲:

  • int(整數)
  • long(長整數)
  • 使用 type 函數可以檢視一個變數的型別
In [1]: type(name)

1.3 不同類型變數之間的計算

1) 數位型變數之間可以直接計算

  • 在 Python 中,兩個數位型變數是可以直接進行算數運算的
  • 如果變數是 boolean 型,在計算時
    • True 對應的數位是 1
    • False 對應的數位是 0

2) 字串變數之間使用 + 拼接字串

  • 在 Python 中,字串之間可以使用 + 拼接生成新的字串

3) 字串變數可以和整數使用 * 重複拼接相同的字串
4) 數位型變數和字串之間,不能進行其他計算

1.4 變數的輸入

1)input 函數實現鍵盤輸入

  • 在 Python 中可以使用 input 函數,等待使用者的鍵入
  • 使用者輸入的 任何內容 Python 都認爲是一個 字串
  • 語法如下:
字串變數 = input("...")

2) 型別轉換函數

函數 說明
int(x) 將 x 轉換爲一個整數
float(x) 將 x 轉換到一個浮點數

1.5 變數的格式化輸出

  • % 被稱爲 格式化操作符,專門用於處理字串中的格式
  • 包含 % 的字串,被稱爲 格式化字串
  • % 和不同的 字元 連用,不同類型的數據 需要使用 不同的格式化字元
格式化字元 含義
%s 字串
%d 有符號十進制整數,%06d 表示輸出的整數顯示位數,不足的地方使用 0 補全
%f 浮點數,%.2f 表示小數點後只顯示兩位
%% 輸出 %
  • 語法格式如下:
print("格式化字串" % 變數1)

print("格式化字串" % (變數1, 變數2...))

1.6 變數的命名

1.6.1 識別符號

  • 標示符就是程式設計師定義的 變數名函數名
  • 標示符可以由 字母下劃線數位 組成
  • 不能以數位開頭
  • 不能與關鍵字重名

1.6.2 關鍵字

  • 關鍵字 就是在 Python 內部已經使用的識別符號
  • 關鍵字 具有特殊的功能和含義
  • 開發者 不允許定義和關鍵字相同的名字的標示符

通過以下命令可以檢視 Python 中的關鍵字

In [1]: import keyword
In [2]: print(keyword.kwlist)
  1. 在定義變數時,爲了保證程式碼格式,= 的左右應該各保留一個空格
  2. Python 中,如果 變數名 需要由 兩個多個單詞 組成時,可以按照以下方式命名
    1. 每個單詞都使用小寫字母
    2. 單詞與單詞之間使用 _下劃線 連線
    • 例如:first_namelast_name

1.6.3 駝峯命名法

  • 小駝峯式命名法
    • 第一個單詞以小寫字母開始,後續單詞的首字母大寫
    • 例如:firstNamelastName
  • 大駝峯式命名法
    • 每一個單詞的首字母都採用大寫字母
    • 例如:FirstNameLastName

二、if 條件判斷語句

2.1 if 基本語法

Python 中,if 語句 就是用來進行判斷的,格式如下:

if 要判斷的條件:
    條件成立時,要做的事情
    ……
else:
    條件不成立時,要做的事情
    ……

2.2 elif

if 條件1:
    條件1滿足執行的程式碼
    ……
elif 條件2:
    條件2滿足時,執行的程式碼
    ……
elif 條件3:
    條件3滿足時,執行的程式碼
    ……
else:
    以上條件都不滿足時,執行的程式碼
    ……

三、邏輯運算

3.1 and

條件1 and 條件2
  • 並且
  • 兩個條件同時滿足,返回 True
  • 只要有一個不滿足,就返回 False

3.2 or

條件1 or 條件2
  • 或者
  • 兩個條件只要有一個滿足,返回 True
  • 兩個條件都不滿足,返回 False

3.3 not

not 條件
  • 不是
條件 結果
成立 不成立
不成立 成立

四、回圈結構

4.1 while 回圈的基本使用

	# 1. 定義重複次數計數器
	i = 1
	# 2. 使用 while 判斷條件
	while i <= 5:
	    # 要重複執行的程式碼
	    print("Hello Python")
	
	    # 處理計數器 i
	    i = i + 1
	print("回圈結束後的 i = %d" % i)
  • break退出回圈
  • continue結束本次回圈,執行下一次回圈

4.2 回圈巢狀

  • while 巢狀:while 裏面巢狀 while
while 條件 1:
    條件滿足時,做的事情1
    條件滿足時,做的事情2
    條件滿足時,做的事情3
    ...(省略)...
    
    while 條件 2:
        條件滿足時,做的事情1
        條件滿足時,做的事情2
        條件滿足時,做的事情3
        ...(省略)...
    
        處理條件 2
    
    處理條件 1

4.3 字串中的跳脫字元

  • \t 在控制檯輸出一個 製表符,協助在輸出文字時 垂直方向 保持對齊
  • \n 在控制檯輸出一個 換行符

製表符 的功能是在不使用表格的情況下在 垂直方向 按列對齊文字

跳脫字元 描述
\\ 反斜槓符號
\’ 單引號
\" 雙引號
\n 換行
\t 橫向製表符
\r 回車

4.4 for回圈的使用

  • Python 中完整的 for 回圈 的語法如下:
for 變數 in 集合:
    
    回圈體程式碼
else:
    沒有通過 break 退出回圈,回圈結束後,會執行的程式碼

五、函數

5.1 函數的定義

定義函數的格式如下:

def 函數名():

    函數內部程式碼
    ……
  1. def 是英文 define 的縮寫
  2. 函數名稱 的命名應該符合 識別符號的命名規則
  • 可以由 字母下劃線數位 組成
  • 不能以數位開頭
  • 不能與關鍵字重名

5.2 函數的呼叫

通過 函數名() 即可完成對函數的呼叫。

5.3 函數的返回值

  • 在函數中使用 return 關鍵字可以返回結果
  • 呼叫函數一方,可以 使用變數接收 函數的返回結果
  • 注意:return 表示返回,後續的程式碼都不會被執行

六、模組

6.1 模組的概念

  • 模組 類似於一個 工具包,若想使用,需要 匯入 import 這個模組
  • 每一個以擴充套件名 py 結尾的 Python 原始碼檔案都是一個 模組
  • 在模組中定義的 全域性變數函數 都是模組能夠提供給外界直接使用的工具

6.2 模組的使用

  • 在一個 Python 檔案中定義變數 或者 函數
  • 然後在 另外一個檔案中 使用 import 匯入這個模組(Python檔案)
  • 匯入之後,就可以使用 模組名.變數 / 模組名.函數 的方式,使用這個模組中定義的變數或者函數

七、高階變數型別

7.1 列表——[]

7.1.1 列表的概念

  • List(列表) 是 Python中使用 最頻繁 的數據型別,在其他語言中通常叫做 陣列
  • 用於儲存 一串 資訊
  • 列表用 [] 定義,數據 之間用 , 分隔
  • 列表的 索引0 開始
  • 列表、元組是有序的物件集合,字典是無序的物件集合
  • 注意:從列表中取值時,如果 超出索引範圍,程式會報錯
name_list = ["zhangsan", "lisi", "wangwu"]

7.1.2 列表有關的方法

序號 分類 關鍵字 / 函數 / 方法 說明
1 增加 列表.insert(索引, 數據) 在指定位置插入數據
列表.append(數據) 在末尾追加數據
列表.extend(列表2) 將列表2 的數據追加到列表
2 修改 列表[索引] = 數據 修改指定索引的數據
3 刪除 del 列表[索引] 刪除指定索引的數據
列表.remove[數據] 刪除第一個出現的指定數據
列表.pop 刪除末尾數據
列表.pop(索引) 刪除指定索引數據
列表.clear 清空列表
4 統計 len(列表) 列表長度
列表.count(數據) 數據在列表中出現的次數
5 排序 列表.sort() 升序排序
列表.sort(reverse=True) 降序排序
列表.reverse() 逆序、反轉

注意:del方法刪除列表,本質是從記憶體中直接刪除,後續程式碼不能再使用這個變數了

7.1.3 列表的回圈遍歷

  • 遍歷 就是 從頭到尾 依次列表 中獲取數據
  • Python 中爲了提高列表的遍歷效率,專門提供的 迭代 iteration 遍歷
  • 使用 for 就能夠實現迭代遍歷
# for 回圈內部使用的變數 in 列表
for name in name_list:

    回圈內部針對列表元素進行操作
    print(name)

7.2 元組——()

7.2.1 元組的概念

  • Tuple(元組)與列表類似,不同之處在於元組的 元素不能修改
    • 元組 表示多個元素組成的序列
    • 元組 在Python開發中,有特定的應用場景
  • 用於儲存 一串資訊數據 之間使用 , 分隔
  • 元組用 () 定義
  • 列表、元組是有序的物件集合,字典是無序的物件集合
  • 元組的 索引0 開始
info_tuple = ("zhangsan", 18, 1.75)
  • 元組中 只包含一個元素 時,需要 在元素後面新增逗號
info_tuple = (50, )

7.2.2 建立空元組

info_tuple = ()

7.2.3 元組有關的方法

分類 關鍵字 / 函數 / 方法 說明
計次 元組.count(數據) 數據在元組中出現的次數
獲得索引 元組.index(數據) 獲得數據第一次出現的索引
統計 len(元組) 獲取元組長度

7.2.4 元組的回圈遍歷

# for 回圈內部使用的變數 in 元組
for item in info:

    回圈內部針對元組元素進行操作
    print(item)

  • 提示:在實際開發中,除非 能夠確認元組中的數據型別,否則針對元組的回圈遍歷需求並不是很多

7.2.5 元組和列表之間的轉換

  • 使用 list 函數可以把元組轉換成列表
list(元組) 
  • 使用 tuple 函數可以把列錶轉換成元組
tuple(列表)

7.3 字典——{}

7.3.1 字典的概念

  • dictionary(字典) 是 除列表以外 Python 之中 最靈活 的數據型別
  • 字典同樣可以用來 儲存多個數據,通常用於儲存 描述一個 物體 的相關資訊
  • 字典和列表的區別
    • 列表有序 的物件集合, 字典無序 的物件集合
  • 字典用 {} 定義
  • 字典使用 鍵值對 儲存數據,鍵值對之間使用 , 分隔
    • key 是索引, value 是數據
    • 之間使用 : 分隔
    • 鍵必須是唯一的 可以取任何數據型別,但 只能使用 字串數位元組
xiaoming = {"name": "小明",
            "age": 18,
            "gender": True,
            "height": 1.75}

7.3.2 字典有關的方法

在这里插入图片描述

7.3.3 字典的回圈遍歷

# for 回圈內部使用的 `key 的變數` in 字典
for k in xiaoming:

    print("%s: %s" % (k, xiaoming[k]))
  • 提示:在實際開發中,由於字典中每一個鍵值對儲存數據的型別是不同的,所以針對字典的回圈遍歷需求並不是很多

7.4 字串——""

7.4.1 字串的概念

  • 在 Python 中可以使用 一對雙引號 " 或者 一對單引號 ' 定義一個字串
  • 可以使用 索引 獲取一個字串中 指定位置的字元,索引計數從 0 開始
  • 也可以使用 for 回圈遍歷 字串中每一個字元
string = "Hello Python"

for c in string:
    print(c)

7.4.2 字串有關的方法

1)判斷型別
方法 說明
string.isspace() 如果 string 中只包含空格,則返回 True
string.isalnum() 如果 string 至少有一個字元並且所有字元都是字母或數位則返回 True
string.isalpha() 如果 string 至少有一個字元並且所有字元都是字母則返回 True
string.isdecimal() 如果 string 只包含數位則返回 True,全形數位
string.isdigit() 如果 string 只包含數位則返回 True,全形數位\u00b2
string.isnumeric() 如果 string 只包含數位則返回 True,全形數位漢字數位
string.istitle() 如果 string 是標題化的(每個單詞的首字母大寫)則返回 True
string.islower() 如果 string 中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是小寫,則返回 True
string.isupper() 如果 string 中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是大寫,則返回 True
2)查詢和替換
方法 說明
string.startswith(str) 檢查字串是否是以 str 開頭,是則返回 True
string.endswith(str) 檢查字串是否是以 str 結束,是則返回 True
string.find(str, start=0, end=len(string)) 檢測 str 是否包含在 string 中,如果 start 和 end 指定範圍,則檢查是否包含在指定範圍內,如果是返回開始的索引值,否則返回 -1
string.rfind(str, start=0, end=len(string)) 類似於 find(),不過是從右邊開始查詢
string.index(str, start=0, end=len(string)) 跟 find() 方法類似,不過如果 str 不在 string 會報錯
string.rindex(str, start=0, end=len(string)) 類似於 index(),不過是從右邊開始
string.replace(old_str, new_str, num=string.count(old)) 把 string 中的 old_str 替換成 new_str,如果 num 指定,則替換不超過 num 次

3)大小寫轉換

方法 說明
string.capitalize() 把字串的第一個字元大寫
string.title() 把字串的每個單詞首字母大寫
string.lower() 轉換 string 中所有大寫字元爲小寫
string.upper() 轉換 string 中的小寫字母爲大寫
string.swapcase() 翻轉 string 中的大小寫

4)文字對齊

方法 說明
string.ljust(width) 返回一個原字串左對齊,並使用空格填充至長度 width 的新字串
string.rjust(width) 返回一個原字串右對齊,並使用空格填充至長度 width 的新字串
string.center(width) 返回一個原字串居中,並使用空格填充至長度 width 的新字串

5)去除空白字元

方法 說明
string.lstrip() 截掉 string 左邊(開始)的空白字元
string.rstrip() 截掉 string 右邊(末尾)的空白字元
string.strip() 截掉 string 左右兩邊的空白字元

6)拆分和連線

方法 說明
string.partition(str) 把字串 string 分成一個 3 元素的元組 (str前面, str, str後面)
string.rpartition(str) 類似於 partition() 方法,不過是從右邊開始查詢
string.split(str="", num) 以 str 爲分隔符拆分 string,如果 num 有指定值,則僅分隔 num + 1 個子字串,str 預設包含 ‘\r’, ‘\t’, ‘\n’ 和空格
string.splitlines() 按照行(’\r’, ‘\n’, ‘\r\n’)分隔,返回一個包含各行作爲元素的列表
string.join(seq) 以 string 作爲分隔符,將 seq 中所有的元素(的字串表示)合併爲一個新的字串

八、公共方法

8.1 Python內建函數

函數 描述 備註
len(item) 計算容器中元素個數
del(item) 刪除變數 del 有兩種方式
max(item) 返回容器中元素最大值 如果是字典,只針對 key 比較
min(item) 返回容器中元素最小值 如果是字典,只針對 key 比較
cmp(item1, item2) 比較兩個值,-1 小於/0 相等/1 大於 Python 3.x 取消了 cmp 函數

8.2 切片

  • 切片 方法適用於 字串列表元組
  • 切片 使用 索引值 來限定範圍,從一個大的 字串切出 小的 字串
  • 列表元組 都是 有序 的集合,都能夠 通過索引值 獲取到對應的數據
  • 字典 是一個 無序 的集合,是使用 鍵值對 儲存數據
字串[開始索引:結束索引:步長]

注意

  1. 指定的區間屬於 左閉右開[開始索引, 結束索引)
    起始 位開始,到 結束位的前一位 結束(不包含結束位本身)
  2. 從頭開始,開始索引 數位可以省略,冒號不能省略
  3. 到末尾結束,結束索引 數位可以省略,冒號不能省略
  4. 步長預設爲 1,如果連續切片,數位和冒號都可以省略

索引的順序和倒序

  • 在 Python 中不僅支援 順序索引,同時還支援 倒序索引
  • 所謂倒序索引就是 從右向左 計算索引
    • 最右邊的索引值是 -1,依次遞減
描述 Python 表達式 結果 支援的數據型別
切片 「0123456789」[::-2] 「97531」 字串、列表、元組

8.3 運算子

運算子 Python 表達式 結果 描述 支援的數據型別
+ [1, 2] + [3, 4] [1, 2, 3, 4] 合併 字串、列表、元組
* [「Hi!」] * 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 重複 字串、列表、元組
in 3 in (1, 2, 3) True 元素是否存在 字串、列表、元組、字典
not in 4 not in (1, 2, 3) True 元素是否不存在 字串、列表、元組、字典
> >= == < <= (1, 2, 3) < (2, 2, 3) True 元素比較 字串、列表、元組

注意

  • in 在對 字典 操作時,判斷的是 字典的鍵
  • innot in 被稱爲 成員運算子

8.4 成員運算子

成員運算子用於 測試 序列中是否包含指定的 成員

運算子 描述 範例
in 如果在指定的序列中找到值返回 True,否則返回 False 3 in (1, 2, 3) 返回 True
not in 如果在指定的序列中沒有找到值返回 True,否則返回 False 3 not in (1, 2, 3) 返回 False
  • 注意:在對 字典 操作時,判斷的是 字典的鍵