python ---->學習筆記

參考head first Python整理html

列表:(相似數組)編號從0開始,數據類型不那麼重要。它在內存中相似堆棧結構,從底到上。python

movies = []nginx

numbers = ["one","two","three"] # 定義一個列表,能夠直接printgit

numbers[1] # 中括號訪問列表github

len(numbers) # 計算列表長度sql

numbers.append("four") # 在列表末尾增長一個數據項django

numbers.pop() # 在列表末尾刪除數據項編程

numbers.extend("five") # 在列表末尾增長一個數據項json

numbers.remove("two") # 在列表中找到並刪除一個特定的數據項python3.x

numbers.insert(0 , "zero") # 在某個特定的位置前面增長一個數據項

類表能夠包含混合類型的數據,好比字符串和數字,任意類型也能夠。

迭代處理列表,利用內置的for循環,例如:

numbers = ["one","two","three","four","five"]

for num in numbers:

  print(num)  ----> 組

for循環:能夠處理任意大小的類表

列表是動態的,可是訪問一個不存在的數據項,python會產生一個IndexError,表示越界。

字符串可使用雙引號,也可使用單引號。

標識符規則:字母或「_」開頭,不容許%$&開頭

大小寫敏感:msg ≠ MSG

列表能夠嵌套列表,能夠嵌套任意多層的列表

numbers = ["one","two","three",["four","five","six",["seven","eight","nine"]]]

numbers[3][3][1] = eight

python內置函數(BIF):

isinstance() # 檢查某個特定標識符是否包含某個特定類型的數據。

numbers = ["one","two","three"]

isinstance(numbers,list) # 判斷numbers是不是列表

語法

if xxx:

  true組

else:

  false組

def functionName(params):

  function code suite ----> 函數代碼組

suite組:python代碼塊,經過縮進指示分組。

BIF內置函數

input() 、isinstance()、len()、print()、open()、range()、type()、dir()..........

註釋

多行註釋 ''' '''

單行註釋 #

import sys;

sys.path # 查看模塊路徑

range()用法

for num in range(4): # 返回一個迭代器,根據須要生成一個指定範圍的數字列表

  print(num)

文件操做

_file = open("fileName")

_file.readLine() # 從文件讀取一行

_file.seek(0) # 返回文件開頭處

for eachLine in _file:

  eachLine.trip().split(":") # 去掉空白符;以":"爲符號分隔符分割字符串,返回字符串列表

  eachLine.trip().split(":",1) # 去掉空白符;以":"爲符號分隔符分割字符串,數字1表示把字符串分解爲兩個部分,返回字符串列表

  eachLine.find("python") # 查找「python」字符串,不存在則返回-1,若是存在則返回在原字符串的索引位置

異常處理

try:

  code

except:

  fail recovery code

finally:

  release

或者

try:

  with xxx as xx: # 上下文管理協議

    xxxx

except xxx as xx: # 給異常起個名字

  xxxx

遇到的Exception:

ValueError/IOError

兩種類型的列表

①能夠改變類型的列表 ----> 中括號 ----> 可變列表

②一旦建立就不能改變的列表 ----> 小括號 ----> 不可變列表(元組)

OS模塊

import os

os.path.exists("fileName") # 判斷文件是否存在

os.getcwd() # 獲取當前地工做目錄

python中的字符串是不可變的,一旦建立一個字符串,它就不會再改變了。

內存管理技術???

變量 ----> 引用 ----> 數據對象 ----> 字符串

not # 取反

in # 測試成員關係

locals() # 返回當前做用域中定義的全部名的一個集合

print() # 默認是輸出到屏幕,能夠經過指定sys.stdout輸出到一個指定的文件

pickle標準庫

dump() # 保存數據

load() # 恢復數據

函數缺省值問題

print(value,sep='',end='\n',file=sys.stdout) # 屏幕

print('abc',file='temp.txt') #文件

方法串鏈:從左往右

函數串鏈:從右往左

排序

原地排序(in-place sort)

sort() # 排序後替換原來的數據,原來的數據的順序會丟失

複製排序(copied sort)

sorted() # 排序後返回一個原來數據的有序副本,原來的數據的順序不會丟失,默認是升序排序

列表推導???

去重

思路一:建立一個新的列表,從原來的列表中取出一個元素,判斷一個元素是否在新的列表中,若是不存在則添加,若是存在則去掉。

思路二:使用BIF set(),建立一個空集合

工廠函數???

字典:將數據值和鍵關聯。維護關聯關係,而不是順序。

定義字典:numbers ={} 或者numbers = dict()

訪問字典中的元素:使用中括號,指定鍵

面向對象編程模型

基礎概念:類的方法,類的屬性,實例

class Numbers:

  def __init__(self):

    # coding here

由關鍵字class建立對象

