导航:首页 > 编程语言 > python规范

python规范

发布时间:2022-01-13 20:23:30

‘壹’ python编码规范pep8每行不超过79包括了换行符吗

变量 常量 : 大写加下划线 USER_CONSTANT 对于不会发生改变的全局变量,使用大写加下

‘贰’ 如何成为Python高手

如果你有一定的计算机编程知识基础,那么很容易学;再如果你对编程十分感兴趣,那么很容易学的。

1,找到合适的入门书籍,大致读一次,循环啊判断啊,常用类啊,搞懂(太难的跳过)

2,做些简单习题,字符串比较,读取日期之类 Python Cookbook不错(太难太无趣的,再次跳过,保持兴趣是最重要的,不会的以后可以再学)

3,加入Python讨论群,态度友好笑眯眯(很重要,这样高手才会耐心纠正你错误常识)。很多小问题,纠结许久,对方一句话点播思路,真的节约你很多时间。耐心指教我的好人,超级超级多谢。

4,解决自己电脑问题。比如下载美剧,零散下载了2,4,5,8集,而美剧共12集,怎样找出漏下的那几集?然后问题分解,1读取全部下载文件名,2提取集的数字,3数字排序和(1--12)对比,找出漏下的。

对于python初学者来说,能找到一个好老师学习格外重要,这能决定你是不是可以做出好的项目,在python开发的路上越走越轻松,如果现在的你缺乏学习经验,找不到老师指导你学习,可以加企 鹅扣-Q前面112再加上中间的983以及最后四位数4903,连在一起就可以了。

5,时刻记住目的,不是为了当程序员,是为了解决问题。比如,想偷懒抓网页内容,用urllib不行,用request也不行,才发现抓取内容涉及那么多方面(cookie,header,SSL,url,javascript等等),当然可以听人家劝,回去好好读书,从头读。 或者,不求效率,只求解决,用ie打开网页再另存为行不行?ie已经渲染过全部结果了。 问题变成:1--打开指定的10个网页(一行代码就行)。更复杂的想保存呢?利用已经存在的包,比如PAM30(我的是Python3),直接打开ie,用函数outHTML另存为文本,再用搜索函数(str搜索也行,re正则也行)找到数据。简单吧?而且代码超级短。

6,保持兴趣,用最简单的方式解决问题,什么底层驱动,各种交换,留给大牛去写吧。我们利用已经有的包完成。

7,耐心读文档,并且练习快速读文档。拿到新包,找到自己所需要的函数,是需要快速读一次的。这个不难,读函数名,大概能猜到是干嘛的,然后看看返回值,能判断是不是自己需要的。

8,写帮助文件和学习笔记,并发布共享。教别人的时候,其实你已经自己再次思考一次了。 我觉得学程序就像学英文,把高频率的词(循环,判断,常用包,常用函数)搞懂,就能拼装成自己想要的软件。 一定要保持兴趣,太复杂的跳过,就像小学数学,小学英语,都是由简入深。 网络很平面,无数国际大牛着作好书,关于Python,算法,电脑,网络,或者程序员思路,或者商业思维(浪潮之巅是本好书)等等,还有国际名校的网络公开课(中英文字幕翻译完毕,观看不是难事),讲计算机,网络,安全,或者安卓系统,什么都有,只要能持续保持兴趣,一点点学习下去,不是难事。 所有天才程序员,都曾是儿童,回到儿童思维来理解和学习。觉得什么有趣,先学,不懂的,先放着,遇到问题再来学,效果更好。 唯一建议是,不要太贪心,耐心学好一门优雅的语言,再学其它。虽然Javascript做特效很炫,或提某问题时,有大牛建议,用Ruby来写更好之类,不要改方向。就像老笑话:“要学习递归,必须首先理解递归。”然后死循环一直下去。坚持学好一门语言,再研究其他。 即使一门语言,跟网络,数据库等等相关的部分,若都能学好,再学其他语言,是很快的事情。 另外就是,用学英文的耐心来学计算机,英文遇到不懂的词,抄下,查询。 python里,看到Http,查查定义,看到outHtml,查查定义,跟初学英语时候一样,不要直接猜意思,因为精确描述性定义,跟含糊自然语有区别的。而新人瞎猜,很容易错误理解,wiki,google很有用。

‘叁’ python 中下划线使用的规范

PEP-8是Python的编程规范,可以看看,Naming Conventions那一节介绍了前/后、单/双下划线的用法。

‘肆’ 为什么python有两个不同的版本,并且语法规范什么的都不相通呢

语言会升级,很正常,基本上所有计算机语言都有这个问题,只不过Python没有保持向下兼容有点另类。

‘伍’ 有没有检测自己编写Python程序是否规范的网站,并且纠正程序中不规范的地方

有个叫pep8的python库可以根据PEP8约定的内容检查你的代码, 并给出提示. 不能自动纠正.

