Python初學個人筆記(小白向)——《Learn Python the HARD WAY》

本文爲初學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
   或者運行時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文本內容
   例如:瀏覽器鍵入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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章