初始化對象機制:__init__()[能夠用來定製對象的初始化狀態]

實現對象的建立:類名的調用賦值給相應的變量名,例如 num = Numbers()

定義一個類,即定義了一個定製工廠函數。

num = Numbers() 的調用python的內部轉換:Numbers().__init__(num),num對象實例標識符賦值到self參數

目標標識符賦值到self參數,self參數能夠幫助標識要處理哪一個對象實例的數據(self指向當前對象實例);每一個方法的第一個參數都是self(python要求每一個方法的第一個參數爲調用對象實例???)

可使用點記法訪問對象中的屬性

自建立的類能夠繼承python內部的類

class numbers(list):

  def __init__(self, n_name):

    list.__init__([])

    self.name = n_name

python標準模塊

string

http.server

glob

cgitb

cgi

pickle

json

urllib/urllib2

sys

os

sqlite3

time

unittest/doctest

 

===================我是分割線===================

2018-12-31 20:38:17

cmd install django

python2.7用以下命令,不指定版本號,默認會下載安裝最新版本,最新版本支持python3.x,而後會發生衝突

pip install -i https://pypi.douban.com/simple/ django==1.11

python3.6用以下命令,不用指定版本號,默認會下載安裝最新版本,最新版本支持python3.x

pip3 install django

建立虛擬環境

方式一:

pip install virtualenv

cd 某個目錄

python2.x使用以下命令:

virtualenv 某某文件名 

【等待片刻,安裝成功會提示done】

python3.x使用以下命令:

virtualenv -p xxx\python3.exe 某某文件名 

【等待片刻,安裝成功會提示done,須要注意的是要指定python3的路徑】

目錄結構以下:

 而後能夠進入虛擬環境中的Scripts文件夾中,cmd中,執行文件activate.bat和deactivate.bat進行切換。

用以上的方法建立虛擬環境,每次都須要進入某個指定的位置,記住路徑。採起如下的方法更方便,在任意位置集中管理各個虛擬環境。

方式二:

pip install virtualenvwrapper-win

安裝成功後設置 Envs路徑,在環境變量中加入WORKON_HOME。例如:WORKON_HOME=E:\Envs

啓動cmd

workon    查看各個虛擬環境

mkvirtualenv xx      默認建立python2.x的虛擬環境,名字爲xx

mkvirtualenv --python=python3.x的安裝路徑 xxx      建立python3.x的虛擬環境,名字爲xxx

workon xxx 進入某個虛擬環境

deactivate 退出某個虛擬環境

 

以方式二嘗試建立Scrapy的虛擬環境,以python2.7.x爲主本:

打開cmd,

workon    查看當前各個虛擬環境

mkvirtualenv myPy2Scrapy   建立虛擬環境,成功後會提示done,而後自動進入所建立的虛擬環境。cmd左邊會提示 (myPy2Scrapy)

pip install scrapy   安裝Scrapy

安裝過程當中提示error:

1  building 'twisted.test.raiser' extension
2  error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27
3  ----------------------------------------
4  Failed building wheel for Twisted
5  Running setup.py clean for Twisted

 http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted  到這個網址下載對應版本的wisted。我下的是  Twisted‑18.9.0‑cp27‑cp27m‑win_amd64.whl

 

進入到下載了wisted 的位置

打開cmd

進入虛擬環境 workon myPy2Scrapy

安裝wisted,pip install Twisted‑18.9.0‑cp27‑cp27m‑win_amd64.whl

安裝成功後,從新安裝scrapy,沒有報錯。

 ps:

whl包:已經編譯的包,相似於exe文件;

Twisted:用Python實現的基於事件驅動的網絡引擎框架,Twisted支持許多常見的傳輸及應用層協議,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。

whl,twisted更多內容參考博客:

https://blog.csdn.net/vitaminc4/article/details/76651313

http://www.javashuo.com/article/p-rwdamfyd-ex.html

 

2018-11-19 20:43:04

《Nginx開發從入門到精通》淘寶核心系統服務器平臺組所編寫的一本關於Nginx的書籍。該書由rst格式的文件寫成。可使用python模塊sphinx將該書轉換成html格式,方便離線閱讀。RST與Python相似Javadoc與Java。不要使用高版本的sphinx去轉化。下面使用1.1版本。轉化成功。

https://pypi.org/project/Sphinx/1.1/

1 pip install Sphinx==1.1 #使用低版本1.1,能夠成功轉換成html格式
2 
3 sphinx-build -b html source build # source 源目錄,build 目標目錄

 

 

sphinx官網:https://pypi.org/project/Sphinx/

sphinx手冊官網:http://www.sphinx-doc.org/en/master/

sphinx最新版是1.8.2,能夠經過下面命令安裝:

1 pip install -U Sphinx
相關文章
相關標籤/搜索