Python基礎知識點梳理
python基礎知識點梳理
摘要:
本文主要介紹一些平時經常會用到的python基礎知識點,用於加深印象,也算是對於學習這門語言的一個總結與回顧。python的詳細語法介紹可以檢視官方程式設計手冊,也有一些線上網站對python語法進行了比較全面的介紹,比如菜鳥教程:
python3 教程|菜鳥教程
為了方便聚焦知識點,本文涉及的操作例項並不多,想學好一門語言關鍵還得自己多編碼多實踐。
python語言介紹
python是一門解釋型語言,python的設計目標:
- 一門簡單直觀的語言並與主要競爭者一樣強大
- 開源,以便任何人都可以為它做貢獻
- 程式碼像純英語那樣容易理解
- 適用於短期開發的日常任務
設計哲學是:
- 優雅
- 明確
- 簡單
python基礎語法
識別符號
- 第一個字元必須是字母表中字母或下劃線 。
- 識別符號的其他的部分由字母、數字和下劃線組成。
- 識別符號對大小寫敏感。
註釋
型別 | 語法 |
---|---|
單行註釋 | 以 # 開頭,程式設計規範建議#後面跟一個空格 |
多行註釋 | 用一對連續的三個引號,單引號或者雙引號均可("""/’’’) |
行與縮排
- python與其他語言明顯的區別是沒有大括號,而是用縮排表示程式碼塊。
- 另外,每行語句不需要以分號結束。
多行語句
如果語句很長,可以使用反斜槓(\)來實現多行語句
說明:在 [], {}, 或 () 中的多行語句不需要使用反斜槓
算術運算子
運算子 | 描述 | 例項 |
---|---|---|
+ | 兩個物件相加 | 10 + 9 = 19 |
- | 兩個物件相減 | 10 - 9 = 1 |
* | 兩個數相乘法,用於字串時可以重複多次 | 10 * 9 = 90 |
/ | x除以y | 10 / 2 = 5 |
// | 取整除 | 10 // 9 = 1 |
% | 取餘數 | 10 % 8 = 2 |
** | 返回x的y次冪 | 10 ** 2= 100 |
判斷語法
if else語句
if 和 else用於對條件進行判斷並進行處理,語法如下:
if 要判斷的條件:
條件成立時要做的事情
...
else:
條件不成立時要做的事情
邏輯運算子
對於同時判斷多個條件的情況可以用邏輯運算子,有如下三種:
符號 | 說明 | 語法 |
---|---|---|
and | 與,兩個都成立才返回True | 條件1 and 條件2 |
or | 或,兩個只要有一個滿足就返回True | 條件1 or 條件2 |
not | 非,對條件取反 | not 條件 |
elif 語句
elif語句用於有多個條件進行判斷的場景,語法如下:
if 條件1:
條件1滿足時執行的程式碼
elif 條件2:
條件2滿足時執行的程式碼
elif 條件3:
條件3滿足時執行的程式碼
else:
以上都不滿足時執行的程式碼
迴圈語法
迴圈的作用就是讓指定的程式碼重複執行
while迴圈
while迴圈是python中常見的迴圈,用於讓執行的程式碼按照指定次數重複執行,語法如下:
初始條件設定,通常是計數器
while 條件(判斷計數器是否達到目標次數):
條件滿足時候執行的程式碼
...
處理條件(計數器 + 1)
for迴圈
for迴圈可以方便地遍歷列表,元組,字典等資料型別,比如遍歷一個列表的程式碼片段如下:
nameList = ["zhangsan", "lisi", "wangwu"]
for name in nameList:
print(name)
python中,for迴圈經常與range函式搭配使用,如下:
for i in range(1, 10):
print(i)
python資料型別介紹
- 按照是否是數字可以按照如下表格分類:
數字型別 | 非數字型別 |
---|---|
整型(int)/ 浮點型(float)/ 布林型(bool)/ 複數型(complex) | 字串(str)/ 列表(list)/ 元組(tuple) / 字典(dict) |
說明:使用type函式可以返回變數的資料型別
按照是否可變可以分為:
不可變型別 | 可變型別 |
---|---|
整型(int)/ 浮點型(float)/ 布林型(bool)/ 複數型(complex)/ 字串(str)/ 元組(tuple) | 列表(list)/ 字典(dict) |
列表
列表(list)是python中使用最頻繁的資料型別,類似其他語言的陣列
列表的符號是中括號[],初始化一個列表語法如下:
program_list = ["c++", "java", "python", "php"]
列表中常見的幾種操作如下:
序號 | 分類 | 方法 | 說明 | 例項 |
---|---|---|---|---|
01 | 查詢 | list.index(obj) | 從列表中找出某個值第一個匹配項的索引位置 | program_list.index(“java”)) |
02 | 增加 | list.insert(index, obj) | 在列表中指定位置插入資料 | program_list.insert(1, “kotlin”) |
03 | 增加 | list.append(obj) | 在列表末尾追加資料 | program_list.append(“C#”) |
04 | 增加 | list.extend(list1) | 在列表1的資料追加到列表中 | program_list.extend([“C#”, “kotlin”, “bash”]) |
05 | 增加 | list.extend(list1) | 在列表1的資料追加到列表中 | program_list.extend([“C#”, “kotlin”, “bash”]) |
06 | 修改 | list[index] = obj | 修改指定索引的資料 | program_list[2] = “Go” |
07 | 刪除 | list.clear() | 清空列表 | program_list.clear() |
08 | 刪除 | list.remove(obj) | 刪除第一個出現的指定資料 | program_list.remove(“java”) |
09 | 刪除 | list.pop() | 刪除末尾的資料 | program_list.pop() |
10 | 刪除 | list.pop(index) | 刪除指定索引的資料 | program_list.pop(1) |
11 | 統計 | len(list) | 計算列表長度 | len(program_list) |
12 | 統計 | list.count(obj) | 統計資料在列表中出現的次數 | program_list.count(“java”) |
13 | 排序 | list.sort() | 將列表升序排列 | program_list.sort() |
14 | 排序 | list.sort(reverse=True) | 將列表降序排列 | program_list.sort(reverse = True) |
15 | 翻轉 | list.reverse() | 將列表翻轉 | program_list.reverse() |
元組
元組(tuple)與列表類似,區別是元組的資料不能修改,元組的符號是小括號(),初始化一個元組的語法如下:
program_tuple = ("c++", "java", "python", "php")
元組主要用於函式的引數和返回值,格式化字串,以及保護列表資料,由於元組的資料無法修改,因此提供的方法也比較少:
序號 | 分類 | 方法 | 說明 | 例項 |
---|---|---|---|---|
01 | 查詢 | tuple.index(obj) | 從元組中找出某個值第一個匹配項的索引位置 | program_tuple.index(“java”) |
02 | 統計 | len(tuple) | 計算元組長度 | len(program_tuple) |
03 | 統計 | tuple.count(obj) | 統計資料在列表中出現的次數 | program_tuple.count(“python”) |
元組在python中還可以用於交換兩個變數的值:
a = 10
b = 9
a, b = (b, a)
字典
字典(dict)通常用於描述一個物體的相關資訊,使用鍵值對儲存資料,鍵必須唯一,由於要使用hash演算法,只有不可變型別才能用作鍵,字典的符號是大括號{},初始化一個字典的語法如下:
human_dic = {"name": "zhangsan",
"age": 26,
"height": 1.75,
"weight": 66}
字典的常用操作函式如下:
序號 | 分類 | 方法 | 說明 | 例項 |
---|---|---|---|---|
01 | 取值 | dict[key] | 從字典中取出鍵對應的值 | human_dic[“name”] |
02 | 取值 | dict.get(key) | 從字典中取出鍵對應的值 | human_dic.get(“name”) |
03 | 取值 | dict.items() | 以列表返回可遍歷的(鍵, 值) 元組陣列 | list(human_dic.items()) |
04 | 取值 | dict.keys() | 以列表返回一個字典所有的鍵 | list(human_dic.keys()) |
05 | 取值 | dict.values() | 以列表返回字典中的所有值 | list(human_dic.values()) |
06 | 增加/修改 | dict[key] = value | key存在則更新value,否則增加鍵值對 | human_dic[“gender”] = “male” |
07 | 刪除 | dict.pop(key) | pop函式返回key對應的value值,並刪除鍵值對 | human_dic.pop(“gender”) |
08 | 刪除 | dict.popitem() | 返回並刪除字典中的最後一對鍵和值 | human_dic.popitem() |
09 | 合併 | dict.update(dic2) | 合併字典dic2中的資料,已存在的key跟新value的值 | human_dic.update({“weight”: 64, “age”: 27}) |
10 | 複製 | dict.copy() | 返回字典的淺複製 | new_dic = human_dic.copy() |
11 | 清空 | dict.clear() | 清空字典 | human_dic.clear() |
字串
字串(str)的使用也非常廣泛,可以使用引號('或")來建立字串,初始化一個字串的語法如下:
testStr = "Wasting time is robbing oneself"
python對於str提供了很多實用的方法,比較常用的有以下這些:
- 對字串進行判斷的方法:
序號 | 方法 | 說明 |
---|---|---|
01 | str.isalnum() | 如果 string 至少有一個字元並且所有字元都是字母或數字則返回 True,否則返回 False |
02 | str.isalpha() | 如果 string 至少有一個字元並且所有字元都是字母則返回 True,否則返回 False |
03 | str.isdecimal() | 如果 string 只包含數字則返回True,否則返回False |
04 | str.istitle() | 如果 string 是標題化的(每個單詞的首字母大寫)則返回True |
05 | str.isupper() | 如果 string 所有區分大小寫的字元都是大寫,則返回True |
06 | str.islower() | 如果 string 所有區分大小寫的字元都是小寫,則返回True |
07 | str.isspace() | 如果 string 中只包含空格,則返回 True,否則返回 False |
- 對字串進行修改(包括格式化,大小寫轉換):
序號 | 分類 | 方法 | 說明 |
---|---|---|---|
01 | 格式化 | str.format() | 格式化字串 |
02 | 格式化 | str.strip() | 去掉字串左右兩邊的空白字元 |
03 | 格式化 | str.lstrip() | 去掉字串左邊的空白字元 |
04 | 格式化 | str.rstrip() | 去掉字串右邊的空白字元 |
05 | 文字對齊 | str.ljust(width) | 返回一個原字串左對齊,並使用空格填充寬度至長度width的新字串 |
06 | 文字對齊 | str.rjust(width) | 返回一個原字串右對齊,並使用空格填充寬度至長度width的新字串 |
07 | 文字對齊 | str.center(width) | 返回一個原字元居中對齊,並使用空格填充寬度至長度width的新字串 |
08 | 大小寫 | str.title() | 把字串的每個單詞首字母大寫 |
09 | 大小寫 | str.lower() | 把字串的所有大寫字元轉換成小寫 |
10 | 大小寫 | str.upper() | 把字串的所有小寫字元轉換成大寫 |
11 | 大小寫 | str.swapcase() | 翻轉字串的大小寫 |
- 字串的查詢和替換:
序號 | 方法 | 說明 |
---|---|---|
01 | str.count(str1, beg=0, end=len(string)) | 返回 str1 在字串中出現的次數,如果 beg 或者 end 指定則返回指定範圍內 str 出現的次數 |
02 | str.startswith(obj, beg=0,end=len(string)) | 檢查字串是否是以 obj 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定範圍內檢查. |
03 | str.endswith(obj, beg=0, end=len(string)) | 檢查字串是否以 obj 結束,是則返回 True,否則返回 False。如果beg 或者 end 指定值,則在指定範圍內檢查 |
04 | str.find(str1, beg=0, end=len(string)) | 檢測 str1是否包含在字串中,如果 beg 和 end 指定範圍,則檢查是否包含在指定範圍內。如果是則返回開始的索引值,否則返回-1 |
05 | str.rfind(str1, beg=0,end=len(string) ) | 類似於find函式,不過是從右邊開始查詢 |
06 | str.index(str1, beg=0, end=len(string)) | 跟find()方法一樣,只不過如果str1不在 字串中會報一個異常. |
07 | str.rindex(str1, beg=0, end=len(string)) | 類似於index函式,不過是從右邊開始 |
08 | str.replace(str1, str2, num=string.count(str1)) | 把 字串中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次. |
- 字串的拆分和連線:
序號 | 方法 | 說明 |
---|---|---|
01 | str.split(str1="", num=str.count(str1)) | 以 str1 為分隔符切片字串,如果 num 有指定值,則僅分隔 num+1 個子字串 |
02 | str.splitlines([keepends]) | 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一個包含各行作為元素的列表,如果引數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。 |
03 | str.join(seq) | 以 字串作為分隔符,將 列表seq 中所有的元素(用字串表示)合併為一個新的字串 |
公共方法
內建函式
對於列表,元組,字典,字串,python也提供了一些公共方法,如下:
函式 | 描述 | 說明 |
---|---|---|
len(item) | 計算元素的總個數 | |
del(item) | 刪除變數 | 可以刪除整個變數,加上索引可以只刪除指定的元素 |
max(item) | 返回元素的最大值 | 字典只針對key比較 |
min(item) | 返回元素的最小值 | 字典只針對key比較 |
運算子
高階資料型別同樣支援以下常見的運算子:
序號 | 運算子 | 描述 | 支援的資料型別 |
---|---|---|---|
01 | + | 合併 | 列表,元組,字串 |
02 | * | 重複 | 列表,元組,字串 |
03 | in | 元素是否存在 | 列表,元組,字典,字串 |
04 | not in | 元素是否不存在 | 列表,元組,字典,字串 |
05 | > < >= <= == | 比較 | 列表,元組,字串 |
切片
切片使用索引值可以方便地擷取容器中一定範圍的資料,適用於列表,元組,字串。
切片語法如下:
item[N:M:S]
其中N表示要擷取的開始位置,M表示結束位置,S表示step也就是步長,預設是1,擷取的時候[N:M]是個半閉合區間,等效於數學上[N,M)取值範圍,取N不取M, N和M都可以省略。python中,-1可以表示最後一個元素,字串利用切片完成翻轉的程式碼如下:
>>> test_str = "Hello World"
>>> print(test_str[::-1])
python函式語法
在python中定義一個函式需要使用def關鍵字,相比其他語言,返回值不需要宣告,定義一個函式的語法如下:
def print_hello():
print("Hello, World!")
預設引數
除了常見的必須引數外,python支援預設引數,即為引數指定一個預設值,可以不傳入這個引數,程式碼例子如下:
def print_human(name, age = 23):
print("body info: name is %s, age is %s" % (name, age) )
print_human("wangwu")
print_human("lisi", 25)
print_human("zhangsan", age = 36)
多值引數
如果函式處理的引數的個數不確定,就可以用多值引數:
- 引數名前面增加一個*可以接收元組
- 引數名前面增加兩個*可以接收字典
使用了這兩個多值引數的程式碼例子如下:
def print_info(*args, **kwargs):
print(args)
print(kwargs)
program_list = ["c++", "java", "python", "php"]
human_dic = {"name": "zhangsan", "age": 26, "height": 1.75, "weight": 66}
print_info(*program_list, **human_dic)
返回多個值
python中可以利用元組返回多個值,多個返回值的程式碼如下:
def measure_rect():
width = 12
height = 6
return width, height
w, h = measure_rect()
print("width is %d, height is %d" % (w, h))
python常用函式
print輸出函式
python使用print函式將資訊輸出到控制檯,輸出資料時經常會用到格式化操作符,不同的格式化字串含義如下表:
格式化字元 | 含義 |
---|---|
%s | 字串 |
%d | 有符號十進位制整數(%07d 表示顯示7位整數,不足就用0補全) |
%f | 浮點數(%.02f 表示小數點後顯示兩位) |
%% | 輸出% |
語法格式如下:
print("格式化字串" % 變數1)
print("格式化字串" % (變數1, 變數2...))
print函式預設會自動在內容末尾增加換行,如果不希望換行,可以用end引數指定需要輸出的內容
語法格式如下:
print("Hello word!", end="")
input輸入函式
使用input函式從鍵盤等待使用者的輸入,預設都是一個字串
語法格式如下:
字串變數 = input("提示資訊:")
型別轉換函式
常見的型別轉換函式如下:
函式 | 說明 |
---|---|
int(x) | 將x轉換為一個整數 |
float(x) | 將x轉換為一個浮點數 |
str(list) | 將列表轉換為字串 |
tuple(list) | 將列表轉換為元組 |
list(tuple) | 將元組轉換為列表 |
相關文章
- Java基礎知識點梳理Java
- Python教程分享之Python基礎知識點梳理Python
- Python培訓教程之Python基礎知識點梳理Python
- 多執行緒基礎知識點梳理執行緒
- js基礎知識梳理JS
- kafka基礎知識梳理Kafka
- MongoDB基礎知識梳理MongoDB
- 基礎知識梳理~資料庫資料庫
- RxJava 知識梳理(3) RxJava2 基礎知識小結RxJava
- java基礎知識點Java
- JavaWeb基礎知識點JavaWeb
- JavaScript基礎知識點JavaScript
- 機器學習基礎知識梳理,新手必備!(附連結)機器學習
- Docker容器學習梳理 - 基礎知識(2)Docker
- Docker容器學習梳理–基礎知識(2)Docker
- Kotlin 知識梳理(1) Kotlin 基礎Kotlin
- Canvas&Paint 知識梳理(1) Canvas 基礎CanvasAI
- Docker容器學習梳理 - 基礎知識(1)Docker
- Python知識梳理Python
- python 基礎知識Python
- python基礎知識Python
- python基礎語法知識點總結Python
- JVM面試知識點梳理JVM面試
- Angular常用知識點梳理Angular
- 超全面的Linux基礎知識的梳理Linux
- MySQL 基礎知識梳理學習(四)—-GTIDMySql
- LVS負載均衡-基礎知識梳理負載
- OkHttp 知識梳理(3) OkHttp 之快取基礎HTTP快取
- Python入門必知的知識點!Python基礎入門Python
- Servlet基礎知識點整理Servlet
- JavaScript部分基礎知識點JavaScript
- Java 基礎面試知識點Java面試
- Python基礎知識之Django框架優缺點!PythonDjango框架
- Python基礎知識整理Python
- Python基礎知識1Python
- Python基礎知識分享Python
- Python 基礎知識教程Python
- 基礎知識梳理~ES6 解構賦值賦值