python编码规范注释要求,python编码规范考试题库

  python编码规范注释要求,python编码规范考试题库

  想写好python代码,必须了解python相关的编码规范。有了这个加持,写出来的代码不仅可以实现相应的功能,而且可读性强,逻辑性强。本节技能树主要分享对应的python编码规范。对于学习python的人请认真阅读,一定会对你的python代码的编写有所提升!

  1代码编码格式一般来说,声明编码格式在脚本中是必不可少的。国际惯例,文件编码和Python编码格式都是utf-8。比如在Python代码的开头,要加上如下代码:#-编码:UTF-8-如果Python源文件没有声明编码格式,Python解释器默认使用ASCII编码。但是,如果出现非ASCII字符,Python解释器将报告一个错误。因此,对于非ASCII字符,请添加一个U前缀。如果出现Python编码问题,您可以尝试通过以下操作来解决它们:导入系统

  重新加载(系统)

  Sys.set默认编码( UTF-8) 2分号。不要在行尾多加一个符号,也不要用分号把两个命令放在同一行。

  每行3行的最大长度不得超过80个字符。

  下列情况除外:

  不要在长的导入模块语句的注释中使用反斜杠来连接URL的行。

  Python隐式连接圆括号、方括号和花括号中的行。

  括号、方括号或花括号中的表达式可以分成多行,而不使用反斜杠。例如:

  month_names=[Januari , Februari , Maart ,#这些是

  四月,梅,由尼,#荷兰名字

  朱莉,奥古斯都,九月,几个月

  啤酒节,十一月,十二月] #的年份隐式线拼接可以注释。后续行的缩进不影响程序结构。后续行也允许为空。

  如有必要,可以在表达式两边额外添加一对括号。

  如果一个文本字符串放不下一行,可以用括号实现隐式行连接。

  X=(这是一个很长,很长,很长的

  很长,很长,很长,很长,很长的字符串’)4缩进规则Python使用代码缩进和冒号(:)来区分代码块之间的层次关系。在Python中,用于类定义、函数定义、流控制语句、异常处理语句等。行尾的冒号和下一行的缩进表示下一个代码块的开头,而缩进的结尾表示这个代码块的结尾。Python中的代码缩进可以通过使用空格键或Tab键来实现。但是,无论是手动键入空格还是使用Tab键,通常都使用4个空格的长度作为缩进(默认情况下,Tab键意味着4个空格)。对于Python缩进规则,初学者可以这么理解。Python要求所有的代码行都属于同一个作用域,它们的缩进必须一致,但在具体缩进上并没有硬性规定。建议使用Emacs的Python模式默认值:4个空格和一个缩进级别。不要使用制表符,也不要混用制表符和空格。

  正确的示例代码:

  如果a==0:

  打印(正确)#缩进4个空白占位符

  Else: #与if对齐

  打印(错误)#缩进4个空白占位符

  或者

  # 4空格缩进,不需要第一行

  foo=长函数名(

  var_one,var_two,var_three,

  Var_four)错误示例代码:

  如果a==0:

  打印(“正确”)

  否则:

  打印(“错误”)

  Print(end) #错误是这行代码前面有一个空格。

  或者

  # 2空格是禁止的。

  foo=长函数名(

  var_one,var_two,var_three,

  Var_four)5注释Python使用#进行注释,在#后面应该有一个空格。最需要写注释的是代码中有技巧的部分:对于复杂的操作,你应该在操作开始前写几行注释。对于不能自我解释的代码,应该在行尾添加注释。为了提高可读性,注释应该与代码相隔一定的距离,注释与代码的距离至少要有2个空格。在编写代码之前,最好在块注释后面多留几行空白。当代码发生变化时,优先更新相应的注释。如果注释是一个短语或句子,它的第一个单词应该大写,除非它是一个以小写字母开头的标识符(千万不要改变标识符的大小写!)。如果注释很短,可以省略末尾的句号。一个块通常由一个完整句子的一个或多个段落组成,每个句子都以句号结尾。句末应该用两个空格。Python中有三种形式的注释:行注释、块注释和文档注释。

  行:注释应该解释他们做了什么,而不是代码本身。

  谨慎使用行内注释。行内注释是伴随代码语句的注释。行内注释和代码应该至少用两个空格隔开。注释以#和一个空格开始。n=输入()

  m=输入()

  T=n/2 # t是n的一半。

  #循环,前提是t*m/n小于n。

  while(t * m/(n ^ 1)n):

  T=0.5 * m n/2 #重新计算t值

  打印块的注释:

  块注释通常应用于它们后面的部分(或全部)代码,并且缩进到与代码相同的级别。在每行块注释的开头使用#和空格(除非文本在块注释内缩进)。注释块中的段落通常由#的空行分隔。def FuncName(参数1,参数2):

  描述这个函数将要做什么。

  :param parameter1:参数一的描述(类型、用途等。)

  :param参数2:参数2的描述

  :返回:返回值描述

   #我们使用加权字典搜索来找出我在哪里

  #数组。我们根据最大数量推断位置

  #输入数组和数组大小,然后做二分搜索法来

  #得到准确的数字。

  I(I-1)==0:# true如果I是2的幂文档注释:

  没有必要记录所有公共模块、函数、类和方法来解释非公共方法,但是应该有一个注释来描述方法的特定函数。该注释应位于def行之后。文档注释中使用的最后三个引号应该是类SampleClass(object)的单行:

  “”此处为课程总结。

  更长的类别信息.

  更长的类别信息.

  属性:

  likes_spam:一个布尔值,表示我们是否喜欢垃圾邮件。

  鸡蛋:我们已经产下的鸡蛋的整数计数。

  def __init__(self,likes_spam=False):

  用blah初始化SampleClass

  self.likes_spam=likes_spam

  self.eggs=0

  定义public_method(self):

  执行操作blah。“”6空行顶层函数和类定义,前后用两个空行分隔编码格式声明、模块导入、常量和全局变量声明、顶层定义和执行代码。类中的方法定义在函数或方法内部由空行分隔,可以在必要时使用空行来增强节奏感,但应避免连续的空行Class01:

  及格

  班级02:

  定义函数_01(自身):

  及格

  定义函数_02(自身):

  Pass可以通过使用必要的空行来提高代码的可读性。通常,在顶层定义(如函数或类的定义)之间有两个空行,在方法定义之间有一个空行,在用于分隔某些函数的位置有一个空行。

  7制表符或空格不要混用制表符和空格,因为如果这样做,虽然编辑环境中显示的两个语句处于同一缩进级别,但制表符和空格的差异会导致Python将其解释为两个不同的级别。当调用Python命令行解释器时,可以使用-t选项来警告代码中非法的混合制表符和空格。当使用-tt时,警告将变成一个错误。强烈推荐这些选项。但是,强烈建议只使用空格而不是制表符。使用空格的规则:

  在二元运算符的两边各留一个空格,例如赋值(=)和比较(==,=、=、=、=、=、in、not in、is、is not)、Boolean (and、or、not)。算术运算符两边的空格可以灵活使用,但两边必须一致。不要在逗号、分号和冒号前添加空格,但应该将它们添加到函数的参数列表中(除非在行尾)。在逗号后加空格的函数的参数列表中,不要在默认值等号两边加空格。左括号后,右括号前不要加空格。参数列表、索引或切片不应在左括号前添加空格。当用=表示关键字参数或默认参数值时,两边不要用空格。正确的示例代码:

  垃圾邮件(火腿[1],{鸡蛋:2},[])

  如果x==4:

  打印x,y

  x,y=y,x

  列表[索引]

  DEF COMPLEX (real,IMAG=0.0): RETURN MAGIC (r=real,I=IMAG)错误示例代码:

  垃圾邮件(火腿[ 1 ],{鸡蛋:2 },[ ])

  如果x==4:

  打印x,y

  x,y=y,x

  列表[索引]

  DEF COMPLEX (real,IMAG=0.0): RETURN MAGIC (r=real,I=IMAG) 8命名规范模块名称命名

  尽量用小写命名模块,保持首字母小写,尽量不要用下划线(除非单词多,数量少)#正确

  导入解码器

  导入html_parser

  #不推荐

  导入解码器变量命名

  不要用字母I(小写L)、O(大写O)和I(大写I)作为单字符变量名。在某些字体中,这些字符与数字0和1无法区分。如果要用I,可以用L代替。变量名应该尽可能小写。如果有多个单词,用下划线分隔。计数=0

  This_is_var=0常量或全局变量命名

  所有单词都要大写。如果有多个单词,使用下划线将它们分开。全字母下划线驼峰MAX_CLIENT=100函数命名为。

  函数名应该是小写的。如果有多个单词,用下划线分隔。使用大小写混合只是为了与最初的大小写混合样式兼容,并保持向后兼容性。私有函数在函数前面加一个下划线。定义运行():

  及格

  定义run_with_env():

  及格

  class Person():

  def _private_func():

  传递类命名

  使用CamelCase命名风格,首字母大写,私有类可以下划线开头。当接口被文档化并主要用于调用时,可以改用函数的命名风格。内置变量的命名有单独的约定:内置变量大多是单个单词(或者两个单词连在一起),首字母大写的命名方式只用于异常名称或者内部常量。类别场():

  及格

  动物农场类别(农场):

  及格

  class _PrivateFarm(农场):

  pass类中函数和方法的参数

  总是使用self作为实例方法的第一个参数。总是使用cls作为类方法的第一个参数。如果函数的参数名与已有的关键字冲突,最好在末尾加下划线,而不是缩写或随意拼写。所以class_比clss好。特别注意:

  不要中英文混用,不要有A,B,C之类无意义的名字,不要怕名字长就缩写,比如person_info缩写成pi,不要区分变量类型的大小写,比如A是int类型,A是String类型,不要用bool variable之类易混淆的变量名加上前缀is_比如:is_success变量名,不要用系统关键字,比如dir type str等。以下划线开头或结尾的下列特殊形式是

  _ single _ leading _ underscore(前面有下划线):例如,“从M导入*”不会导入以下面的下划线开头的对象。Single _ trailing _ underscore _(以下划线结尾):用于避免与Python关键字冲突,例如“tkinter.toplevel (master,class _= classname )”。_ _ double _ leading _ underscore(双下划线):从Python 1.4开始,是类的私有名。_ _ Double _ Leading _ and _ Trailing _ underline _ _:存在于中的特殊(神奇)对象或属性

  用户控制的命名空间,例如:__init__、__import__或__file__。9引号使用规则自然语言对机器标识使用双引号,对正则表达式使用单引号,对文档字符串(docstring)使用双引号,对字符串引用规则使用三个双引号:

  单引号和双引号字符串是相同的。当字符串包含单引号或双引号时,使用不同于最外层的符号以避免反斜杠,从而提高可读性。在同一个文件中,保持使用字符串引号的一致性。您可以在字符串中使用另一种引号,以避免在字符串中使用。正确使用的例子:

  蒂姆(‘你为什么藏着眼睛?’)

  鲍勃(“我害怕线头错误。”)

  居伊(‘好!一位快乐的Python评论者认为。)当且仅当在代码中使用单引号来引用字符串时,才有可能使用非文档字符串的三重多行字符串来标识所引用的文档字符串。必须使用三重双引号 10模块导入规则导入应该放在文件的顶部,模块注释和文档字符串之后,模块全局变量和常量之前。导入应按从最常见到最不常见的顺序分组:标准库导入、第三方库导入和特定于应用程序的导入,各组之间有一个空行。模块名应该简短,使用小写,并避免使用特殊符号,如点和问号。让模块名尽可能简单,这样就不需要分隔单词。(不建议在两个单词之间使用下划线)。每个进口应该有一个专属行。正确使用的例子:

  导入操作系统

  进口数量

  导入系统

  fromtypes导入字符串类型,listtype的错误用法示例:

  Import os,numpy,sys从包含类的模块中导入类时,通常可以这样写:from MyClass import MyClass

  fromfoo.bar.yourclass导入yourclass模块的导入建议

  例子

  评价

  来自modu import *

  差,不知道模块导入的是什么。

  从modu导入sqrt

  稍微好一点

  导入modu

  importmodu.sqrt

  最好在调用时直接使用modu.sqrt就可以知道当前方法属于哪个模块。

  导入操作系统

  importsys

  推荐

  导入操作系统、系统

  不推荐

  从子流程导入Popen,管道

  推荐

  11 main main函数应该放在main()函数中。

  在Python中,pydoc和单元测试要求模块必须是可导入的。代码在执行主程序之前应该总是检查__name__==__main__ ,这样在导入模块时就不会执行主程序。

  def main():

  .

  if __name__==__main__ :

  Main()12函数设计规范函数设计的主要目标是最大化代码重用,最小化代码冗余。一个设计良好的函数不仅可以提高程序的健壮性,还可以增强可读性,降低维护成本。函数设计尽量简短,嵌套层次不要太深。所谓短,就是尽量避免一个功能太长,因为它不需要上下拉动滚动条来获得整体感,而不是来回翻动屏幕来寻找一个变量或者一个逻辑判断等。if、elif、while、for等Where循环语句。需要在函数中使用,尽量不要嵌套太深,控制在3层以内比较好。否则,有时候判断代码的哪一段属于内部嵌套,哪一段属于中间嵌套,哪一段属于进一步嵌套所花的时间,比阅读代码细节所花的时间还要多。尽可能通过参数接受输入,通过返回生成输出,保证函数的独立性。尽量减少函数间通信中全局变量的使用。不要在函数中直接修改变量类型的参数。函数声明要合理、简单、易用。除了函数名能正确反映其一般功能外,参数的设计要简洁明了,参数的个数不能太多。参数太多的缺点是调用方需要花更多的时间去理解每个参数的含义,测试时写测试用例会更困难。在参数设计中应考虑向后兼容性。版本13注意:如果要在源文件中包含RCS或CVS杂项,请按照以下格式操作:

  __version__=$Revision: 1.4 $

  # $ source:e:/CVS root/python _ doc/pep 8 . txt,v $对于CVS的服务器工作标签,其指令应该在代码段中明确定义。例如,应在文档开头的版权声明后添加以下版本标签:

  #文件:$id$

  # Version: $Revision$提交到配置管理服务器后,标签会自动适配成相应的字符串,比如:

  # File: $ ID: ussp.py,v1.22 2004/07/21 04: 47: 41 HD EXP $

  # Version: $Revision: 1.4 $这些应该包含在模块的文档字符串之后,所有代码之前,上下用空行隔开。

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: