首頁>技術>

一、程式的基本格式1.1 縮排

1.使用tab製表符或空格表示縮排,預設為一個製表符或4個空格為一個層級。(編輯器可自動調整tab為四個空格)2.同一程式內縮排數量應保持一致。

age = int(input("請輸入您的年齡:"))if abs(age) >= 18:    print("您已成年")else:    print("您還是未成年")12345
1.2 大小寫

python區分大小寫,python和Python代表兩個物件。

1.3 註釋

註釋表示該語句在程式執行時不被執行。單行註釋使用【# 註釋語句】,多行註釋採用【’’'註釋語句‘’‘】。

name = "傑尼龜"name = "水箭龜"Name = "皮卡丘"print(name) #結果為水箭龜print(Name) #結果為水卡丘'''python裡區分大小寫,變數命名時應注意使用'''12345678
1.4 行連線符及【;】的使用

python中一行程式碼過長時可在想換行處使用行連線符【\】,進行換行編寫。程式還是會認為它在同一行。

print("隨便打一串文\字做一下測試")12

如果想把幾行程式碼寫為一行,可用【;】進行連線。

num = 2 ; result = num + 3 print(result) 12
4.跳脫字元

Python 支援的跳脫字元

字元含義字元含義\換行符\ t製表符\ \反斜線\ b退格符\ n換行符\ r回車符\ ‘單引號\ “雙引號

二、程式的構成2.1 物件

python中一切皆物件

1.每個物件皆有對應的標識(id)、型別(type)、值(value)。2.變數透過儲存物件ID對其進行引用。3.物件只能進行與其型別對應相關操作。

2.2 識別符號

用於變數、函式、類、模組等的名稱

命名規則:

a.區分大小寫。如:zxl和Zxl是不同的;b.第一個字元必須是字母、下劃線。其後字元是字母、下劃線、數字;c.不能使用關鍵字,如:if、elif、or等;d.以雙下劃線開頭和結尾的名稱通常由特殊含義,儘量避免此種寫法。如:__init__是類的建構函式。

python保留字元(僅包含小寫字母部分)

andexecnotassertfinallyorbreakforpassclassfromprintcontinueglobalraisedefifreturndelimporttryelifinwhileelseiswithexceptlambdayield

特殊命名約定

型別規則舉例模組名、包名全小寫字母,儘量簡單,若多個單詞用下劃線連結math、time、os函式名全小寫字母,若多個單詞用下劃線連結say_hi、sum_num類名單詞首字母大寫,採用駝峰原則My_Name常量名python不支援常量。只能透過邏輯控制物件為一個常量,採用全大寫MY_NAME

2.3 變數(變數作用域:全域性變數、區域性變數詳見擴充部分)

程式就是用來處理資料的,而變數就是用來引用資料的;python中的變數不需要指明型別,系統會自動識別。

變數的初始化(賦值)

利用【=】號進行賦值:變數名 = 表示式

a = "傑尼龜" #id = 1612667500272 type:strprint(id(a),type(a))12

python執行程式從上往下執行,如果後續程式碼中為變數重新指代了值,以前的那個值會被替換,並被python進行垃圾回收。

變數的賦值方式

鏈式賦值:將一個物件同時賦值給多個變數。變數1 = 變數2 = 物件1

a = b = "傑尼龜"  print(a,b) #結果為傑尼龜 傑尼龜12

解包賦值解包賦值可使用列表、元組、字典。方便我們對多個變數進行賦值元組解包

(a , b , c) = (1 , 2 , 3) #等同於 a,b,c = 1,2,3print(a , b , c) #結果為1 2 312

列表解包

[a,b,c] = [[1,2],3,[4,5]]print(a) #結果為[1, 2]print(b) #結果為3print(c) #結果為[4, 5]1234

字典解包:字典解包時,預設是對鍵進行操作。如果想對值進行解包賦值,需使用values(),如果是想對鍵值對整體賦值,需使用items()(返回結果為元組型別)。

s = {"name":"傑尼龜","age":18,"color":"yellow"}a,b,c = sprint(a,b,c) #結果為name age colora,b,c = s.values()print(a,b,c) #結果為傑尼龜 18 yellowa,b,c = s.items()print(a,b,c) #結果為('name', '傑尼龜') ('age', 18) ('color', 'yellow')1234567

