python規范
① python編碼規範文檔叫什麼
PEP8編碼規范,可以用插件自動調整格式讓編碼符合規范。
② python正則表達式辨別輸入日期規范是什麼
1、python正則表達式辨別輸入日期規范如下:
year,month,day=eval(input("請輸入年月日,之間用逗號分開"))
months=[31,28,31,30,31,30,31,31,30,31,30,31]
if (year%4==0 and year %100 !=0) or (year%400==0):
months[1]=29 #閏年的話2月最多29天
if month<1 or month>12:
print("月份不合法")
elif day<1 or day>months[month+1]:
print("日不合法")
else:
print("年月日合法")
2、代碼:
③ 有沒有檢測自己編寫Python程序是否規范的網站,並且糾正程序中不規范的地方
有個叫pep8的python庫可以根據PEP8約定的內容檢查你的代碼, 並給出提示. 不能自動糾正.
④ 為什麼python有兩個不同的版本,並且語法規范什麼的都不相通呢
語言會升級,很正常,基本上所有計算機語言都有這個問題,只不過Python沒有保持向下兼容有點另類。
⑤ wsgi是python的規范嗎
Python web 開發不一定要用框架
因為Python Web框架也是Python開發出來的。只是為了減少重復造輪子,降低開發門檻。
1、Python 的 Web 並不作為語言的一部分實現。因為通用語言的設計目標,Python 通過 C extension 形式的標准庫,有原生的網路編程支持。也就是說,任何人都可以用 Python 的 socket 介面自己編寫 Web 伺服器。由於圖靈機的等價性,用 Python 實現一個 PHP VM 也是技術可行的。
2、但是絕大多數人用 Python 做 Web 開發的時候不會選擇自己用 socket 去實現一個伺服器,因為 Python 官方有 Web 設計的標准—— WSGI (PEP 333 python.org/dev/peps...)。WSGI 定義的標准將 Web 應用劃分為 WSGI Application 和 WSGI Server。後者類似 PHP 的 Web 運行時,提供對標准輸入輸出流的封裝,前者則類似自己寫的 PHP 應用,在封裝後的環境中對具體應用進行 Web 開發。強烈建議閱讀一下 PEP 333,對於理解 WSGI 的這種劃分很有幫助。
3、目前為止,WSGI 在主流 Python 應用中得到廣泛支持,所謂的 Python Web 框架,其實都是符合 WSGI Application 規范下,對Web開發中環境進行的封裝,如果有精力,閱讀一下 Bottle 框架的源碼,就會非常有收獲——只有一個文件,但是完整實現 WSGI 並封裝為自己風格的一個環境(一個 Bottle 的實例就是一個 WSGI Application,實現了 __call__ 方法)。像 Django 這種框架已經逾越了Web框架范圍的了,將 ORM、表單驗證等等聚集成一塊,有點像 RoR 的感覺。真正和 PHP 的 Web 環境等價的,是類似 Bottle 這樣的微內核框架。
⑥ python pep8規范 換行對齊問題
PEP8規范(這一點似乎達到了高度的統一),但遵守80個字元限制的很少。在一些有明確規定的規范標准中,這個限制可能會增加(100或120),甚至完全刪除。這樣做常長見的理由是:我們已經不是使用VT100終端編程的年代了,我們有了更大,更高解析度的屏幕。這是事實,但我發現,在Python編碼中採用這個80個字元的規范,配合空格的使用,這會讓我們的代碼更急湊,更可讀。
有一點你可以看出
⑦ 關於Python的編碼規范提示,應該如何解決
那個你說的是編程代碼提示么
⑧ python 中下劃線使用的規范
PEP-8是Python的編程規范,可以看看,Naming Conventions那一節介紹了前/後、單/雙下劃線的用法。
⑨ python編碼規范pep8每行不超過79包括了換行符嗎
變數 常量 : 大寫加下劃線 USER_CONSTANT 對於不會發生改變的全局變數,使用大寫加下
⑩ 如何使用 Pylint 來規范 Python 代碼風格
Pylint具體介紹Pylint的安裝Pylint可以用於所有高於或者等於2.2的Python版本兼容。需要logilab-astng(version>=0.14)和logilab-common(version>=0.13)的包(具體信息,請參閱參考資料),如果是Python版本低於2.3,那麼它還需要optik包(本文接下來的示例暫不考慮這種情況)。Pylint所用到的所有的包的下載地址logilab-astng的最新包下載:等等。在Pylint的輸出中有如下兩個部分:源代碼分析部分和報告部分。源代碼分析部分:對於每一個Python模塊,Pylint的結果中首先顯示一些"*"字元,後面緊跟模塊的名字,然後是一系列的message,message的格式如下:MESSAGE_TYPE:LINE_NUM:[OBJECT:]MESSAGEMESSAGE_TYPE有如下幾種:(C)慣例。違反了編碼風格標准(R)重構。寫得非常糟糕的代碼。(W)警告。某些Python特定的問題。(E)錯誤。很可能是代碼中的錯誤。(F)致命錯誤。阻止Pylint進一步運行的錯誤。清單2.Pylint中的utils模塊的輸出結果*************MoleutilsC:88:Message:MissingdocstringR:88:Message:Toofewpublicmethods(0/2)C:183:MessagesHandlerMixIn._cat_ids:MissingdocstringR:183:MessagesHandlerMixIn._cat_ids:MethodcouldbeafunctionR:282:MessagesHandlerMixIn.list_messages:Toomanybranches(14/12)報告部分:在源代碼分析結束後面,會有一系列的報告,每個報告關注於項目的某些方面,如每種類別的message的數目,模塊的依賴關系等等。具體來說,報告中會包含如下的方面:檢查的mole的個數。對於每個mole,錯誤和警告在其中所佔的百分比。比如有兩個moleA和B,如果一共檢查出來4個錯誤,1個錯誤是在A中,3個錯誤是在B中,那麼A的錯誤的百分比是25%,B的錯誤的百分比是75%。錯誤,警告的總數量。回頁首使用Pylint分析Python代碼的具體示例下面是一個從xml文件中讀取一些值並顯示出來的一段Python代碼dw.py,代碼如下:清單3.源碼importstring#!/usr/bin/envpythonimportxml.dom.minidomxmlDom=xml.dom.minidom.parse("identity.xml")organizations=xmlDom.getElementsByTagName('DW')fororginorganizations:procts=org.getElementsByTagName('linux')forproctinprocts:print'ID:'+proct.getAttribute('id')print'Name:'+proct.getAttribute('name')print'WordCount:'+proct.getAttribute('count')清單4.identity.xml的內容這時候使用Pylint的結果(這是從html格式的輸出中拷貝的)為:清單5.Pylint的分析結果*************MoledwC:1:MissingdocstringC:5:=xml.dom.minidom.parse("identity.xml")^C:5:Invalidname"xmlDom"(shouldmatch(([A-Z_][A-Z0-9_]*)|(__.*__))$)C:6:Invalidname"organizations"(shouldmatch(([A-Z_][A-Z0-9_]*)|(__.*__))$)Report部分省略輸出中第一部分是源代碼分析,第二部分是報告。輸出結果中有這么多信息,從哪裡開始分析呢?首先使用如下的步驟來分析代碼:1.因為輸出結果太長,所以可以先不讓它輸出報告部分,先根據源代碼分析部分來找出代碼中的問題。使用選項"--reports=n"。2.使用選項"--include-ids=y"。可以獲取到源代碼分析部分每條信息的ID。清單6.使用pylint--reports=n--include-ids=ydw.py的結果*************MoledwC0111:1:MissingdocstringC0322:5:=xml.dom.minidom.parse("identity.xml")^C0103:5:Invalidname"xmlDom"(shouldmatch(([A-Z_][A-Z0-9_]*)|(__.*__))$)C0103:6:Invalidname"organizations"(shouldmatch(([A-Z_][A-Z0-9_]*)|(__.*__))$)每個信息前面都會加上一個id,如果不理解這個信息的意思,可以通過pylint--help-msg=id來查看。清單7.使用pylint--help-msg=C0111的結果C0111:*Missingdocstring*Usedwhenamole,function,classormethodhasnodocstring.Somespecialmethodslike__init__doesn'tnecessaryrequireadocstring..3.開始分析每個源代碼中的問題。從上面知道,第一個問題的原因是缺少docstring,在代碼中增加docstring,修改後的代碼如下:清單8.增加docstring修改後的源碼#!/usr/bin/envpython""""""importxml.dom.minidomxmlDom=xml.dom.minidom.parse("identity.xml")organizations=xmlDom.getElementsByTagName('DW')fororginorganizations:procts=org.getElementsByTagName('linux')forproctinprocts:print'ID:'+proct.getAttribute('id')print'Name:'+proct.getAttribute('name')print'WordCount:'+proct.getAttribute('count')重新運行pylint--reports=n--include-ids=ydw.py,結果為:清單9.運行結果*************MoledwC0322:7:=xml.dom.minidom.parse("identity.xml")^C0103:7:Invalidname"xmlDom"(shouldmatch(([A-Z_][A-Z0-9_]*)|(__.*__))$)C0103:8:Invalidname"organizations"(shouldmatch(([A-Z_][A-Z0-9_]*)|(__.*__))$)可以看到源代碼中的第一個問題已被解決。4.關於第二個C0322的問題,這里的分析結果說明得比較清楚,是代碼第七行中的等號運算符兩邊沒有空格。我們在這里加上空格,重新運行pylint--reports=n--include-ids=ydw.py,結果為:清單10.運行結果*************MoledwC0103:7:Invalidname"xmlDom"(shouldmatch(([A-Z_][A-Z0-9_]*)|(__.*__))$)C0103:8:Invalidname"organizations"(shouldmatch(([A-Z_][A-Z0-9_]*)|(__.*__))$)5.可以看到現在問題只剩下C0103了。這里的意思是變數命名規則應該符合後面正則表達式的規定。Pylint定義了一系列針對變數,函數,類等的名字的命名規則。實際中我們不一定要使用這樣的命名規則,我們可以定義使用正則表達式定義自己的命名規則,比如使用選項--const-rgx='[a-z_][a-z0-9_]{2,30}$',我們將變數xmlDom改為xmldom,代碼如下:清單11.將變數xmlDom改為xmldom後的源碼#!/usr/bin/envpython""""""importxml.dom.minidomxmldom=xml.dom.minidom.parse("identity.xml")organizations=xmldom.getElementsByTagName('DW')fororginorganizations:procts=org.getElementsByTagName('linux')forproctinprocts:print'ID:'+proct.getAttribute('id')print'Name:'+proct.getAttribute('name')print'WordCount:'+proct.getAttribute('count')運行pylint--reports=n--include-ids=y--const-rgx='[a-z_][a-z0-9_]{2,30}$'dw.py,結果中就沒有任何問題了。6.如果希望一個組里的人都使用這些統一的規則,來規范一個部門的代碼風格。比如說大家都使用--const-rgx='[a-z_][a-z0-9_]{2,30}$'作為命名規則,那麼一個比較便捷的方法是使用配置文件。使用pylint--generate-rcfile>pylint.conf來生成一個示例配置文件,然後編輯其中的--const-rgx選項。或者也可以直接pylint--const-rgx='[a-z_][a-z0-9_]{2,30}$'--generate-rcfile>pylint.conf,這樣生成的配置文件中--const-rgx選項直接就是'[a-z_][a-z0-9_]{2,30}$'了。以後運行Pylint的時候指定配置文件:pylint--rcfile=pylint.confdw.py這樣Pylint就會按照配置文件pylint.conf中的選項來指定參數。在一個部門中,大家可以共同使用同一個配置文件,這樣就可以保持一致的代碼風格。7.如果把report部分加上,即不使用--reports=n,可以看到報告部分的內容。