本文爲初學Python的個人總結、筆記,比較小白向,
使用書爲中文書名《“笨方法”學Python》(3版),
如有錯誤歡迎指出:D
1.print的東西打印在一行,在print之間加","
2.#號之後爲註釋內容
3.打印中文字符應該在文件頭部添加:" #_*_coding:UTF-8_*_ ";如果還是出錯可嘗試添加:"#_*_coding: GB2312_*_"
4.優先級1:/相除 *相乘 %相除取餘數
5.優先級2:+-
6.使計算結果有小數部分:在計算的整數後加".0"0個數隨精確到的位數
7."="單等號是賦值給左邊變量
8."=="雙等號是檢查左右兩邊是否相等
9.打印print語句中變量替換:%s——用字符串str替換(常用)
%r——用字符串repr替換(常用,顯示原始數據raw data,常用在調試)
%d——用整數替換(常用)
%f——用浮點數替換(常用)
%e——用指數替換
%b——用二進制替換
%d——用十進制替換 %i——用有符號十進制 %u——用無符號十進制
%o——用八進制替換
%x——用十六進制替換
10.round(x,y)函數:返回浮點數x四捨五入的值,y爲保留的小數位數,不寫y則默認保留到整數
受機器自身精度影響、python版本影響(2版本保留離0遠的一方,3版本保留接近偶數的一方)
11.版本遷移需要注意一下:round()、/和//、print、以及一些比較另類的庫
12.打印時雙引號變成單引號:python會用最有效的方式打印。(與py3版本有差異)
13.打印的字符中有中文,使用%r會亂碼,應該使用%s
14.打印轉義序列:換行字符串:"\n",使用%r時會直接輸出\n
回車字符:"\r"
水平製表:"\t",或者跳到下一個Tab位置
垂直製表:"\v"
退格字符:"\b"
換頁字符:"\f"
空字符:"\0"
1到3位八進制數:"\ooo"
1到2位十六進制數:"\xhh"
響鈴字符:"\a"
15.讀取控制檯的輸入:input()——需要輸入數字或計算式,如要輸入字符串,應該帶雙引號""括起來
raw_input()——將所有輸入(包括數字)作爲字符串看待,返回字符串類型
py3中input()接收任意輸入,默認接收到的是str類型,py3中沒有raw_input()
py2中input()默認接收爲數字類型爲int\float,raw_input()默認接收返回的是字符串類型str
type(objec)——可以查看變量類型
16.input()、raw_input()的括號中可輸入"字符串"作爲提示語,一般建議使用raw_input()來與用戶交互
17.argv:sys.argv[]是一個可以從程序外部獲取多個參數(列表)的橋樑,sys.argv[0]指向程序本身(腳本名)
解包:a, b, c = argv:將接收的參數依次賦予左邊的參數,a指向argv[0]即程序本身
18.區別input、raw_input和argv:argv是程序執行命令時就要輸入的,input\raw_input是程序執行過程中接收的
19.固定一個提示符可以賦予一個變量,然後放入input()\raw_input()的括號中,如需修改則修改一次變量命名即可
20.print之後三個雙引號之間可以加大片文本:print """……"""
21.python -m pydoc k:k改爲關鍵詞,查找相關文檔
python pydoc.py k:同上
22.讀寫文件使用open()、read():直接命令行open(),需要在括號內加入路徑+文件名
由於轉義的原因,可以把路徑中的 單斜槓\ 改爲 雙斜槓\\ ,避免報錯
使用腳本中的open(),則需要把目標文件和腳本放入同一目錄下
每次open之後都應該把文件關閉close()
open(name,mode)——打開,模式mode:默認'r'只讀 'w'只寫 'r\w+'讀寫 'a'追加
read()——讀取文件內容,可以把結果賦給一個變量
readline——讀取文本文件的一行
truncate——清空文件
write(stuff)——把stuff寫入文件
23.判斷目標文件是否存在:exists() 括號內填入文件名,返回布爾值true和false
24.cat filename:顯示filename文件的內容
25.len():返回括號內變量的長度
26.def 函數名(參數): ——定義函數,函數名不能以數字開頭,def行的末尾需要有冒號,冒號函數體需要縮進四個空格,需要將獲取的列表解包可以參考17點argv,函數間參數名可重複使用
27.*a :表示把所有輸入放入a列表
28.判斷文本文件的行數: len(filename.readlines()) lines一定要加s
29.seek(0) 處理對象爲字節,0則是跳轉到文件0byte的位置(第一個字節),運行後會回到文件的開始
30.file.readline()——readline()每運行一次就會讀取文件file的一行,掃描文件的每一個字符直到一個\n,然後就停止讀取,返回此前的文件內容,file會記錄每次調用readline之後的讀取位置,再下一次運行readline時就可以讀取接下來的一行。
31.函數中的return,將return 右邊的值作爲調用函數後的返回值
32.import——導入一個包\模塊\功能
33.pop()——將列表括號內製定位置的元素移除,同時可以將移除的元素\鍵值賦予某個變量,不填時默認刪最後一位
34.split(str,num)——通過指定分隔符str=''對字符串進行切片,默認所有空格空字符換行符\n製表\t,num爲分割次數
35.sorted()——對括號內的列表\字符串進行排序
36.if 條件:——表達條件後開始if語句需要加冒號:
37.如果遇到多個if\elif塊都是true,只有順序下遇到的第一個true塊會被執行
38.列表操作:
list.append()——向列表list中的尾部添加一個對象\元素
list.count()——計算列表list中某元素出現的次數
list.index()——找到列表中某元素第一個匹配項的索引位置
list.insert(index,obj)——向列表中指定的索引位置插入某元素
lsit.pop()——移除元素默認最後一個並返回該元素
list.remove()——移除列表中第一個匹配到的元素
list.sort()——對列表進行排序
list.reverse()——反向排列列表的元素
39.list1.extend(list2\sequence)——向列表list1中的尾部添加另一個列表或序列
40.創建列表: 列表名稱 = [] 使用方括號開始和結束列表內容的定義
41.for循環可以使用未被定義的變量,循環開始時就被定義,每循環一次就被重新定義一次
42.range(num1, num2)——從num1到num2,但不包括num2,只到num2前一個數
43.for循環和while循環的區別:for循環只能對一些東西的集合進行循環
while循環可以對任意對象進行馴化,一般任務用for
44.exit包:exit(0)——無錯誤退出
exit(1)——有錯誤退出
45.while Ture: ——可以創建一個無限循環
46.判斷字符串的組成:a.isdigit()——是否所有都是純數字(無負號)
a.isalpha()——是否所有都是純字母
a.isalnum()——是否數字字母組合
a.islower()——是否所有爲小寫
a.isupper()——是否所有爲大寫
a.istitle()——是否所有單詞都是首字母大寫
a.isspace()——是否都是空白字符\空格
47.if語句的嵌套不要超過兩層,儘量保持在一層,每一個if語句都必須包含一個else,即使執行不到,也要在執行的時候打印出錯誤信息。
48.最好的調試方式是使用print在各個想要檢查的關鍵環節將關鍵變量打印出來檢查
49.''.join(list)——以str=''把list中的元素連接起來形成一個新的字符串
50.字典dict = {key:value} 字典中同一個鍵不允許出現兩次,定義時會記住最後一個賦予的值
dict.clear()——刪除dict內所有元素
dict.copy()——返回dict的淺複製
dict.fromkeys(seq[,val])——創建一個新的字典,以列表seq的元素作爲新字典的鍵,默認所有的值爲val
dict.get(key,default=None)——指定key存在則返回key的值,否則返回default
dict.has_key(key1)——如果key1存在則返回true,否則返回false
dict.items()——以列表的形式返回可遍歷的(鍵,值)元組數組
dict.keys()——以列表形式返回dict的所有鍵
dict.values()——以列表形式返回dict的所有值
dict.setdefault(key,default=None)——key存在返回key的值,如果不存在,返回default,添加鍵和值爲default
dict.update(dict1)——把dict更新到dict2
dict.pop(key[,default])——刪除字典指定鍵和值,並返回指定鍵的值,字典中無指定鍵則返回default
dict.popitem()——隨機返回並刪除字典中的一對鍵和值
51.class 類(對象):
def 函數(實例):
實例.屬性=
a = classname(obj)——創建了類classname的一個實例
初始化函數 def __init__(self): __是兩個_
類的變量在類的實例中共享
52.實例是類的一個接口、通道
53.同時使用python2和3版本,編譯時在代碼文件頭添加: #! python2
#! python3
2.#號之後爲註釋內容
3.打印中文字符應該在文件頭部添加:" #_*_coding:UTF-8_*_ ";如果還是出錯可嘗試添加:"#_*_coding: GB2312_*_"
4.優先級1:/相除 *相乘 %相除取餘數
5.優先級2:+-
6.使計算結果有小數部分:在計算的整數後加".0"0個數隨精確到的位數
7."="單等號是賦值給左邊變量
8."=="雙等號是檢查左右兩邊是否相等
9.打印print語句中變量替換:%s——用字符串str替換(常用)
%r——用字符串repr替換(常用,顯示原始數據raw data,常用在調試)
%d——用整數替換(常用)
%f——用浮點數替換(常用)
%e——用指數替換
%b——用二進制替換
%d——用十進制替換 %i——用有符號十進制 %u——用無符號十進制
%o——用八進制替換
%x——用十六進制替換
10.round(x,y)函數:返回浮點數x四捨五入的值,y爲保留的小數位數,不寫y則默認保留到整數
受機器自身精度影響、python版本影響(2版本保留離0遠的一方,3版本保留接近偶數的一方)
11.版本遷移需要注意一下:round()、/和//、print、以及一些比較另類的庫
12.打印時雙引號變成單引號:python會用最有效的方式打印。(與py3版本有差異)
13.打印的字符中有中文,使用%r會亂碼,應該使用%s
14.打印轉義序列:換行字符串:"\n",使用%r時會直接輸出\n
回車字符:"\r"
水平製表:"\t",或者跳到下一個Tab位置
垂直製表:"\v"
退格字符:"\b"
換頁字符:"\f"
空字符:"\0"
1到3位八進制數:"\ooo"
1到2位十六進制數:"\xhh"
響鈴字符:"\a"
15.讀取控制檯的輸入:input()——需要輸入數字或計算式,如要輸入字符串,應該帶雙引號""括起來
raw_input()——將所有輸入(包括數字)作爲字符串看待,返回字符串類型
py3中input()接收任意輸入,默認接收到的是str類型,py3中沒有raw_input()
py2中input()默認接收爲數字類型爲int\float,raw_input()默認接收返回的是字符串類型str
type(objec)——可以查看變量類型
16.input()、raw_input()的括號中可輸入"字符串"作爲提示語,一般建議使用raw_input()來與用戶交互
17.argv:sys.argv[]是一個可以從程序外部獲取多個參數(列表)的橋樑,sys.argv[0]指向程序本身(腳本名)
解包:a, b, c = argv:將接收的參數依次賦予左邊的參數,a指向argv[0]即程序本身
18.區別input、raw_input和argv:argv是程序執行命令時就要輸入的,input\raw_input是程序執行過程中接收的
19.固定一個提示符可以賦予一個變量,然後放入input()\raw_input()的括號中,如需修改則修改一次變量命名即可
20.print之後三個雙引號之間可以加大片文本:print """……"""
21.python -m pydoc k:k改爲關鍵詞,查找相關文檔
python pydoc.py k:同上
22.讀寫文件使用open()、read():直接命令行open(),需要在括號內加入路徑+文件名
由於轉義的原因,可以把路徑中的 單斜槓\ 改爲 雙斜槓\\ ,避免報錯
使用腳本中的open(),則需要把目標文件和腳本放入同一目錄下
每次open之後都應該把文件關閉close()
open(name,mode)——打開,模式mode:默認'r'只讀 'w'只寫 'r\w+'讀寫 'a'追加
read()——讀取文件內容,可以把結果賦給一個變量
readline——讀取文本文件的一行
truncate——清空文件
write(stuff)——把stuff寫入文件
23.判斷目標文件是否存在:exists() 括號內填入文件名,返回布爾值true和false
24.cat filename:顯示filename文件的內容
25.len():返回括號內變量的長度
26.def 函數名(參數): ——定義函數,函數名不能以數字開頭,def行的末尾需要有冒號,冒號函數體需要縮進四個空格,需要將獲取的列表解包可以參考17點argv,函數間參數名可重複使用
27.*a :表示把所有輸入放入a列表
28.判斷文本文件的行數: len(filename.readlines()) lines一定要加s
29.seek(0) 處理對象爲字節,0則是跳轉到文件0byte的位置(第一個字節),運行後會回到文件的開始
30.file.readline()——readline()每運行一次就會讀取文件file的一行,掃描文件的每一個字符直到一個\n,然後就停止讀取,返回此前的文件內容,file會記錄每次調用readline之後的讀取位置,再下一次運行readline時就可以讀取接下來的一行。
31.函數中的return,將return 右邊的值作爲調用函數後的返回值
32.import——導入一個包\模塊\功能
33.pop()——將列表括號內製定位置的元素移除,同時可以將移除的元素\鍵值賦予某個變量,不填時默認刪最後一位
34.split(str,num)——通過指定分隔符str=''對字符串進行切片,默認所有空格空字符換行符\n製表\t,num爲分割次數
35.sorted()——對括號內的列表\字符串進行排序
36.if 條件:——表達條件後開始if語句需要加冒號:
37.如果遇到多個if\elif塊都是true,只有順序下遇到的第一個true塊會被執行
38.列表操作:
list.append()——向列表list中的尾部添加一個對象\元素
list.count()——計算列表list中某元素出現的次數
list.index()——找到列表中某元素第一個匹配項的索引位置
list.insert(index,obj)——向列表中指定的索引位置插入某元素
lsit.pop()——移除元素默認最後一個並返回該元素
list.remove()——移除列表中第一個匹配到的元素
list.sort()——對列表進行排序
list.reverse()——反向排列列表的元素
39.list1.extend(list2\sequence)——向列表list1中的尾部添加另一個列表或序列
40.創建列表: 列表名稱 = [] 使用方括號開始和結束列表內容的定義
41.for循環可以使用未被定義的變量,循環開始時就被定義,每循環一次就被重新定義一次
42.range(num1, num2)——從num1到num2,但不包括num2,只到num2前一個數
43.for循環和while循環的區別:for循環只能對一些東西的集合進行循環
while循環可以對任意對象進行馴化,一般任務用for
44.exit包:exit(0)——無錯誤退出
exit(1)——有錯誤退出
45.while Ture: ——可以創建一個無限循環
46.判斷字符串的組成:a.isdigit()——是否所有都是純數字(無負號)
a.isalpha()——是否所有都是純字母
a.isalnum()——是否數字字母組合
a.islower()——是否所有爲小寫
a.isupper()——是否所有爲大寫
a.istitle()——是否所有單詞都是首字母大寫
a.isspace()——是否都是空白字符\空格
47.if語句的嵌套不要超過兩層,儘量保持在一層,每一個if語句都必須包含一個else,即使執行不到,也要在執行的時候打印出錯誤信息。
48.最好的調試方式是使用print在各個想要檢查的關鍵環節將關鍵變量打印出來檢查
49.''.join(list)——以str=''把list中的元素連接起來形成一個新的字符串
50.字典dict = {key:value} 字典中同一個鍵不允許出現兩次,定義時會記住最後一個賦予的值
dict.clear()——刪除dict內所有元素
dict.copy()——返回dict的淺複製
dict.fromkeys(seq[,val])——創建一個新的字典,以列表seq的元素作爲新字典的鍵,默認所有的值爲val
dict.get(key,default=None)——指定key存在則返回key的值,否則返回default
dict.has_key(key1)——如果key1存在則返回true,否則返回false
dict.items()——以列表的形式返回可遍歷的(鍵,值)元組數組
dict.keys()——以列表形式返回dict的所有鍵
dict.values()——以列表形式返回dict的所有值
dict.setdefault(key,default=None)——key存在返回key的值,如果不存在,返回default,添加鍵和值爲default
dict.update(dict1)——把dict更新到dict2
dict.pop(key[,default])——刪除字典指定鍵和值,並返回指定鍵的值,字典中無指定鍵則返回default
dict.popitem()——隨機返回並刪除字典中的一對鍵和值
51.class 類(對象):
def 函數(實例):
實例.屬性=
a = classname(obj)——創建了類classname的一個實例
初始化函數 def __init__(self): __是兩個_
類的變量在類的實例中共享
52.實例是類的一個接口、通道
53.同時使用python2和3版本,編譯時在代碼文件頭添加: #! python2
#! python3
或者運行時py -2 hello.py或py -3 hello.py
54.pip:Python包管理工具,提供對python包的查找、下載、安裝、卸載功能。
升級包:pip install --upgrade 包名
安裝包:pip install 包名
卸載包:pip uninstall 包名
查看包信息:pip show 包名
查看已安裝包:pip list
查看已過期包:pip list --outdated
升級pip:easy_install -U pip
55.print在python2和3中的差別:
print在3中是一個內置函數,有多個參數,使用時需要加括號 print("Hello")
print(value1, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
同時打印多個value,sep表示字符串之間用什麼連接,end表示結尾添加什麼字符
print在2中是一個語法結構,打印時不需要加括號 print "Hello"
56.assert_equal(fist,second) 斷言fist和second是否相同,否則拋出異常
assertEquals([String message],expected,actual,tolerance)
參數說明:
message是個可選的消息,假如提供,將會在發生錯誤時報告這個消息。
expected 是期望值,通常都是用戶指定的內容。
actual 是被測試的代碼返回的實際值。
tolerance是誤差參數,參加比較的兩個浮點數在這個誤差之內則會被認爲是相等的。
57.項目骨架 NAME——項目的主模塊
setup.py——python的構建工具
bin——用來存放從命令行的腳本
tests——存放測試腳本的文件夾
docs
58.元組tuple:一個不能修改的列表,使用()圓括號,成員間用逗號隔開tupe_name(),只有一個元素時需要在元素後加逗號,索引從0開始,元組中的元素值不允許修改,但可以對元組進行連接組合
59.異常處理
try:
code1 #需要判斷是否會拋出異常的代碼
except: #這裏會捕捉到上面code1代碼中的異常,並根據異常拋出異常處理信息,可接收異常名稱和參數,並針對不 同形式的異常來處理#except ExceptionName,args
code2 #執行異常處理的相關代碼、打印、提示等
else: #如果沒有異常則執行else
code3 #code1被正常執行後執行的代碼
finally:
code4 #退出try語句塊總會執行的程序
60.assert_raises(exception, callable,parameters)
exception:錯誤類型,錯誤的class名稱
callable:函數名稱
paramets:向測試函數傳遞的參數
assert_equal()在第56
61.python項目應該在最上層目錄運行,保證所有的模塊和文件都能被正常訪問到
62.web(運行後,localhost:8080指向app.py)
在瀏覽器輸入ip,連接到計算機本機,瀏覽器對app.py這個應用程序發出HTTP請求,要求訪問URL/(通常是一個網站的第一個URL)
bin/app.py裏有個列表,包含了URL和類的匹配關係('/', 'index'):如果有人使用瀏覽器訪問這一級目錄,lpthw.web將找到並加載class index,從而用它處理瀏覽器的請求
lpthw.web找到了class index,然後針對這個類的一個實例調用了index.GET這個方法,返回一個字符串,通過lpthw.web傳遞給瀏覽器
到這裏,lpthw.web完成了瀏覽器請求的處理,將響應回傳給瀏覽器,形成看到的頁面。
63.HTTP基於TCP/IP通信協議傳遞數據,默認端口爲80
例如:在瀏覽器地址欄鍵入URL,按下回車
1.瀏覽器向DNS服務器請求解析該URL中的域名和對應的IP地址
2.解析出IP地址後,根據該IP地址和默認端口,和服務器建立TCP連接
3.瀏覽器發出讀取文件(URL中域名後面部分對應的文件)的HTTP請求,該請求報文作爲TCP三次握手的的第三個把平穩的數據發送給服務器
4.服務器對瀏覽器請求作出響應,把對應的html文本發送給瀏覽器
5.釋放TCP連接
6.瀏覽器顯示該html文本內容
升級包:pip install --upgrade 包名
安裝包:pip install 包名
卸載包:pip uninstall 包名
查看包信息:pip show 包名
查看已安裝包:pip list
查看已過期包:pip list --outdated
升級pip:easy_install -U pip
55.print在python2和3中的差別:
print在3中是一個內置函數,有多個參數,使用時需要加括號 print("Hello")
print(value1, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
同時打印多個value,sep表示字符串之間用什麼連接,end表示結尾添加什麼字符
print在2中是一個語法結構,打印時不需要加括號 print "Hello"
56.assert_equal(fist,second) 斷言fist和second是否相同,否則拋出異常
assertEquals([String message],expected,actual,tolerance)
參數說明:
message是個可選的消息,假如提供,將會在發生錯誤時報告這個消息。
expected 是期望值,通常都是用戶指定的內容。
actual 是被測試的代碼返回的實際值。
tolerance是誤差參數,參加比較的兩個浮點數在這個誤差之內則會被認爲是相等的。
57.項目骨架 NAME——項目的主模塊
setup.py——python的構建工具
bin——用來存放從命令行的腳本
tests——存放測試腳本的文件夾
docs
58.元組tuple:一個不能修改的列表,使用()圓括號,成員間用逗號隔開tupe_name(),只有一個元素時需要在元素後加逗號,索引從0開始,元組中的元素值不允許修改,但可以對元組進行連接組合
59.異常處理
try:
code1 #需要判斷是否會拋出異常的代碼
except: #這裏會捕捉到上面code1代碼中的異常,並根據異常拋出異常處理信息,可接收異常名稱和參數,並針對不 同形式的異常來處理#except ExceptionName,args
code2 #執行異常處理的相關代碼、打印、提示等
else: #如果沒有異常則執行else
code3 #code1被正常執行後執行的代碼
finally:
code4 #退出try語句塊總會執行的程序
60.assert_raises(exception, callable,parameters)
exception:錯誤類型,錯誤的class名稱
callable:函數名稱
paramets:向測試函數傳遞的參數
assert_equal()在第56
61.python項目應該在最上層目錄運行,保證所有的模塊和文件都能被正常訪問到
62.web(運行後,localhost:8080指向app.py)
在瀏覽器輸入ip,連接到計算機本機,瀏覽器對app.py這個應用程序發出HTTP請求,要求訪問URL/(通常是一個網站的第一個URL)
bin/app.py裏有個列表,包含了URL和類的匹配關係('/', 'index'):如果有人使用瀏覽器訪問這一級目錄,lpthw.web將找到並加載class index,從而用它處理瀏覽器的請求
lpthw.web找到了class index,然後針對這個類的一個實例調用了index.GET這個方法,返回一個字符串,通過lpthw.web傳遞給瀏覽器
到這裏,lpthw.web完成了瀏覽器請求的處理,將響應回傳給瀏覽器,形成看到的頁面。
63.HTTP基於TCP/IP通信協議傳遞數據,默認端口爲80
例如:在瀏覽器地址欄鍵入URL,按下回車
1.瀏覽器向DNS服務器請求解析該URL中的域名和對應的IP地址
2.解析出IP地址後,根據該IP地址和默認端口,和服務器建立TCP連接
3.瀏覽器發出讀取文件(URL中域名後面部分對應的文件)的HTTP請求,該請求報文作爲TCP三次握手的的第三個把平穩的數據發送給服務器
4.服務器對瀏覽器請求作出響應,把對應的html文本發送給瀏覽器
5.釋放TCP連接
6.瀏覽器顯示該html文本內容
例如:瀏覽器鍵入URL(http://hello.com/text)
1.瀏覽器根據URL獲得信息:①使用的協議(HTTP)
②想聯絡的服務器名稱(hello.com)
③要從服務器上獲得的資源(/text)
2.瀏覽器創建一個連接:①讓操作系統OS打開一個端口(一般是80端口)
②OS返回一個文件(通過網絡傳輸和接受數據,可以讓本機和/hello.com所屬服務器之間進行數據交流)(TCP握手,第三次時發送請求給服務器)
3.服務器作出響應,發送相關資源/text給瀏覽器
4.釋放TCP連接
64.HTML
實現不同頁面跳轉可以使用<form action="/hello" method="GET(對應執行的方法)"><input type="submit" value="按鈕名稱"></form>
65.PowerShell 創建新文件 new-item -type file filename
Linux 下:touch filename.py
1.瀏覽器根據URL獲得信息:①使用的協議(HTTP)
②想聯絡的服務器名稱(hello.com)
③要從服務器上獲得的資源(/text)
2.瀏覽器創建一個連接:①讓操作系統OS打開一個端口(一般是80端口)
②OS返回一個文件(通過網絡傳輸和接受數據,可以讓本機和/hello.com所屬服務器之間進行數據交流)(TCP握手,第三次時發送請求給服務器)
3.服務器作出響應,發送相關資源/text給瀏覽器
4.釋放TCP連接
64.HTML
實現不同頁面跳轉可以使用<form action="/hello" method="GET(對應執行的方法)"><input type="submit" value="按鈕名稱"></form>
65.PowerShell 創建新文件 new-item -type file filename
Linux 下:touch filename.py