變數值互換

變數1,變數2 = 物件1 ,物件2變數1,變數2 = 變數2 , 變數1

a = b = "傑尼龜"del aprint(b) #結果為傑尼龜print(a) #丟擲異常:name 'a' is not defind1234

變數刪除後,變數指代的物件依然存在,但是沒有變數引用的物件會被python垃圾回收器回收,清除記憶體空間

2.5 程式的輸入與輸出

輸入函式

python利用內建函式input()來獲取控制檯鍵盤輸入的內容,並將內容儲存於變數。

【變數 =input(“提示資訊”) 】

age = input("請輸入您的年齡:") print(type(age)) #結果為<class 'str'>12

獲取到的資料會儲存為字串型別

列印函式

python透過print()函式將程式執行結果輸出值控制端。

【print(想要輸出的結果,end = “任意字串”)】

age = input("請輸入您的年齡:") #輸入25print(type(age)) #結果為<class 'str'>print(age) #結果為25123

逗號後可不寫,不寫則為預設的end = “\n”

不換行列印

呼叫print()函式時預設結尾為換行符,可調整為其他字串,使函式進行不換行列印。

a , b = 1 , 2print(a,end="**") #結果為1**2(在同一行,不會換行)print(b) #如不加end=str,預設為end= "\n"123
三、基本資料型別3.1 布林型(bool)1.布林值的建立

布林型中只有True和False兩個值,表示真和假(注意大小寫);

2.布林值的運算

a.作為布林值使用時通常搭配邏輯運算子與(and)或(or)非(not)進行使用。b.也可做為數字1和0使用(True為1,False為0)。

#and:一假返回假,or:一真返回真,not :返回相反值print(True and True) #結果為Trueprint(True and False) #結果為Falseprint(False and False) #結果為Falseprint(True or True) #結果為Trueprint(True or False) #結果為Trueprint(False or False) #結果為Falseprint(not False) #結果為Trueprint(not True) #結果為Falseprint(True + 1) #結果為2print(False + 1) #結果為11234567891011
3.2 數字型1.整數型(int)

即為數學上的整數,例如:1,2,25,30等。

2.浮點型(float)

即為數學上的小數,包含.0小數,例如1.5,2.83,17.0等。

3.算術運算子

以下假設變數 a=10,b=20:

當整數與浮點數進行運算時,返回的值預設為浮點數。

a , b = 2 , 2.5print(type(a * b)) #結果為<class 'float'>12
4.數字格式化

下表展示了 str.format() 格式化數字的多種方法:

a = 3.1415926print("{:.2f}".format(a)) #結果為3.1412

數字格式輸出描述3.1415926{:.2f}3.14保留小數點後兩位3.1415926{:+.2f}+3.14帶符號保留小數點後兩位-1{:+.2f}-1.00帶符號保留小數點後兩位2.71828{:.0f}3不帶小數5{:0>2d}05數字補零 (填充左邊, 寬度為2)5{:x<4d}5xxx數字補x (填充右邊, 寬度為4)10{:x<4d}10xx數字補x (填充右邊, 寬度為4)1000000{:,}1,000,000以逗號分隔的數字格式0.25{:.2%}25.00%百分比格式1000000000{:.2e}1.00e+09指數記法13{:>10d} 13右對齊 (預設, 寬度為10)13{:<10d}13左對齊 (寬度為10)13{:^10d} 13中間對齊 (寬度為10)11

'{:b}'.format(11)'{:d}'.format(11)'{:o}'.format(11)'{:x}'.format(11)'{:#x}'.format(11)'{:#X}'.format(11)
10111113b0xb0XB

進位制

^,<,>分別是居中、左對齊、右對齊,後面頻寬度,: 號後面帶填充的字元,只能是一個字元,不指定則預設是用空格填充。+表示在正數前顯示+,負數前顯示-,(空格)表示在正數前加空格b、d、o、x 分別是二進位制、十進位制、八進位制、十六進位制。

5.其他操作

divmod()函式:同時得到商和餘數。

a = 10b = 3print(divmod(a,b)) #結果為元組(3,1)123

round()函式:將浮點數四捨五入。

a = 3.678print(round(a))#結果為412

chr():用一個範圍在 range(256)內的(就是0~255)整數作引數,返回一個對應的字元(引數可以是16進位制或者10進位制)。

a = 66 #十進位制b = 0x68 #十六進位制print(chr(a)) #結果為Bprint(chr(b)) #結果為B1234
3.3 字串型(str)

是一種不可變的字元序列:後續所有拼接/修改操作均為形成新的字串資料(標點符號及空格也是字元)。

1.字串的建立

利用單引號(‘xxx’)/雙引號(“xxx”)進行建立。

a = '傑尼龜' ; b = "可達鴨"c = "my name is '傑尼龜'"print(type(a),type(b)) #結果為<class 'str'>123

多行字串(‘’‘xxxxxxx’’’)進行建立。

a = '''傑尼龜'''print(type(a)) #結果為<class 'str'>1234
2.字串的拼接

使用【+】號進行拼接,生成一個新的拼接後的字串物件。

a ,b , c= '傑尼龜' , "可達鴨" ,111print(a + str(c) + b)#結果為傑尼龜111可達鴨12

直接字串相接也可拼接

c= '傑尼龜' '暴打'"可達鴨"print(c)#結果為傑尼龜暴打可達鴨12

“”.join(list):將列表中字串用特定字元拼接起來,不指定字元預設為直接拼接。

a = ['我', '叫', '傑', '尼', '龜']print("".join(a)) #結果為我叫傑尼龜print("*".join(a)) #結果為我*叫*傑*尼*龜123

使用【+】,每【+】一次會形成一個新的物件。使用join在拼接字串之前會計算所有字串的長度,然後逐一複製,僅新建一次物件。大型運算時推薦使用join

3.字串的複製

字串可直接使用乘法運算子進行復制

c = '傑尼龜'print(c * 3)#結果為傑尼龜傑尼龜傑尼龜12
4.檢查字串

str.isdigit():檢查字串內部是否全部是數字,返回True或False。

c = '123456'print(c.isdigit())#結果為Truec = '123 456'print(c.isdigit())#結果為False1234

str.isalpha():檢查字串內部是否全是字母,返回True或False。

c = 'asdfgh'print(c.isalpha())#結果為Truec = 'asdfgh123'print(c.isalpha())#結果為False1234

str.isupper():檢查字串內部是否全是大寫字母,返回True或False。

c ='ASDFGH'print(c.isupper())#結果為Truec =  'asdfgh'print(c.isupper())#結果為False1234

str.islower():檢查字串內部是否全是小寫字母,返回True或False。

c ='asdfgh'print(c.islower())#結果為Truec ='ASDFGH'print(c.islower())#結果為False1234

str.endswith():檢查字串內部是否以指定字串結尾,返回True或False。

c ='asdfgh'print(c.endswith("gh"))#結果為True12

str.startswith():檢查字串內部是否以指定字串開頭,返回True或False。

c ='ASDFGH'print(c.startswith("AS"))#結果為True12

str.isspace():檢查字串內部是否全是空格,返回True或False。

c =' 'print(c.isspace())#結果為True12
5.查詢字串

len():查詢字串的長度,返回長度數值。

c ='123456789'print(len(c))#結果為912

str.find():查詢指定字元在字串中從左往右第一次出現的位置,有則返回字元下標(編號),沒有返回-1。

c ='123456789'print(c.find("3"))#結果為2print(c.find("10"))#結果為-1123

str.rfind():查詢指定字元在字串中從右往左第一次出現的位置,有則返回字元下標(編號),沒有返回-1。

c ='1234567289'print(c.rfind("2"))#結果為7print(c.rfind("10"))#結果為-1123

str.index():查詢指定字元在字串中第一次出現的位置,有則返回字元下標(編號),沒有丟擲異常。

c ='123456789'print(c.index("9"))#結果為8print(c.index("10"))#結果為ValueError: substring not found123

str.count():查詢指定字元在字串中總共出現次數,返回數量。

c ='123456789123465184'print(c.count("1"))#結果為3print(c.count("10"))#結果為0123
6.“修改”字串

python中字串本身為不可修改型別,所有修改操作均為建立新的物件,原字串不做改變。

