1.1 格式框架
1.1.1 縮進
Python 語言采用嚴格的 “縮進” 來表明程式的格式框架,縮進用來表示代碼之間的包含和層次關系,它是 Python 語言中表明程式框架的唯一手段,PEP 8 指南建議使用四個空格表示一個縮進,這既提高了可讀性,又留下了足夠的多級縮進空間,
在字處理檔案中,通常被廣泛使用的是制表符,而不是使用空格來完成縮進,對于字處理檔案來說,這樣做的效果很好,但混合使用制表符和空格會讓 Python 解釋器感到迷惑,好在每款編輯器都提供了一種功能,可以將輸入的制表符轉換為指定數量的空格,因此,在撰寫代碼時絕對應該使用制表符鍵,但一定要對編輯器進行設定,使其在檔案中插入空格而不是制表符,
1.1.2 注釋
注釋是代碼中的輔助性文字,用以在程式中使用自然語言進行解釋說明,Python 語言采用 # 表示一行注釋的開始,多行注釋需要在每行開始都使用 #,PEP 8 建議注釋的行長不應超過 72 字符,
嚴格地講,Python 并未提供多行注釋,但可以使用成對的三個單引號 ''' 或雙引號 """ 來實作多行注釋的功能,事實上, ''' 或 """ 在 Python 中用來完成檔案注釋,
1.1.3 續行符
Python 程式是逐行撰寫的,每行代碼的長度并無限制,但單行代碼太長會不利于閱讀,PEP 8 建議每行不超過 80 個字符,
在 Python 中可以使用續行符將單行代碼分割成多行代碼,Python 中的續行符為 \,續行符后應直接換行,串列、元組、字典中的元素之間不使用續行符也可以直接換行,
在大多數的開發軟體中,都可以設定一個視覺標志,通常是一條垂直參考線,讓你知道不能越過的界限在什么地方,
1.1.4 空行
要將程式的不同部分分開,可使用空行,空行與代碼縮進不同,它并不是 Python 語法的一部分,即使書寫時不插入空行,也不會出現語法錯誤,但是空行的作用在于分隔兩段不同功能或含義的代碼,便于日后代碼的維護或重構,因此,空行也是程式代碼的重要部分,
通常,函式之間或類中的方法之間用空行分隔,表示一段新的代碼的開始,類和函式入口之間也用一行空行分隔,以突出函式入口的開始,
1.2 基本語法元素
1.2.1 變數與常量
變數是保存和表示資料值的一種語法元素,變數的值可以改變,能夠通過賦值方式被修改,變數的識別符號通常全部使用小寫字母,單詞之間使用下劃線連接,
常量是一種特殊的變數,其值在程式的整個生命周期內保持不變,通常使用全部大寫變數名的方式來指出應將該變數視為常量,相比于直接使用字面值而言,為常量指定一個有意義的名稱,可以更清晰地表達出它的用途,
1.2.2 識別符號
Python 語言允許使用大寫字母、小寫字母、數字、下劃線和漢字等字符及其組合給變數、函式、類等命名,即識別符號,識別符號的長度沒有限制,首字符不能是數字,中間不能出現空格,
注意:Python 對大小寫敏感,例如 message 和 Message 是兩個不同的識別符號,
1.2.3 保留字
保留字,也稱為關鍵字,指被編程語言內部定義并保留使用的識別符號,程式員撰寫程式不能定義與保留字相同的識別符號,每種程式設計語言都有一套保留字,保留字一般用來構成程式的整體框架、表達關鍵值和具有結構性的復雜語意等,
1.3 基本陳述句元素
1.3.1 運算式
產生或計算新資料值的代碼片段稱為運算式,運算式類似數學中的計算公式,運算后產生運算結果,運算結果的型別由運算子或運算子決定,運算式一般由資料和運算子等構成,是構成 Python 陳述句的重要部分,
1.3.2 賦值陳述句
Python 語言中,= 表示 “賦值”,即將等號右側的值計算后將結果值賦給左側變數,包含等號 = 的陳述句稱為 “賦值陳述句”,格式為:
<變數> = <運算式>
還可以使用同步賦值陳述句同時給多個變數賦值,格式為:
<變數 1>, …, <變數 N> = <運算式 1>, …, <運算式 N>
1.3.3 分支與回圈
分支陳述句的作用是根據判斷條件選擇程式執行路徑,包括單分支、二分支和多分支,
回圈陳述句與分支陳述句控制程式執行類似,它的作用是根據判斷條件確定一段程式是否再次執行一次或者多次,回圈陳述句包括遍歷回圈和條件回圈,
1.4 資料型別概述
1.4.1 數字型別
Python 中的數字型別有整數、浮點數、復數,分別和數學中的整數、小數、復數相對應,不同的數字型別可以直接計算,可以把 IDLE 當作一個計算器使用:
>>> 1 + 2
3
>>> 3 - 2
1
>>> 2 * 3
6
>>> 3 / 2
1.5
>>> 3 ** 2
9
>>> 3 ** 0.5
1.7320508075688772
>>> 2 + 3*4
14
>>> (2 + 3) * 4
20
1.4.2 字串
字串是字符的序串列示,根據字串的內容多少分為單行字串和多行字串,單行字串由一對單引號 ' 或雙引號 " 作為邊界來表示,多行字串由一對三單引號 ''' 或三雙引號 """ 作為邊界來表示,
在 Python 中,單引號和雙引號都用來表示字串,這種設計的好處是可以在字串中很輕松地包含引號和撇號:
>>> print('I tlod my friend, "Python is interesting."')
I tlod my friend, "Python is interesting."
>>> print("She's my best friend.")
She's my best friend.
還有一種特殊的字串是轉義字符,Python 語言的轉義符為 \,其與后面相鄰的一個字符共同組成了新的含義,如:\n 表示換行、\\ 表示反斜杠、\' 表示單引號、\" 表示雙引號、\t 表示制表符,
字串是一個字符序列,字串最左端位置標記為 0,向右依次增加;最右端位置標記為 -1,向左依次遞減,對字串中某個字符的檢索被稱為索引,索引的使用方式為:
<字串或字串變數>[序號]
>>> 'hello'[0]
'h'
>>> 'hello'[3]
'l'
>>> 'hello'[-2]
'l'
Python 中的字串以 Unicode 編碼存盤,字串的英文字符和中文字符都算作 1 個字符,
對字串中某個子串或區間的檢索被稱為切片,切片的使用方式為:
<字串或字串變數>[N: M]
切片將會回傳字串的第 N 個到第 M 個字符,不包含末尾的 M 個字符,
>>> 'hello'[1: 3]
'el'
>>> 'hello'[1:] # 檢索區間到最后一個字符結束
'ello'
>>> 'hello'[: 3] # 檢索區間從 0 開始
'hel'
>>> 'hello'[:] # 回傳字串副本
'hello'
此外,還可以在切片時指定步長:
<字串或字串變數>[N: M: K]
>>> 'hello'[::2]
'hlo'
>>> 'hello'[::-1]
'olleh'
>>> 'hello'[1: 3: 2]
'e'
1.4.3 串列與元組
串列、元組以及字串在 Python 中同屬于序列型別,序列型別是一維元素向量,元素之間存在先后關系,通過序號訪問,因此,上述對字串的索引、切片操作同樣適用于串列及元組型別,
字串型別可以看成是字符的有序組合,串列則是一個可以使用多種型別元素的序列型別,由方括號[]表示,串列中的元素可以進行修改,
>>> pets = ['dog', 'cat', 'rabbit'] # 創建串列
>>> pets[1] = 'parrot' # 修改串列
>>> pets
['dog', 'parrot', 'rabbit']
元組可以被視為一種特殊的串列,它使用圓括號來表示,元組中的元素不能被更改,
>>> pets = ('dog', 'cat', 'rabbit')
>>> pets[0] = 'goldfish'
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
pets[0] = 'goldfish'
TypeError: 'tuple' object does not support item assignment
對于序列型別,有一些通用的操作:
x in s:如果 x 是 s 的元素,回傳 True,否則回傳 False,
x not in s:如果 x 不是 s 的元素,回傳 True,否則回傳 False,
s + t:連接 s 和 t,
s * n 或 n * s:將序列 s 復制 n 次,
len(s):回傳序列 s 的元素個數(長度),
min(s):回傳序列 s 中的最小元素,
max(s):回傳序列 s 中的最大元素,
sorted(s):對 s 的元素進行順序排序,并以串列的形式回傳結果,如果需要逆序排序,傳遞引數 reverse=True 即可,
s.index(x):回傳序列 s 中第一次出現元素 x 的位置,
s.count(x):回傳序列 s 中出現 x 的總次數,
1.4.4 集合與字典
Python 語言中的集合型別與數學中的集合概念一致,即包含 0 個或多個資料項的無序組合,用大括號 {} 表示,因為集合是無序的,所以沒有索引和位置的概念,集合中的元素可以進行增刪,
集合中的元素型別只能是固定資料型別,例如:整數、浮點數、字串、元組等,而串列、字典和集合型別本身都是可變資料型別,不能作為集合的元素出現,
>>> S = {2.71, 'dog', (1, 2)}
>>> S
{2.71, (1, 2), 'dog'}
從上面的程式可以看到,集合的列印效果與定義順序并不一致,因為集合元素是無序的,
字典是一種映射型別,使用 “鍵值對” 組織資料,這種組織資料的方式廣泛應用在 Web 系統中,鍵值對的基本思想是將 “值” 資訊關聯一個 “鍵” 資訊,進而通過鍵資訊查找對應的值資訊,這個程序叫映射,Python 語言中通過字典型別實作映射,
Python 語言中的字典使用大括號 {} 建立,每個元素是一個鍵值對,使用方式如下:
{<鍵 1>: <值 1>, <鍵 2>: <值 2>, …, <鍵 n>: <值 n>}
其中,鍵和值通過冒號連接,不同的鍵值對通過逗號隔開,從 Python 3.7 開始,字典中元素的排列與定義時相同,如果將字典列印出來或遍歷其元素,將發現元素的排列順序與添加順序相同,
字典有時會存盤眾多的資料,因此可以使用多行來定義一個字典,例如下面的字典存盤了每個人最喜歡的編程語言:
favourite_languages = {
'jen': 'python',
'sarch': 'c',
'edward': 'ruby',
'phil': 'python',
}
如上代碼所示,最后一個鍵值對的后面也添加了逗號,這樣做的好處是可以為添加下一行鍵值對時做好準備,
串列型別采用元素的位置進行索引,在字典的鍵值對元素中,鍵是值的索引,因此,可以直接利用鍵值對關系索引元素,字典中鍵值對的索引模式如下,采用中括號格式:
<值> = <字典變數>[<鍵>]
>>> d = {"01": "小明", "02": "小紅", "03": "小白"}
>>> d["02"]
小紅
利用索引和賦值操作配合,可以對字典中每個元素進行修改:
>>> d = {"01": "小明", "02": "小紅", "03": "小白"}
>>> d["02"] = "阿紅"
>>> d
{'01': '小明', '02': '阿紅', '03': '小白'}
通過索引和賦值配合,還可以向字典中增加元素:
>>> d = {}
>>> d["04"] = "小新"
>>> d
{'04': '小新'}
對于字典中不再需要的資訊,可以使用 del 陳述句將相應的鍵值對徹底洗掉,使用 del 陳述句時,必須指定字典名和要洗掉的鍵,
>>> d = {"01": "小明", "02": "小紅", "03": "小白"}
>>> del d["03"]
>>> d
{'01': '小明', '02': '小紅'}
1.5 基本輸入輸出函式
1.5.1 input() 函式
input() 函式用以從控制臺獲得用戶的一行輸入,無論用戶輸入什么內容,input() 函式都以字串型別回傳,input() 函式可以包含一些提示性文字,用來提示用戶,格式為:
<變數> = input(<提示性文字>)
name = input('能告訴我你的名字嗎:')
print(f'你好,{name},')
------------------------------------------------------------------------
能告訴我你的名字嗎:John Lennon
你好,John Lennon,
有時候,提示資訊可能有多行,可以先把提示資訊賦值給一個變數,再把這個變數傳遞給函式 input():
prompt = '可以告訴我你的名字嗎?'
prompt += '\n我將告訴你一個秘密,'
name = input(prompt)
print(f'{name}, 你將永遠被人銘記,')
------------------------------------------------------------------------
可以告訴我你的名字嗎?
我將告訴你一個秘密,John Lennon
John Lennon, 你將永遠被人銘記,
也可以使用多行字串來表示提示資訊:
prompt = '''可以告訴我你的名字嗎?
我將告訴你一個秘密,'''
1.5.2 eval() 函式
eval() 函式是 Python 語言中一個十分重要的函式,它能夠以 Python 運算式的方式決議并執行字串,將回傳結果輸出,
eval() 函式經常和 input() 函式一起使用,用來獲取用戶輸入的數字,使用方式為:
<變數> = eval(input(<提示性文字>))
1.5.3 print() 函式
print() 函式用于輸出運算結果,根據輸出內容的不同,有三種用法,
第一種,僅用于輸出字串,使用方式為:
print(<待輸出字串>)
print('世界和平')
------------------------------------------------------------------------
世界和平
如果 print() 函式中的字串很長,可以在合適的位置分行,只需要在每行末尾都加上引號,同時對于除第一行以外的其他各行,都在行首加上引號并縮進,
print("話語不斷涌出心頭,像無止盡的雨浸入紙杯,"
"雨水傾瀉,紛紛劃過天際,")
------------------------------------------------------------------------
話語不斷涌出心頭,像無止盡的雨浸入紙杯,雨水傾瀉,紛紛劃過天際,
第二種,僅用于輸出一個或多個變數,使用方式為:
print(<變數 1>, <變數 2>, …, <變數 n>)
value = 123.456
print(value, value, value)
------------------------------------------------------------------------
123.456 123.456 123.456
第三種,用于混合輸出字串與變數值,使用方式為:
print(<輸出字串模板>.format(<變數 1>, <變數 2>, …, <變數 n>))
a, b = 123.456, 1024
print("數字 {} 和數字 {} 的乘積是 {}".format(a, b, a*b))
------------------------------------------------------------------------
數字 123.456 和數字 1024 的乘積是 126417.944
print() 函式輸出完文本后會默認換行,如果不希望換行,或者希望在文本后增加其他內容,可以對 print() 函式的 end 引數進行賦值,格式為:
print(<待輸出內容>, end="<增加的輸出結尾>")
>>> a = 24
>>> print(a, end=".")
24.
>>> print(a, end="%")
24%
end 的值為空字串 '' 時,表示將前后輸出的字串在同一行連續顯示,
for i in range(1, 10):
print(i, end='')
------------------------------------------------------------------------
123456789
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/275164.html
標籤:python
上一篇:python-js逆向人人網登錄