‘陆’ 如何使用 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,可以看到报告部分的内容。

‘柒’ 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规范 换行对齐问题

PEP8规范(这一点似乎达到了高度的统一),但遵守80个字符限制的很少。在一些有明确规定的规范标准中,这个限制可能会增加(100或120),甚至完全删除。这样做常长见的理由是:我们已经不是使用VT100终端编程的年代了,我们有了更大,更高分辨率的屏幕。这是事实,但我发现,在Python编码中采用这个80个字符的规范,配合空格的使用,这会让我们的代码更急凑,更可读。
有一点你可以看出

‘玖’ python中关于“ _,”的用法请教

python中的异常

异常是指程序中的例外,违例情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。
Exception类是常用的异常类,该类包括StandardError,StopIteration, GeneratorExit, Warning等异常类。
StandardError类是python中的错误异常,如果程序上出现逻辑错误, 将引发该异常。StandardError类是所有内敛异常的基类,放置在默认的命名空间中,因此使用IOEroor,
EOFError, ImportError等类,不需要导入exception模块。
StopIteration类判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。
GeneratorExit类是由Generator函数引发的异常,当调用close()时引发该异常。
Warning类表示程序中的代码引起的警告。
python中的异常使用继承结构创建,可以在异常处理程序中捕获基类异常,也可以捕获各种子类异常,python中使用try...except语句捕获异常,异常子句定义在try子句后面。

try...except的使用方法

try...except用于处理问题语句,捕获可能出现的异常。try子句中的代码块放置可能出现异常的语句,except子句中的代码块处理异常。
演示try...except语句捕获IOError异常
try:
file("hello.txt", "r") #如果文件不存在,引发异常
print "读文件"
except IOError: #捕获IO异常
print "文件不存在"
except: #其它异常
print "程序异常"

python与Java的异常处理模式相似,异常处理语句也可以嵌套,演示如下:
try:
s = "hello"
try:
print s[0] + s[1]
print s[0] - s[1]
except TypeError:
print "字符串不支持减法运算"
except:
print "异常"
如果外层try子句中的代码引发异常,程序将直接跳转到外层try对应的except子句,而内部的try子句将不会被执行。

try...finally的使用方法
try...except后还可以添加一个finally子句。无论异常是否发生,finally子句都会被执行。所有的finally子句通常用于关闭因异常而不能释放的系统资源。
try:
f = open("hello.txt", "r")
try:
print f.read(5)
except:
print "读文件异常"
finally:
print "释放资源"
f.close()
except IOError:
print "文件不存在"

使用raise抛出异常
当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。
演示raise用法
try:
s = None
if s is None:
print "s 是空对象"
raise NameError #如果引发NameError异常,后面的代码将不能执行
print len(s)
except TypeError:
print "空对象没有长度"

自定义异常
python允许程序员自定义异常,用于描述python中没有涉及的异常情况,自定义异常必须继承Exception类,自定义异常按照命名规范以"Error"结尾,显示地告诉程序员这是异常。自定义异常使用raise语句引发,而且只能通过人工方式触发。
from __future__ import division

class DivisionException(Exception):
def __init__(self, x, y):
Exception.__init__ (self, x, y) #调用基类的__init__进行初始化
self.x = x
self.y = y

if __name__ == "__main__":
try:
x = 3
y = 2
if x % y > 0: #如果大于0, 则不能被初始化,抛出异常
print x/y
raise DivisionException(x, y)
except DivisionException,div: #div 表示DivisionException的实例对象
print "DivisionExcetion: x/y = %.2f" % (div.x/div.y)

assert语句的使用
assert语句用于检测某个条件表达式是否为真。assert语句又称为断言语句,即assert认为检测的表达式永远为真,if语句中的条件判断都可以使用assert语句检测。

‘拾’ python标准库中有的库名是大写开头,有的是小写开头,到底有没有一个规范

没有强制性的规定, 只是顶级开发者一般都会遵守一些约定网页链接

阅读全文

与python规范相关的资料

热点内容
linux跑火车 浏览:353
androidsdk版本兼容 浏览:1000
果加密码锁开锁记录 浏览:444
python导入模块的形式 浏览:257
shor算法 浏览:58
python交易日历 浏览:47
怎样用云服务器组网 浏览:294
cass垂直执行命令 浏览:211
安卓数据线长什么样子教学视频 浏览:794
红米安卓12系统怎么升级 浏览:917
菜鸟裹裹加密包裹啥样的 浏览:374
时差测量与无源定位算法 浏览:946
学习通app如何调二倍速 浏览:873
中铁四院平差软件加密狗价格 浏览:732
maj命令 浏览:923
精品php源码 浏览:960
自己编写云服务器抢红包 浏览:203
java解压缩文件加密 浏览:887
dlink打印服务器默认地址 浏览:353
php休眠函数 浏览:372