Python必看的總結筆記
1.在Python中,一般來說一條語句佔用一行。一條語句結束一般不需要使用C語言中的“;”,但在Python中也可以使用“;”將兩條語句寫在一行。另外,如果縮排語句中只有一條語句,也可以將其寫在“:”之後。
2.單引號中的字串可以包含雙引號,雙引號中的字串可以包含單引號,而不需要使用轉義字元。另外3個引號所包圍的字元可以作為註釋,還可以作為格式化的字串,該字串可以不再一行,格式化後行尾會自動轉化為“\n”轉義字元。
3.在Python中可以使用“\”將較長的語句分成幾行來寫,但是注意每行後面不可以有#註釋。或者可以使用圓括號將較長的語句分行,每行後面可以使用#註釋。
4.型別間轉換
int():可變換字串轉換為整數
float():可變換字串轉換為浮點數
str():將數字轉換為字串
hex():將整數轉換為十六進位制字串,包含字首“0x”
oct():將整數轉換為八進位制字串,包含字首“0o”
注:string模組中有string.atoi(x, base = 10),類似int(),但是可以選擇變換後的進位制。
5.math模組中數學函式:
sin(x)
cos(x)
asin(x)
acos(x)
tan(x)
atan(x)
hypot(x, y):求直角三角形的斜邊長度,x和y為兩個直角邊長度
fmod(x, y):求x / y的餘數,等同於x % y
ceil(x):求不小於x的最大整數
floor(x):求不大於x的最小整數
fabs(x):求x的絕對值
exp(x):求e的x次冪
pow(x, y):求x的y次冪,等同於x ** y
log10(x):求x以log10為底的對數
sqrt(x):求x的平方根
pi:求pi的值
6.字串操作
string.capitalize():將字串第一個字母大寫
string.count(x):獲得字串中某字串的數目
string.find(x):獲得字串中某子字串的起始位置
string.isalnum():是否僅包含0~9、A~Z、a~z
string.isalpha():是否僅包含A~Z、a~z
string.isaldigit():是否僅包含0~9
string.islower()
string.isupper()
string.lower()
string.upper()
string.isspace()
string.istitle():字串中所有單詞是否首字母大寫
string.title()
string.join(x):將string插入x中的每兩個字元之間
string.swapcase():大小寫字母轉換
string.split(x):利用分割字串的單詞(預設是space)
len(string)
7.格式化字串
%f
%d
%s
%o:八進位制整數
%x:十六進位制整數
注:r"xxxxx"或者R"xxxxx"表示原始字串,常用語正則表示式或者路徑表示中,其間沒有轉義字元,均是正常字元。
8.列表list
list.append(x):追加成員x
list.count(x):引數x出現的次數
list.extend(x):list1+list2無法改變list1,只能返回一個新的list,但是list2.extend(list2)函式可以改變list1的值
list.index(x):獲得x在list中的位置
list.insert(index, x):在index處插入x
list.pop(index):刪除索引為index的成員
list.remove(x):刪除值為x的成員
list.reverse()
list.sort()
list.clear()-
注:tuple的操作與list類似,但是不包含可修改元組的操作。
9.字典dict
dict.clear()
dict.copy(x):將字典x拷貝給dict
dict.get(key):等同於dict[k]
dict.has_key(key):是否包含key鍵
dict.items():獲得鍵-值對組成的列表
dict.keys():獲得鍵組成的列表
dict.values():獲得值組成的列表
dict.pop(key)
dict.update(x):利用字典x更新原字典
10.檔案操作
open(filename, mode, bufsize)
filename:要開啟的檔名
mode:開啟模式(r是隻讀,w是替換寫,a是追加寫,+是讀寫等)
bufsize:緩衝區大小,可以預設
file.read():整個檔案讀入字串中
file.readlines():整個檔案讀入列表中
file.readline():某行讀入字串中
file.write(x):寫入字串
file.writelines(x):寫入列表x
file.close().
11.函式引數
呼叫函式可以同時使用按順序傳遞引數,以及關鍵字傳遞引數等,但是必須注意按順序傳遞的引數要位於按關鍵字傳遞的引數之前,而且不能有重複的情況發生。例如:
def sample(x, y, z):
pass
mysum(1, z = 5, y = 6) #ok
mysum(z = 6, y = 7, 3) #error
使用可變長引數的函式,將其所有引數儲存在一個元組裡,在函式中可以使用for迴圈來處理,宣告一個可變長引數的函式只需用*開頭定義一個引數即可。
12.區域性/全域性變數
區域性作用域內的變數的改變並不影響全域性作用域內的變數,除非通過引用的方式傳遞引數。如果要在函式內使用函式外的變數,可以在變數名前使用global關鍵字。例如:
def func(x):
global a
return x + a
13.模組查詢路徑
匯入模組時,python直譯器首先在當前目錄中查詢匯入的模組;如果未找到,直譯器會從sys模組中的path變數指定的目錄查詢匯入模組;如果均未找到,則會出錯。
import sys
sys.path
在指令碼中可以向sys.path新增查詢路徑,例如可以在.py中如下:
import os
import sys
modulepath = os.getcwd() + ‘\\module’ #module是當前目錄下的module子目錄
sys.path.append(modulepath)
import mymodule #mymodule在module子目錄中
************
14.dir(x)可以獲得匯入模組中的所有定義的名字和函式等。
import sys
dir(sys)
當不使用引數時,該函式將返回當前指令碼的所有名字列表。
15.模組包
包可以看成是出於同一個目錄中的模組,在python中首先使用目錄名,然後再使用模組名匯入所需要的模組。在包的每個目錄(包括子目錄)中都必須包含一個“__init__.py”的檔案,該檔案甚至可以是一個空檔案,僅用於表示該目錄為一個包。
在__init__.py中設定__all__變數和包初始化所需的程式碼,可以保證在from中使用*時名字的正確匯入。
from A.B import a
import A.B.a
有了包的概念可以很好地解決模組查詢路徑的問題,只要將所有的模組放在當前目錄中的某個資料夾內(子目錄),然後在子目錄內新建一個__init__.py檔案即可,而不需將子目錄的路徑新增到sys.path中。