Python编程规范

初学Python,整理网上一些编程规范,便大家和自己有需要时参考。

一、编码格式:

所有的Python脚本文件都应在文件头标上注释编码格式,如设置的是utf-8则注释:

# -*- coding:utf-8 -*-


二、注释:

1、方法:单行用#,批量用两组"""前后框住。
2、原则:关键地方,汝应注释。

三、缩进:
用4个空格来缩进代码。绝对不要用tab, 也不要tab和空格混用. 对于行连接的情况, 你应该要么垂直对齐换行的元素(见 行长度 部分的示例), 或者使用4空格的悬挂式缩进(这时第一行不应该有参数):

Yes:   # Aligned with opening delimiter
       foo = long_function_name(var_one, var_two,
                                var_three, var_four)

       # Aligned with opening delimiter in a dictionary
       foo = {
           long_dictionary_key: value1 +
                                value2,
           ...
       }

       # 4-space hanging indent; nothing on first line
       foo = long_function_name(
           var_one, var_two, var_three,
           var_four)

       # 4-space hanging indent in a dictionary
       foo = {
           long_dictionary_key:
               long_dictionary_value,
           ...
       }
No:    # Stuff on first line forbidden
      foo = long_function_name(var_one, var_two,
          var_three, var_four)

      # 2-space hanging indent forbidden
      foo = long_function_name(
        var_one, var_two, var_three,
        var_four)

      # No hanging indent in a dictionary
      foo = {
          long_dictionary_key:
              long_dictionary_value,
              ...
      }
四、空行:
适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则:
1、在类、函数的定义间加空行;
2、在 import 不同种类的模块间加空行;
3、在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔。

五、空格:
空格在Python代码中是有意义的,因为Python的语法依赖于缩进,在行首的空格称为前导空格。在这一节不讨论前导空格相关的内容,只讨论非前导空格。非前导空格在Python代码中没有意义,但适当地加入非前导空格可以增进代码的可读性。
1、在二元操作符两边都加上一个空格, 比如赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not). 至于算术操作符两边的空格该如何使用, 需要你自己好好判断. 不过两侧务必要保持一致.

a = b + c;
2、在一元前缀运算符后不加空格,如
if !flg: pass;
3、不要在逗号, 分号, 冒号前面加空格, 但应该在它们后面加(除了在行尾).
Yes: if x == 4:
         print x, y
     x, y = y, x
No:  if x == 4 :
         print x , y
     x , y = y , x
4、括号内不要有空格.
Yes: spam(ham[1], {eggs: 2}, [])
No:  spam( ham[ 1 ], { eggs: 2 }, [ ] )
5、参数列表, 索引或切片的左括号前不应加空格.
Yes: spam(1)
no: spam (1)
Yes: dict['key'] = list[index]
No:  dict ['key'] = list [index]
6、当’=’用于指示关键字参数或默认参数值时, 不要在其两侧使用空格.
Yes: def complex(real, imag=0.0): return magic(r=real, i=imag)
No:  def complex(real, imag = 0.0): return magic(r = real, i = imag)
7、不要用空格来垂直对齐多行间的标记, 因为这会成为维护的负担(适用于:, #, =等):
Yes:
     foo = 1000  # comment
     long_name = 2  # comment that should not be aligned


     dictionary = {
         "foo": 1,
         "long_name": 2,
         }
No:
     foo       = 1000  # comment
     long_name = 2     # comment that should not be aligned


     dictionary = {
         "foo"      : 1,
         "long_name": 2,
         }
六、断行:
每行不超过80个字符。
例外:
a、长的导入模块语句;
b、注释里的URL。

不要使用反斜杠连接行。

Python会将 圆括号, 中括号和花括号中的行隐式的连接起来 , 你可以利用这个特点. 如果需要, 你可以在表达式外围增加一对额外的圆括号.
Yes: foo_bar(self, width, height, color='black', design=None, x='foo',
             emphasis=None, highlight=0)


     if (width == 0 and height == 0 and
         color == 'red' and emphasis == 'strong'):
如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接:
x = ('This will build a very long long '
     'long long long long long long string')
在注释中,如果必要,将长的URL放在一行上。
Yes:  # See details at
      # http://www.example.com/us/developer/documentation/api/content/v2.0/csv_file_name_extension_full_specification.html
No:  # See details at
     # http://www.example.com/us/developer/documentation/api/content/\
     # v2.0/csv_file_name_extension_full_specification.html
七、字符串:
即使参数都是字符串, 使用%操作符或者格式化方法格式化字符串. 不过也不能一概而论, 你需要在+和%之间好好判定.
Yes: x = a + b
     x = '%s, %s!' % (imperative, expletive)
     x = '{}, {}!'.format(imperative, expletive)
     x = 'name: %s; score: %d' % (name, n)
     x = 'name: {}; score: {}'.format(name, n)
No: x = '%s%s' % (a, b)  # use + in this case
    x = '{}{}'.format(a, b)  # use + in this case
    x = imperative + ', ' + expletive + '!'
    x = 'name: ' + name + '; score: ' + str(n)
避免在循环中用+和+=操作符来累加字符串. 由于字符串是不可变的, 这样做会创建不必要的临时对象, 并且导致二次方而不是线性的运行时间. 作为替代方案, 你可以将每个子串加入列表, 然后在循环结束后用 .join 连接列表. (也可以将每个子串写入一个 cStringIO.StringIO 缓存中.)

                
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
Python编程规范是指在编写Python代码时应遵循的一系列规则和准则,以提高代码的可读性、可维护性和可扩展性。主要有两个主流的编程规范指南:PEP 8和Google开源项目风格指南。 PEP 8是Python Enhancement Proposal的缩写,是Python社区广泛接受的编程规范指南。它提供了关于代码布局、命名规范、注释、代码风格等方面的建议。以下是PEP 8的一些主要规范: - 使用4个空格作为缩进,而不是制表符。 - 每行代码不超过79个字符。 - 使用空行来分隔函数和类,以及函数内的逻辑块。 - 使用空格来分隔运算符和逗号,但不要在括号内部使用空格。 - 使用全小写字母和下划线来命名变量、函数和模块。 - 使用驼峰命名法来命名类。 - 在逻辑行的末尾使用反斜杠来换行。 - 使用文档字符串来描述模块、函数和类的功能。 Google开源项目风格指南是Google公司针对Python编程规范指南。它与PEP 8有一些不同之处,但也提供了一些有用的编程准则。以下是Google开源项目风格指南的一些主要规范: - 使用2个空格作为缩进,而不是制表符。 - 每行代码不超过80个字符。 - 使用空行来分隔函数和类,以及函数内的逻辑块。 - 使用空格来分隔运算符和逗号,但不要在括号内部使用空格。 - 使用全小写字母和下划线来命名变量、函数和模块。 - 使用驼峰命名法来命名类。 - 在逻辑行的末尾使用反斜杠来换行。 - 使用文档字符串来描述模块、函数和类的功能。 总之,遵循编程规范可以使代码更易读、易懂和易于维护。根据个人喜好和项目需求,可以选择PEP 8或Google开源项目风格指南作为编程规范的参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值