目錄:
1. 變量
2. 字符串
3. 數(shù)據(jù)類型
4. 猜字游戲練習(xí)
------
5. Python Web框架
6. Flask框架のPocoo編碼風(fēng)格
目錄【Python程序員都知道的入門知識(shí)】
1. 變量
Java中變量的概念是把一個(gè)值賦值給定義過(guò)變量類型的一個(gè)名字,那么與這個(gè)變量名綁定的這個(gè)值相應(yīng)的就被存儲(chǔ)進(jìn)內(nèi)存中褐捻,與這種將值存入變量名字中的概念相不同的是宏粤,Python更像是把名字貼到這個(gè)值上面。
使用時(shí)的<a>注意事項(xiàng)</a>:
- 使用變量前,要先給他賦值丢胚。
- 變量名可包含數(shù)字、字母受扳、下劃線携龟,不能以數(shù)字開(kāi)頭。
- Python是大小寫(xiě)敏感的勘高,所以Cat和cat是兩個(gè)不同的名字峡蟋。
2. 字符串
字符串由單引號(hào)或雙引號(hào)標(biāo)識(shí)都可以。
字符串中含有引號(hào)华望,用轉(zhuǎn)義字符 \ 標(biāo)識(shí)蕊蝗。如下
str='Let\'s play basketball now !'
但是遇到像下面這條鏈接串,整個(gè)字符串本來(lái)就有很多反斜杠的怎么辦呢赖舟?
http://www.reibang.com/writer#/notebooks/8503426/notes/7804294/preview
2.1. 原始字符串
原始字符串即在字符串的引號(hào)前面加上字母<a> r </a>即可蓬戚。
str=r"http://www.reibang.com/writer#/notebooks/8503426/notes/7804294/preview"
案例說(shuō)明:
2.2. 長(zhǎng)字符串
用 <a>'''</a> 三重引號(hào)實(shí)現(xiàn)
<a>注意</a>
str()是Python 的內(nèi)置函數(shù),不要將內(nèi)置函數(shù)名作為自己的變量名宾抓,會(huì)出現(xiàn)潛在的bug.
3. 數(shù)據(jù)類型
整數(shù)子漩、浮點(diǎn)數(shù)、字符串洞慎、布爾類型痛单、數(shù)字、列表劲腿、元組旭绒、字典、日期 焦人。共9種
數(shù)據(jù)類型涉及內(nèi)容比較多挥吵,將獨(dú)立一篇來(lái)學(xué)。
4. 猜字游戲練習(xí)
需求:
- 隨即生成一個(gè)0到10之間的數(shù)字花椭,讓用戶輸入數(shù)字忽匈,將這個(gè)數(shù)字與隨機(jī)數(shù)字比較,相同則輸出“猜對(duì)了矿辽!”丹允。不同則輸出“猜錯(cuò)了郭厌!”
- 猜的數(shù)字大了則提示“我的數(shù)字比你猜的小”,小了則提示“我的數(shù)字比你猜的大”雕蔽。
- 有三次輸入機(jī)會(huì)折柠,三次用完提示“抱歉,您只有三次機(jī)會(huì)批狐!”扇售,結(jié)束游戲。
- 游戲結(jié)束后停頓十秒給玩家看提示語(yǔ)嚣艇。
5. Python Web框架
有人說(shuō)學(xué)習(xí)一門編程語(yǔ)言承冰,主要學(xué)框架。相較于Ruby單一的web框架Rails,Python的框架食零,無(wú)論是Micro-framework還是framework都層出不窮困乒,因此小喵特地記錄了一些PythonWeb的框架:
- Django
- Web2py
- CubicWeb
- Zope2
- TurboGears
- Pylons
- Grok
- Web.py輕量級(jí)
- Tornado輕量級(jí)
- Pyramid輕量級(jí)
- CherryPy輕量級(jí)
- Flask 輕量級(jí)
-
Bottle 輕量級(jí)
關(guān)于部分框架的簡(jiǎn)要說(shuō)明,可參考10個(gè)用于web開(kāi)發(fā)的最好Python框架
上述列表中標(biāo)出了一些輕量級(jí)的web框架贰谣,那么問(wèn)題來(lái)了顶燕,輕量級(jí)框架和重量級(jí)框架的區(qū)別是什么?
- 重量級(jí)框架啟動(dòng)往往需要加載更多的資源
- 輕量級(jí)框架一般是一組獨(dú)立的特性實(shí)現(xiàn)集冈爹,而重量級(jí)的框架往往需要依賴其他支撐。
- 重量級(jí)框架需要繼承和實(shí)現(xiàn)框架的接口和抽象類來(lái)注冊(cè)和實(shí)例化組件欧引,輕量級(jí)框架則不一定频伤。
簡(jiǎn)單點(diǎn)說(shuō),輕量級(jí)和重量級(jí)通常是以啟動(dòng)程序需要的資源來(lái)決定的芝此。注意不要以耦合度來(lái)作為區(qū)別的標(biāo)準(zhǔn)憋肖。
上述區(qū)別是不是讓你產(chǎn)生 “輕量級(jí)更好” 的想法呢?然而不是的婚苹。查閱資料后發(fā)現(xiàn)岸更,二者本質(zhì)上區(qū)別在于解決問(wèn)題的側(cè)重點(diǎn)的差異。
輕量級(jí)框架側(cè)重于減小開(kāi)發(fā)的復(fù)雜度膊升,相應(yīng)的它的處理能力便有所減弱(如事務(wù)功能弱怎炊、不具備分布式處理能力),比較適用于開(kāi)發(fā)中小型企業(yè)應(yīng)用廓译。 重量級(jí)框架則強(qiáng)調(diào)高可伸縮性评肆,適合與開(kāi)發(fā)大型企業(yè)應(yīng)用。
6. Flask框架のPocoo編碼風(fēng)格
(Pocoo是Flask的開(kāi)發(fā)團(tuán)隊(duì))
6.1. 總體布局
- 縮進(jìn):四個(gè)空格
- 最大行長(zhǎng)79字符(默認(rèn)為84個(gè)字符)
- 可續(xù)的長(zhǎng)語(yǔ)句
反斜線 \ 來(lái)繼續(xù)語(yǔ)句非区,下一行要對(duì)齊到最后一個(gè)點(diǎn)或等號(hào)或縮進(jìn)四個(gè)空格瓜挽;帶括號(hào)的就對(duì)齊到括號(hào)。多元素的元組或列表征绸,則在起始括號(hào)后立即換行久橙。
- 空行:頂層函數(shù)和類用兩個(gè)空行分隔俄占,其他一行即可。
6.2. 表達(dá)式和語(yǔ)句
- 一元運(yùn)算符不使用空格淆衷,圓括號(hào)也是缸榄,二元要用空格分隔
(所謂二元運(yùn)算,即由兩個(gè)元素形成第三個(gè)元素的一種規(guī)則) - 不用變量與常量做比較吭敢,而是把常量與變量做比較
- 比較
跟任意類型:==
和碰凶!=
跟單例,使用is
和is not
不要與 True 或 False 做比較 - 否定包含檢查
使用foo not in bar
而不是not foo in bar
- 實(shí)例檢查:
用isinstance(a, C)
而不是type(A) is C
鹿驼,通常要避免實(shí)例檢查欲低,應(yīng)對(duì)特性檢查。
6.3. 命名約定
- 類名:
CameCase
畜晰,縮寫(xiě)詞要大寫(xiě)(HTTPWriter
) - 變量名砾莱、方法和函數(shù)名:小寫(xiě),單詞間用下劃線隔開(kāi)
lowercase_with_underscores
- 常量:大寫(xiě)凄鼻,單詞間用下劃線隔開(kāi)
UPPERCASE_WITH_UNDERSCORES
- 預(yù)編譯正則表達(dá)式:
name_re
函數(shù)和方法的參數(shù):
- 類的方法:
cls
作為第一個(gè)參數(shù) - 實(shí)例方法:
self
作為第一個(gè)參數(shù) - 屬性的lambda表達(dá)式應(yīng)該把第一個(gè)參數(shù)替換為
x
腊瑟,如:display_name = property(lambda x: x.real_name or x.username)
6.4. 文檔注釋
單行:閉合三引號(hào)和開(kāi)頭三引號(hào)在同一行。
多行:開(kāi)頭三引號(hào)與文本在同一行块蚌,閉合另起一行闰非。
模塊標(biāo)頭:包含utf-8編碼聲明和標(biāo)準(zhǔn)的文檔注釋。
6.5. 注釋
同文檔注釋峭范,但當(dāng)用于注釋一個(gè)屬性時(shí)财松,用井號(hào)加冒號(hào) #:
進(jìn)行注釋