str.replace(“old”,“new”):使用指定字元替換字串中對應字元。

a = "hello world"print(a.replace("o","0"))#結果為hell0 w0rld12

str.upper():將字串內部字母轉換為大寫字母。

a = "12345asdf"print(a.upper())#結果為12345ASDF12

str.lower() :將字串內部字母轉換為小寫字母。

a = "12345ASDF"print(a.lower())#結果為12345asdf12

str.capitalize():將一個字串的第一個字元改為大寫字母,其餘字母變小寫。如果第一個字元不是字母,則僅將後續字母改為小寫。

a = "12345ASDF"print(a.capitalize())#結果為12345asdfa = "a2345ASDF"print(a.capitalize())#結果為A2345asdf1234

str.split():將字串按照指定字元進行分割為多個字串並存儲在列表中,如不指定字元,預設為空格、換行符、製表符。

a = "我 叫 傑 尼 龜"b = "我*叫*傑*尼*龜"print(a.split())#結果為['我', '叫', '傑', '尼', '龜']print(b.split("*"))#結果為['我', '叫', '傑', '尼', '龜']1234

str.title():將字串中每個單詞的首字母大寫,其餘改為小寫

a = "my name"b = "MY NAME"print(a.title())#結果為My Nameprint(b.title())#結果為My Name1234

str.swpacase():將字串中所有字母大小寫互換

a = "My Name"print(a.swapcase())#結果為mY nAME12

str.strip():將字串中首尾的指定字元去除

a = '**傑尼*龜*'print(a.strip("*")) #結果為傑尼*龜12

str.lstrip():將字串中左側的指定字元去除

a = '**傑尼*龜*'print(a.lstrip("*")) #結果為傑尼*龜*12

str.rstrip():將字串中左側的指定字元去除

a = '**傑尼*龜*'print(a.rstrip("*")) #結果為**傑尼*龜12

eval():去除首尾引號,並執行餘下語句

a = '123'print(eval(a)+2) #結果為12512

ord():將單字串轉換為對應的Unicode編碼

a = "傑"print(ord(a)) #結果為2648012
7.字串排版

str.center(num,“x”):填充x字元使字串達到num長度,並將其居中

a = "傑"print(a.center(5,"*")) #結果為**傑**12

str.ljust(num,“x”):填充x字元使字串達到num長度,並將原字串居左

a = "傑"print(a.ljust(5,"*")) #結果為傑****12

str.rjust(num,“x”):填充x字元使字串達到num長度,並將原字串居右

a = "傑"print(a.rjust(5,"*")) #結果為****傑12
8.format()函式的應用

使用示例

a = "傑尼龜"b = "可達鴨"print("{}暴打{}".format(a,b)) #結果為傑尼龜暴打可達鴨print("{0}暴打{0}".format(a,b)) #結果為傑尼龜暴打傑尼龜print("{0}暴打{1}".format(a,b)) #結果為傑尼龜暴打可達鴨print(f"{a}暴打{b}") #結果為傑尼龜暴打可達鴨123456

format()函式

print("{0}*{1}={2:*<7}".format(3,2,2*3))1

位置索引

關鍵字對映

元素訪問

填充對齊

a , b , c = "傑尼龜" , "可達鴨" , "傑尼龜"print("{0:*^7}使用火箭頭槌暴打{1:*>7}和{2:*<7}".format(a,b,c)) #結果為**傑尼龜**使用火箭頭槌暴打****可達鴨和傑尼龜****123

【^,<,>】分別是居中、左對齊、右對齊,後面頻寬度,: 號後面帶填充的字元,只能是一個字元,不指定則預設是用空格填充。

9.字串索引操作

str[num]:找到字串指定位置的字元。

標點符號及空格也是字元

a= "my name is '傑尼龜'"print(a[3]) #結果為n12
10.字串切片操作

str[x:y:±step]:從編號x到編號y之前,從左到右或從右到左以step間隔取值

在切片操作中,起始終止編號不在[0:字串長度-1]這個範圍內也不會報錯,超過0或末端按0和末端擷取

3.4型別轉換

在python中可使用內建函式對資料型別進行型別轉換:

① str():將資料轉換為字串型別;

a , b , c ='123',456,789.5print(str(b)) ; print(str(c)) #結果為'456' 、 '789.5'12

② float():將純數字字串或整數轉換為浮點數;

a , b , c ='123',456,789.5print(int(a)) ; print(int(c)) #結果為123 、 78912

int()函式轉換是直接去掉小數點,而不是四捨五入

四、運算子1.比較運算子

比較運算子運算結果返回True和False。

假設:a = 15 ; b = 20

運算子描述例項==等於:比較兩個物件值是否相等a == b;返回False!=不等於:比較兩個物件值是否不相等a != b;返回True>大於:比較兩個物件值的大小關係a > b;返回False<小於:比較兩個物件值的大小關係a < b;返回True>=大於等於:比較兩個物件值的大小關係a >= b;返回False<=小於等於:比較兩個物件值的大小關係a <= b;返回True

2.邏輯運算子

與(and)、或(or)、非(not)

運算子例項說明andx and yx為True,計算並返回y的值。x為False,不計算y,返回Falseorx or yx為True,不計算y,返回True。x為False,計算並返回y的值notnot xx為True,返回False。x為False,返回True

3.身份運算子

is、not is比較兩個物件的id是否一致

運算子例項說明is比較兩個物件地址是否一致x is y :‘類似於id(x) == id(y) , 如果引用的是同一個物件則返回 True,否則返回 Falsenot is比較兩個物件地址是否一致x not is y :‘類似於id(x) != id(y) , 如果引用的不是同一個物件則返回 True,否則返回 False

4.成員運算子

in、not in判斷物件是否在物件內部

運算子例項說明in如果在指定的序列中找到值返回 True,否則返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。not in如果在指定的序列中未找到值返回 True,否則返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

5.算術運算子

運算子描述例項+加 - 兩個物件相加a + b 輸出結果 30-減 - 得到負數或是一個數減去另一個數a - b 輸出結果 -10*乘 - 兩個數相乘或是返回一個被重複若干次的字串a * b 輸出結果 200/除 - x除以yb / a 輸出結果 2%取模 - 返回除法的餘數b % a 輸出結果 0**冪 - 返回x的y次冪a**b 為10的20次方, 輸出結果 100000000000000000000//取整除 - 返回商的整數部分(向下取整

>>> 9//24>>> -9//2-5
6.賦值運算子

運算子描述例項=簡單的賦值運算子c = a + b 將 a + b 的運算結果賦值為 c+=加法賦值運算子c += a 等效於 c = c + a-=減法賦值運算子c -= a 等效於 c = c - a*=乘法賦值運算子c *= a 等效於 c = c * a/=除法賦值運算子c /= a 等效於 c = c / a%=取模賦值運算子c %= a 等效於 c = c % a**=冪賦值運算子c **= a 等效於 c = c ** a//=取整除賦值運算子c //= a 等效於 c = c // a

7.位運算子(我也不知道這咋用)

按位運算子是把數字看作二進位制來進行計算的。Python中的按位運演算法則如下:下表中變數 a 為 60,b 為 13,二進位制格式如下:

a = 0011 1100b = 0000 1101

a&b = 0000 1100a|b = 0011 1101a^b = 0011 0001~a = 1100 0011

運算子描述例項&按位與運算子:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0(a & b) 輸出結果 12 ,二進位制解釋: 0000 1100|按位或運算子:只要對應的二個二進位有一個為1時,結果位就為1。(a | b) 輸出結果 61 ,二進位制解釋: 0011 1101^按位異或運算子:當兩對應的二進位相異時,結果為1(a ^ b) 輸出結果 49 ,二進位制解釋: 0011 0001~按位取反運算子:對資料的每個二進位制位取反,即把1變為0,把0變為1 。~x 類似於 -x-1(~a ) 輸出結果 -61 ,二進位制解釋: 1100 0011,在一個有符號二進位制數的補碼形式。<<左移動運算子:運算數的各二進位全部左移若干位,由 << 右邊的數字指定了移動的位數,高位丟棄,低位補0。a << 2 輸出結果 240 ,二進位制解釋: 1111 0000>>右移動運算子:把">>"左邊的運算數的各二進位全部右移若干位,>> 右邊的數字指定了移動的位數a >> 2 輸出結果 15 ,二進位制解釋: 0000 1111

8.Python運算子優先順序

以下表格列出了從最高到最低優先順序的所有運算子:

運算子描述**指數 (最高優先順序)~ + -按位翻轉, 一元加號和減號 (最後兩個的方法名為 +@ 和 -@)* / % //乘,除,取模和取整除+ -加法減法>> <<右移,左移運算子&位 'AND'^ |位運算子<= < > >=比較運算子<> == !=等於運算子= %= /= //= -= += *= **=賦值運算子is not is身份運算子in not in成員運算子not and or邏輯運算子

五、列表(list)

列表是一種python內建可變序列,用來儲存不限數量、不限型別的資料集合。

1.列表的建立

方括號建立

方括號內新增資料,使用【,】逗號隔開

l = [1,2,3,"傑尼龜","可達鴨",True,False]print(type(l)) #結果為<class 'list'>12

生成器推導式建立:利用for迴圈加條件判斷建立想要的列表

l = [i for i in range(5)]print(l) #結果為[0, 1, 2, 3, 4]l = [i+5 for i in range(5) if i <=3]print(l) #結果為[5, 6, 7, 8]1234

list()函式建立

使用list函式將可迭代資料轉換為列表

l = list("傑尼龜暴打可達鴨")print(l) #結果為['傑', '尼', '龜', '暴', '打', '可', '達', '鴨']12

使用list函式將range函式轉換為列表:建立整數序列(開始預設為0,步長預設為1),步長正數從小往大數,步長負數從大往小數。開始結束數值應滿足大小關係,否則返回空列表

l = list(range(5))print(l) #結果為[0, 1, 2, 3, 4]l = list(range(3,10,2))print(l) #結果為[3, 5, 7, 9]l = list(range(10,3,-2))print(l) #結果為[10, 8, 6, 4]l = list(range(3,10,-2))print(l) #結果為[]12345678
2.增加元素

list.append():在列表末尾新增單個元素(速度最快,推薦使用)。

l = [1]l.append("10")print(l) #結果為[1, '10']123

list.extend(list1):將list1新增到list尾部。

l = [1]l1 = ["10"]l.extend(l1)print(l) #結果為[1, '10']1234

list.extend(list1):將list1新增到list尾部。

l = [1]l1 = ["10"]l.extend(l1)print(l) #結果為[1, '10']1234

list.insert():在列表指定位置新增單個元素。

l = [1,2,3,4,5]l.insert(3,5)print(l) #結果為[1, 2, 3, 5, 4, 5]123

以上操作均為原地修改,不產生新物件

list1 + list2 :將列表2新增到列表1尾部(會產生一個新的列表物件,原列表不會改變)。

l = [1,2,3,4,5]l1 = [6,7,8,9,10]l2 = l + l1print(l) #結果為[1, 2, 3, 4, 5]print(l2) #結果為[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]12345

list * num :將原列表複製num份併合併成一個新列表(會產生多個新的列表物件,原列表不會改變)。

l = [1,2,3]l1 = l * 3print(l) #結果為[1, 2, 3]print(l1) #結果為[1, 2, 3, 1, 2, 3, 1, 2, 3]1234

利用切片新增新增成段元素

a = [1,2,3,6]b = [4,5]a[2:2] = bprint(a) #結果為[1, 2, 4, 5, 3, 6]1234
3.刪除元素

del list[num] :刪除列表指定位置的元素。如不指定位置則為刪除列表本身。

l = [1,2,3]del l[2]print(l) #結果為[1, 2]del lprint(l) #結果為name 'l' is not defined12345

list.clear() :清除列表中所有元素,不是刪除列表本身。

l = [1,2,3]l.clear()print(l) #結果為[]123

list.pop():提取出列表指定位置的元素,留作他用。

l = [1,2,3,4,3,5]l.remove(3)print(l) #結果為[1, 2, 4, 3, 5]123

最後多說一句,小編是一名python開發工程師,這裡有我自己整理的整套python學習資料和路線,想要這些資料的都可以關注小編,並私信“01”領取。

6
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 如何在JAVA專案中實現反向代理功能?看我是這麼做的