文档库 最新最全的文档下载
当前位置:文档库 › Python编码规范

Python编码规范

Python编码规范
Python编码规范

INF-qa Python编码规范

修改记录

目录

INF-qa Python编码规范 (1)

1. 介绍 (3)

1.1. 开发背景 (3)

1.2. 语言 (3)

1.2.1. 版本 (3)

1.3. 规范文档 (3)

2. 一致性的建议 (3)

3. 代码的布局 (3)

3.1. 缩进 (3)

3.2. Tab键还是空格 (4)

3.3. 行的最大长度 (4)

3.4. 空行 (4)

3.5. 编码 (4)

4. 导入 (4)

5. 空格 (5)

5.1. 其它建议 (5)

6. 注释 (6)

6.1 注释块 (6)

6.2 行内注释 (6)

7. 文档化 (7)

8. 版本注解 (7)

9. 命名约定 (7)

9.1. 描述:命名风格 (7)

9.2. 说明:命名约定 (8)

9.2.1. 应避免的名字 (8)

9.2.2. 模块名 (8)

9.2.3. 类名 (8)

9.2.4. 异常名 (8)

9.2.5. 全局变量名 (8)

9.2.6. 函数名 (9)

9.2.7. 方法名和实例变量名 (9)

9.2.8. 继承 (9)

10. 设计建议 (9)

11. Demo (10)

12. The zen of python (12)

1.介绍

1.1.开发背景

为了提高组内自动化开发效率,避免重复开发,对组内各模块已开发的自动化lib库、case中常用的操作、以及其他工具的调用接口进行汇总,管理出dsqa组内自动化case开发的基础库。

1.2.语言

基础库采用python开发。需要调用的相关二进制工具的地方,为降低开发成本,暂采用直接调该工具,封出python方法接口。

1.2.1.版本

Python版本较多,为避免上下版本的兼容性问题,开发采用统一版本。

Python 2.6.2/2.7.x

1.3.规范文档

为了方便维护、他人阅读使用,整理出该编码规范文档。请大家开发时遵循本规范进行更开发。

本文档参考自Guido的《Python风格指南》一文. 并从《Barry's style guide》中添加了部分内容,以及我的个人建议。

2.一致性的建议

整个项目的开发中,请尽量保持一致性,尤其是一个模块或者一个函数中的一致性更为重要。

因此存在这样的一个问题:由于不同模块的lib库开发人不同,编码规范也可能不同,整合起来会显得不够“和谐”。还是希望各模块lib库负责人做相应的修改,尽量“和谐”。

3.代码的布局

3.1.缩进

众所周知,python是通过缩进来进行代码布局的。使用vi可以在~/.vimrc中配置几个空格来代表一个tab,从而来布局python函数的缩进。

3.2.Tab键还是空格

Python里有一句叫“以用空格为荣,以用tab键为耻”。但全用空格时确实很麻烦。因此,这里不限定用tab键还是空格。但记住:不可混用!

你可以选择全部使用tab键,这样也不会出错。

3.3.行的最大长度

类似于函数中的行注释、函数体等,如果某一行很长,则导致换行折叠观看,很影响美观,而且还不利于阅读。因此,对顺序排放的的大块文本(文档字符串或注释),推荐长度限制在72个字节内。

推荐使用反斜杠续行。

3.4.空行

用两行分割顶层函数和类的定义。

用一行分割类成员方法的定义。

在一个函数内使用空行时请注意谨慎使用于一个逻辑段。

3.5.编码

在python 2.4之后内核已经开始支持Unicode了。

无论什么情况下,使用UTF-8才是王道!

4.导入

通常应该在单独行中使用导入。

但是这样也是可以的:

imports应该放在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。

Imports 也是有顺序的:

1)Python标准库的import;

2)第三方库的import;

3)自定义的库的import;

并且在每组的import之间使用一行空行分割。

5.空格

以下地方不推荐出现空格:

1)紧挨着圆括号,方括号和花括号的

如:"spam( ham[ 1 ], { eggs: 2 } )".写成"spam(ham[1], {eggs: 2})".

2)紧贴在逗号,分号或冒号前的

如: "if x == 4 : print x , y ; x , y = y , x". 写成"if x == 4: print x, y; x, y = y, x".

3)紧贴着函数调用的参数列表前开式括号的

如: "dict ['key'] = list [index]". 写成"dict['key'] = list[index]".

4)紧贴在索引或切片下标开始的开式括号前

如: "dict ['key'] = list [index]".写成"dict['key'] = list[index]".

写成

5.1.其它建议

始终在这些二元运算符两边放置一个空格:赋值(=), 比较(==, <, >, !=, <>, <=,>=, in, not in, is, is not), 布尔运算(and, or, not).

按你的看法在算术运算符周围插入空格. 始终保持二元运算符两边空格的一致.

6.注释

注释必须跟代码保持一致,当你想修改代码时,建议优先修改注释。

注释必须是完整的句子。

如果注释是一个句子或者短语,请首字母大写。

如果注释很短,建议省略句末的句号。

注释块通常由一个或多个由完整句子构成的段落组成,每个句子应该以句号结尾。

注释请使用英文。

约定使用统一的文档化注释格式有助于良好的习惯和团队的进步。

6.1注释块

注释块通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次。

注释块中每行以'#'和一个空格开始(除非他是注释内的缩进文本)。

注释块内的段落以仅含单个'#'的行分割。

注释块上下方最好有一空行包围(或上方两行下方一行,对一个新函数定义段的注释)。

6.2行内注释

7.文档化

为配合pydoc;epydoc,Doxygen等等文档化工具的使用,应该一直遵守编写好的文档字符串的约定。

对单行的文档字符串,结尾的"""在同一行也可以。

8.版本注解

这个行应该包含在模块的文档字符串之后,所有代码之前,上下用一个空行分割。

跟其他相关信息(如author、copyright、date等)一起。

9.命名约定

现有的库的命名约定想必比较混乱,但对于今后即将开发的新的模块应尽量遵循该约定开发。对于已有的模块存在不同风格的,保证内部的一致性是首选的。

9.1.描述:命名风格

一般的命名风格大家都清楚。这里说几个特殊的注意点:

1)单下划线作为前导,如:_single_begin,这是弱的内部使用标识,例如使用“from M import *”的时候不会被导入;

2)单下划线作为结尾的,如:single_end_,这一般用于跟python关键词冲突;

3)双下划线前导,如:__double_begin,类私有名;

4)双下划线前导+结尾,如:__double_begin_and_end__,特殊对象或属性,存在于用户控制的命名空间中,如:__init__,__import__等。有时可以被用户定义,用于触发某个特殊行为,如运算符重载。

9.2. 说明:命名约定

9.2.1. 应避免的名字

永远不要用:

1)小写字母“l”(小写的“L”);

2)大写字母“O”;

3)大写字母“I”(读音eye);

作为单字符的变量名,因为不利于跟数字“0”和“1”很好的区分开来。

当要用小写字母“l”时,请用大写字母“L”代替。

9.2.2. 模块名

模块应该是不含下划线的,简短的,小写的名字。

因为模块名被映射到文件名, 有些文件系统大小写不敏感并且截短长名字, 模块名被选为相当短是重要的---这在Unix上不是问题, 但当代码传到Mac 或Windows上就可能是个问题了。

9.2.3. 类名

几乎没有例外,类名总是使用首字母大写、驼峰命名单词串的约定。

9.2.4. 异常名

首字母大写、驼峰命名

9.2.5. 全局变量名

这个的约定跟用于函数的约定差不多。

那些模块,应该在那些不想被导入的全局变量(还有内部函数和类)前加一个下划线)。

9.2.6. 函数名

函数名应该为小写、动宾短语,可能用下划线风格单词以增加可读性。如:open_file() 9.2.7. 方法名和实例变量名

小写、动宾短语、下划线风格以增加可读性。

单前导下划线仅用于不打算作为类的公共接口的内部方法。

双前导下划线表示类私有的名字,python将这些名字和类名连接在一起。

如果类Foo有一个属性名为__a, 它不能以Foo.__a访问,如果你非要访问,还是可以通过Foo._Foo__a得到访问权。通常,双前导下划线应该只用来避免与类中的属性发生名字冲突。

9.2.8. 继承

始终要确定一个类中的方法和实例变量是否要被公开。

同样,确定你的属性是否应为私有的。私有与非公有的区别在于:前者永远不会被用在一个派生类中,而后者可能会。

私有属性必须有两个前导下划线,无后置下划线。非公有属性必须有一个前导下划线,无后置下划线。公共属性没有前导和后置下划线,除非它们与保留字冲突。

10.设计建议

1)与像None 之类的单值进行比较的时候,应永远使用:‘is’或‘is not’:当你本意是"if x is not None"时,对写成"if x"要小心,因为例如当你测试一个默认为None 的变量或参数是否被设置为其它值时,这个其它值可能是一个在布尔上下文中为假的值。

2)基于类的异常总是好过基于字符串的异常:

模块和包应该定义它们自己的域内特定的基异常类, 基类应该是内建的Exception类的子类。还始终包含一个类的文档字符串。例如:

3)使用字符串方法代替字符串模块:

因为字符串方法总是非常的快。

4)在检查前缀或后缀时避免对字符串进行切片:

5)对象类型的比较应该始终用isinstance()代替直接比较类型:

6)检查一个对象是否是字符串时,紧记它也可能是unicode字符串。

7)对序列,(字符串、列表、元组),使用空列表是false这个事实,因此"if not seq"或"if seq"

比"if len(seq)"或"if not len(seq)"好。

8)书写字符串文字时不要依赖于有意义的后置空格,这种后置空格在视觉上是不可辨别的。

9)No Chinese!包括注释,也请尽量使用英文。

10)自动化case中请使用python logging模块设定日志级别打印日志,而不要大量使用print输出。

11)Print时请使用”%d”、”%s”等标准输出格式,请勿str和变量混合连接使用。11.Demo

这里我写的demo,也不一定完全百分百地跟规范一模一样,但至少能确保他人阅读起来不会费劲。

用epydoc生成文档后,epydoc会识别出你的注释信息,并在moudle中体现出来,如下图:

对于类方法,它的参数(Parameters)是什么,它是用来干什么的(Note)都一目了然。

12.The zen of python

最后附上《The zen of python》,希望我们的开发越来越规范,整个团队进步越来越快!

The Zen of Python

by Tim Peters

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never.

Although never is often better than *right* now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!

PEP8Python编码规范.doc

PEP8 Python 编码规范 1代码编排 1.1 缩进。 4 个空格的缩进(编辑器都可以完成此功能),不使用 Tap,更不能混合使 用 Tap 和空格。 1.2 每行最大长度 79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的 后边敲回车。 1.3 类和 top-level 函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无 关段落之间空一行;其他地方尽量不要再空行。 2文档编排 2.1 模块内容的顺序:模块说明和docstring — import — globals&constants —其他定义。 其中 import 部分,又按标准、三方和自己编写顺序依次排放,之间空一行。 2.2 不要在一句 import 中多个库,比如 import os, sys 不推荐。 2.3 如果采用 from XX import XX 引用库,可以省略‘ module. ’,都是可能出现命名冲 突,这时就要采用 import XX 。 3空格的使用 总体原则,避免不必要的空格。 3.1 各种右括号前不要加空格。 3.2 逗号、冒号、分号前不要加空格。 3.3 函数的左括号前不要加空格。如Func(1)。 3.4 序列的左括号前不要加空格。如list[2] 。 3.5 操作符左右各加一个空格,不要为了对齐增加空格。 3.6 函数默认参数使用的赋值符左右省略空格。 3.7 不要将多句语句写在同一行,尽管使用‘;’允许。 3.8 if/for/while 语句中,即使执行语句只有一句,也必须另起一行。 4注释 总体原则,错误的注释不如没有注释。所以当一段代码发生变化时,第一件事就 是要修改注释!注释必须使用英文,最好是完整的句子,首字母大写,句后要有结 束符,结束符后跟两个空格,开始下一句。如果是短语,可以省略结束符。 4.1块注释,在一段代码前增加的注释。在‘ #’后加一空格。段落之间以只有‘#’的行间 隔。比如: #Description : Module config. # #Input : None # # Output : None 4.2行注释,在一句代码后加注释。比如:x = x + 1# Increment x 但是这种方式尽量少使用。 4.3避免无谓的注释。

(完整版)Python开发编码规范

Python开发编码规范

目录 1代码的布局 (3) 1.1缩进 (3) 1.2制表符还是空格? (3) 1.3行的最大长度 (3) 1.4空行 (3) 2编码 (4) 2.1导入 (4) 2.2空格 (5) 2.3其它建议(Other Recommendations) (6) 2.4注释 (7) 2.4.1注释块 (7) 2.4.2行内注释 (7) 2.5文档化 (8) 2.6版本注记 (9) 2.7命名约定 (9) 2.7.1描述:命名风格 (10) 2.7.2说明:命名约定 (11) 2.7.3应避免的名字 (11) 2.7.3.1模块名(Module Names) (11) 2.7.3.2类名(Class Names) (11) 2.7.3.3异常名(Exception Names) (11) 2.7.3.4全局变量名(Global Variable Names) (12) 2.7.3.5函数名(Function Names) (12) 2.7.3.6方法名和实例变量(Method Names and Instance Variables) (12) 2.7.3.7继承的设计(Designing for inheritance) (12) 3设计建议(Programming Recommendations) (13)

1代码的布局 1.1缩进 使用Emacs的Python-mode的默认值:4个空格一个缩进层次。对于确实古老的代码,你不希望产生混乱,可以继续使用8空格的制表符(8-space tabs)。 Emacs Python-mode自动发现文件中主要的缩进层次,依此设定缩进参数。 1.2制表符还是空格? 永远不要混用制表符和空格。最流行的Python缩进方式是仅使用空格, 其次是仅使用制表符。混合着制表符和空格缩进的代码将被转换成仅使用空格。(在Emacs中,选中整个缓冲区,按ESC-x去除制表符(untabify)。) 调用python命令行解释器时使用-t选项,可对代码中不合法得混合制表符和空格发出警告(warnings)。使用-tt时警告(warnings)将变成错误(errors)。这些选项是被高度推荐的。对于新的项目,强烈推荐仅使用空格(spaces-only)而不是制表符。许多编辑器拥有使之易于实现的功能。(在Emacs中,确认indent-tabs-mode是nil)。 1.3行的最大长度 周围仍然有许多设备被限制在每行80字符;而且,窗口限制在80个字符使将多个窗口并排放置成为可能。在这些设备上使用默认的折叠(wrapping)方式看起来有点丑陋。因此,请将所有行限制在最大79字符(Emacs准确得将行限制为长80字符), 对顺序排放的大块文本(文档字符串或注释),推荐将长度限制在72字符。折叠长行的首选方法是使用Pyhon支持的圆括号,方括号(brackets)和花括号(braces)内的行延续。如果需要,你可以在表达式周围增加一对额外的圆括号, 但是有时使用反斜杠看起来更好。确认恰当得缩进了延续的行。Emacs的Python-mode正确得完成了这些。一些例子: Toggle line numbers 1 class Rectangle(Blob): 2 3 def __init__(self, width, height, 4 color='black', emphasis=None, highlight=0): 5 if width == 0 and height == 0 and \ color == 'red' and emphasis == 'strong' or \ highlight > 100: 6 raise ValueError, "sorry, you lose" 7 if width == 0 and height == 0 and (color == 'red' or 8 emphasis is None): 9 raise ValueError, "I don't think so" 10 Blob。__init__(self, width, height, 11 color, emphasis, highlight) 1.4空行 用两行空行分割顶层函数和类的定义,类内方法的定义用单个空行分割。 额外的空行可被用于(保守的(sparingly))分割相关函数组成的群(groups of

Python编码规范

Python编码规范 这篇文档改编自Guido最初的《Python风格指南》一文,并从《Barry's style guide》中添加了部分内容。在有冲突的地方,Guide的风格规则应该是符合本PEP的意图(译注:指当有冲突时,应以Guido风格为准)。这篇PEP仍然尚未完成(实际上,它可能永远都不会完成)。 在这篇风格指导中的一致性是重要的。在一个项目内的一致性更重要。在一个模块或函数内的一致性最重要。但最重要的是:知道何时会不一致——有时只是没有实施风格指导。当出现疑惑时,运用你的最佳判断,看看别的例子,然后决定怎样看起来更好。并且要不耻下问!代码的布局 缩进 使用Emacs的Python-mode的默认值:4个空格一个缩进层次。对于确实古老的代码,你不希望产生混乱,可以继续使用8空格的制表符(8-space tabs)。Emacs Python-mode自动发现文件中主要的缩进层次,依此设定缩进参数。 制表符还是空格 永远不要混用制表符和空格。最流行的Python缩进方式是仅使用空格,其次是仅使用制表符,混合着制表符和空格缩进的代码将被转换成仅使用空格。(在Emacs中,选中整个缓冲区,按ESC-x去除制表符。)调用Python命令行解释器时使用-t选项,可对代码中不合法得混合制表符和空格发出警告,使用-tt时警告将变成错误。这些选项是被高度推荐的。 对于新的项目,强烈推荐仅使用空格而不是制表符。许多编辑器拥有使之易于实现的功能(在Emacs中,确认indent-tabs-mode是nil)。 行的最大长度 周围仍然有许多设备被限制在每行80字符:而且,窗口限制在80个字符。使将多个窗口并排放置成为可能。在这些设备上使用默认的折叠方式看起来有点丑陋。因此,请将所有行限制在最大79字符(Emacs准确得将行限制为长80字符),对顺序排放的大块文本(文档字符串或注释),推荐将长度限制在72字符。 折叠长行的首选方法是使用Pyhon支持的圆括号,方括号和花括号内的行延续。如果需要,你可以在表达式周围增加一对额外的圆括号,但是有时使用反斜杠看起来更好,确认恰当得缩进了延续的行。

2018最新Python编程规范

Python编程规范 签署:(管理者代表) 日期: 修订记录

目录 1.Purpose目的 (4) 2.Scope适用范围 (4) 3.Roles and Responsibilities角色和职责 (4) 4.Procedure程序要求 (4) 4.1General Requirements总要求 (4) 4.2总则 (5) 5.Reference Documents参考文档 (7) 5.1External Reference外部参考文档 (7) 5.2 Internal Reference内部参考文档 (7) 5.3 Record记录模板 (8) 6.Terms and Definitions缩略语和定义 (8) 6.1 Definitions定义 (8) 6.2 Acronym缩略语 (8)

1. Purpose目的 本程序文件指导Python代码编写,旨在通过程序文件规范编码,通过编码规范来提高代码质量、代码可读性和可维护性。 2. Scope适用范围 本程序文件适用于开发部项目开发过程中所有Python代码。 3. Roles and Responsibilities角色和职责 4. Procedure程序要求 4.1 G eneral Requirements总要求 1、对于命名的规则,各模块负责人应能给出各自明确的命名规则。 2、对于错误的处理机制和要求,各模块负责人应能给出明确的要 求。 3、对于各自的日志处理,各位模块负责人最好能把日志消息分为 高、中、低或其他形式不同的等级,同时对日志有明确的要求。 4、项目组内多人开发时,需要统一变量命名规则,保持风格的一 致性。 5、本规范分为强制规范和推荐规范,强制规范以黑色字体表示, 推荐规范以蓝色字体表示。

python,函数规范

竭诚为您提供优质文档/双击可除 python,函数规范 篇一:简明python编程规范 简明python编程规范 编码 所有的python脚本文件都应在文件头标上 #-*-coding:utf-8-*-。设置编辑器,默认保存为utf-8格式。 注释 业界普遍认同python的注释分为两种的概念,一种是由#开头的“真正的”注释,另一种是docstrings。前者表明为何选择当前实现以及这种实现的原理和难点,后者表明如何使用这个包、模块、类、函数(方法),甚至包括使用示例和单元测试。 坚持适当注释原则。对不存在技术难点的代码坚持不注释,对存在技术难点的代码必须注释。但与注释不同,推荐对每一个包、模块、类、函数(方法)写docstrings,除非代码一目了然,非常简单。 缩进

python依赖缩进来确定代码块的层次,行首空白符主要有两种:tab和空格,但严禁两者混用。如果使用tab缩进,设定tab为4个空格。 公司内部推荐使用4个空格的tab进行缩进。 空格 空格在python代码中是有意义的,因为python的语法依赖于缩进,在行首的空格称为前导空格。在这一节不讨论前导空格相关的内容,只讨论非前导空格。非前导空格在python代码中没有意义,但适当地加入非前导空格可以增进代码的可读性。 1)在二元算术、逻辑运算符前后加空格:如a=b+c; 2)在一元前缀运算符后不加空格,如if!flg:pass; 3)“:”用在行尾时前后皆不加空格,如分枝、循环、函数和类定义语言;用在非行尾时两端加空格,如dict对象的定义d={‘key’:’value’}。 4)括号(含圆括号、方括号和花括号)前后不加空格,如do_something(arg1,arg2),而不是 do_something(arg1,arg2); 5)逗号后面加一个空格,前面不加空格;s 空行 适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则:

Python开发编码规范

Python开发编码规范 --- hoxide 初译 dreamingk 校对发布 040724 --- xyb 重新排版 040915 RedWolf pdf整理 080807 PEP: 8 Title: Style Guide for Python Code Version: 63990 Last-Modified:2008-06-06 20:48:49 +0200 (Fri, 06 Jun 2008) Author: Guido van Rossum , Barry Warsaw Status:Active Type: Process Created: 05-Jul-2001 Post-History:05-Jul-2001 网址: https://www.wendangku.net/doc/cf12899890.html,/moin/Python开发编码规范https://www.wendangku.net/doc/cf12899890.html,/dev/peps/pep-0008/

目 录 介绍 (Introduction) 1 愚蠢得使用一致性是无知的妖怪 2 ( A Foolish Consistency is the Hobgoblin of Little Minds) 代码的布局 ( Code lay-out ) 3 3.1. 缩进(Indentation) 3.2. 制表符还是空格 (Tabs or Spaces)? 3.3. 行的最大长度 (Maximum Line Length) 3.4. 空行 (Blank Lines) 3.5. 编码 (Encodings)(PEP 263) 导入 (Imports) 4 表达式和语句中的空格 5 (Whitespace in Expressions and Statements) 5.1. 其它建议 (Other Recommendations) 注释 (Comments) 6 6.1. 注释块 (Block Comments) 6.2. 行内注释 (Inline Comments) 文档字符串 (Documentation Strings) 7 版本注记 (Version Bookkeeping) 8 9 命名约定 (Naming Conventions) 9.1. 描述 :命名风格 (Descriptive: Naming Styles) 9.2. 说明 :命名约定 (Prescriptive: Naming Conventions) 9.2.1. 应避免的名字 (Names to Avoid) 9.2.2. 模块名 (Module Names) 9.2.3. 类名 (Class Names) 9.2.4. 异常名 (Exception Names) 9.2.5. 全局变量名 (Global Variable Names) 9.2.6. 函数名 (Function Names) 9.2.7. 方法名和实例变量 (Method Names and Instance Variables) 9.2.8. 继承的设计 (Designing for inheritance) 10 设计建议 (Programming Recommendations)

python编程题

1、 【参考代码】 x=eval(input("请输入所花钱x :")) if x>=3000: y=0.7*x elif x>=2000: y=0.8*x elif x>=1000: y=0.9*x else: y=x print("实际应付金额{:.2f}元".format(y)) ???????≤+-≤<++>++=0,3cos 5 0,log 5,1sin 3552x x x x x x e x x x y x x 输入x 的值,输出函数y 的值 【参考代码】 import math x=eval(input("请输入x 的值:")) if x>=5: y=math.sin(x)+math.sqrt(x**2+1) elif x>=0: y=math.exp(x)+math.log(x,5)+x**(1/5) else: y=math.cos(x)-x**3+3*x print("分段函数y 的值是:",y) 3、编写程序,实现分段函数计算,如下表所示。当x=7,输出y 的值

【参考代码】 x = input('Please input x:') x = eval(x) if x<0 or x>=20: print(0) elif 0<=x<5: print(x) elif 5<=x<10: print(3*x-5) elif 10<=x<20: print(0.5*x-2) 4、从键盘上任意输入一个自然数,判断数是否素数。如输入11,则显示:11是素数 【参考代码】 n=eval(input("请输入一个自然数:")) tag=True for i in range(2,n): if n%i==0: tag=False break m="是素数" if tag else "不是素数" print(n,m) 5、编程求解一元二次方程02=++c bx ax ,方程中的c b a ,,系数从键盘输入(提示:分支嵌 套) 注解: 大部分情况下是根据求根公式来求解,即: 判别式: 利用一元二次方程根的判别式( )可以判断方程的根的情况。 一元二次方程的根与根的判别式 有如下关系:

GOOGLE PYTHON STYLE GUIDE GOOGLE内部的PYTHON编程规范中文版

Google Python Style Guide Python编程规范 1、运行前使用pychecker检查语法、 2、Imports只能用力导入packages和modules 3、导入模块的时候,要使用全名 4、异常处理要慎用 5、不允许使用全局变量 6、嵌套类(函数)、本地类(函数)、内部类(函数)可以使用 7、行包只能在简单的case情况下使用 8、使用默认的迭代器和操作符对于lists、dictionaries和files 9、在必要的时候使用生产器 10、只在一行的情况下使用匿名函数 11、可以使用默认参数值 12、使用属性来进行简单和轻量级的操作 13、尽量使用默认的”false”来表示false(python中,None不表示0) 14、不建议的语法:经历使用string的方法,而不是直接使用string模块。使用函数调用,尽量避免使用apply。使用list comprehensions或for或来替代filter,map和reduce 15、可以使用词法界定 16、慎用修饰符,除非能够看到明显的优势 17、线程:不要使用内建的原子操作 18、不要使用Power Features Python Style Rules 1、不要使用分号来隔行 2、每行不要超过80个字符 3、园括号使用越节省越好 4、使用4个空格来缩进 5、使用两个空行来间隔top-level定义,使用1个空行来间隔方法定义 6、在符号前使用空格来排版 7、使用#!/usr/bin/python来做首行 8、使用正确的注释格式 9、类都从object继承 10、尽量都使用%来格式化字符串 11、TODO的注释只能作为临时的使用 12、每行只import一个模块 13、每行只写一条语句 14、减少存取函数的操作。假如函数只做存取的功能,就不如把变量定义为公共的 15、命名方法

Python 编码规范汇编

Python 编码规范 遵循良好的编码风格,可以有效的提高代码的可读性,降低出错几率和维护难度。在团队开发中,使用(尽量)统一的编码风格,还可以降低沟通成本。 网上有很多版本的编码规范,基本上都是遵循PEP8 的规范: ? ? ? ? 除了在编码时主动遵循规范,还有很多有用的工具: ?IntelliJ IDEA 和PyCharm 的格式化代码功能 ?Google 开源的Python 文件格式化工具: ?pyflakes, pylint 等工具及各种编辑器的插件 本文的内容主要摘自互联网上各种版本的规范,因为公司有些小伙伴代码风格不太好,所以整理了一份算是团队的编码规范。 缩进 ?不要使用tab 缩进 ?使用任何编辑器写Python,请把一个tab 展开为4 个空格 ?绝对不要混用tab 和空格,否则容易出现 空格 ?在list, dict, tuple, set, 参数列表的后面加一个空格 ?在dict 的后面加一个空格 ?在注释符号后面加一个空格,但是的后不能有空格 ?操作符两端加一个空格,如 ?接上一条,在参数列表里的两端不需要空格 ?

空行 ?function 和class 顶上两个空行 ?class 的method 之间一个空行 ?函数内逻辑无关的段落之间空一行,不要过度使用空行 ?不要把多个语句写在一行,然后用隔开 ?if/for/while 语句中,即使执行语句只有一句,也要另起一行换行 ?每一行代码控制在80 字符以内 ?使用或控制换行,举例: 命名 ?使用有意义的,英文单词或词组,绝对不要使用汉语拼音 ?package/module 名中不要出现 ?各种类型的命名规范:

Python 编码规范(Google Python Style Guide)

分号行长度 括号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 = ('这是一个非常长非常长非常长非常长 ' '非常长非常长非常长非常长非常长非常长的字符串') # See details at # https://www.wendangku.net/doc/cf12899890.html,/us/developer/documentation/api/content/v2.0/csv_file_name_exte nsion_full_specification.html # See details at # https://www.wendangku.net/doc/cf12899890.html,/us/developer/documentation/api/content/\ # v2.0/csv_file_name_extension_full_specification.html

宁缺毋滥的使用括号 除非是用于实现行连接, 否则不要在返回语句或条件语句中使用括号. 不过在元组两边使用括号是可以的. Yes:No: 缩进 用4个空格来缩进代码 绝对不要用tab, 也不要tab 和空格混用. 对于行连接的情况, 你应该要么垂直对齐换行的元素(见 :ref:`行长度 ` 部分的示例), 或者使用4空格的悬挂式缩进(这时第一行不应该有参数): if foo: bar()while x: x = bar()if x and y: bar()if not x: bar()return foo for (x, y) in dict.items(): ... if (x): bar()if not(x): bar()return (foo) Yes: # 与起始变量对齐 foo = long_function_name(var_one, var_two, var_three, var_four) # 字典中与起始值对齐 foo = { long_dictionary_key: value1 + value2, ... } # 4 个空格缩进,第一行不需要 foo = long_function_name( var_one, var_two, var_three, var_four) # 字典中 4 个空格缩进 foo = { long_dictionary_key: long_dictionary_value, ... } No: # 第一行有空格是禁止的 foo = long_function_name(var_one, var_two, var_three, var_four) # 2 个空格是禁止的 foo = long_function_name( var_one, var_two, var_three, var_four) # 字典中没有处理缩进 foo = { long_dictionary_key: long_dictionary_value, ... }

Bug清除手册-代码书写规范与基本使用(Python)

第0-3关 代码书写规范与基本使用 Q:代码“=”(等号)的两边要不要空格,有影响吗? A:没有影响,要习惯空格,这样更加规范美观,有辨识度,如: a = 0 b = input('输入你的问题') Q:单引号、双引号、三引号的区别? A:正常使用单引号和双引号都是可以的,三引号表达的是换行字符串,会将引号内的所有内容打印出来,如: print(''' 你好啊 天气真好''') Q:直接输入内容不能运行,如直接输入 你好啊,天气真好 点击运行,结果报错? A:python代码是需要有执行的,你好啊,天气真好并不是一个执行操作。 Q:代码一直显示“运行中”? A:检查一下终端是不是可以输入,如果代码内有输入操作的话,代码会一直显示运行中,需要等待输入内容;若终端不可输入,则可尝试刷新学习页面。 Q:else后面不可以加条件? A:else表达的就是其它所有情况,不可加条件,只有if和elif需要加条件。 Q:if和else一定要同时出现吗? A:不一定,它们都可以单独使用,else也可以和循环一起使用,表达循环外的所有情况 Q:int(input())输入小数为何报错?

A:input输出的是字符串类型,类浮点数字符串如'1.5'中的小数点是无法被int函数识别转换的,所以会报错,int只能转换纯整数字符串 Q:数据的运算? A:整数和浮点数是可以直接加减乘除的,字符串如果用加法的话会拼在一起形成一个新的字符串,用乘法会多次打印如,'2'*7会得到'2222222',字符串是没有减法和除法的 Q:input里面要不要加print? A:不需要,input括号内的内容可以理解为是问题,在运行的时候就会把问题打印出来,如果加上print的话,就会打印none,这里涉及到返回值的问题,目前不需要纠结 Q:常见的一些报错类型? A: SyntaxError: unexpected EOF while parsing #语法错误,多了无法解析的符号,检查一下是否多了或者少了括号 SyntaxError: invalid character in identifier #语法错误有无效标识符,检查一下中文符号 IndexError: list index out of range #索引错误,超出索引范围,检查一下列表是否为空 TypeError: must be str, not int #数据类型错误,该数据不是正确的数据类型,比如字符串和数字直接拼接,检查一下数据类型 IndentationError: expected an indented block #缩进错误,检查一下代码的缩进是否正确 KeyError: 'fond' #键错误,字典中没有该的key对应的值,检查一下键名或者字典数据是否正确 ValueError: substring not found #值错误,输入的数据类型跟要求的不符合 NameError: name 'a' is not defined #未初始化对象,变量没有被定义

Python开发编码规范

Python开发编码规范 这篇文档所给出的编码约定适用于在主要的Python发布版本中组成标准库的Python 代码,请查阅相关的关于在Python的C实现中C代码风格指南的描述。 这篇文档改编自Guido最初的《Python风格指南》一文,并从《Barry's style guide》中添加了部分内容。在有冲突的地方,Guide的风格规则应该是符合本PEP的意图(译注:指当有冲突时,应以Guido风格为准)。这篇PEP仍然尚未完成(实际上,它可能永远都不会完成)。 在这篇风格指导中的一致性是重要的。在一个项目内的一致性更重要。在一个模块或函数内的一致性最重要。但最重要的是:知道何时会不一致——有时只是没有实施风格指导。当出现疑惑时,运用你的最佳判断,看看别的例子,然后决定怎样看起来更好。并且要不耻下问! 打破一条既定规则的两个好理由: (1)当应用这个规则是将导致代码可读性下降,即便对某人来说,他已经习惯于按这条 规则来阅读代码了。 (2)为了和周围的代码保持一致而打破规则(也许是历史原因),虽然这也是个清除其它 混乱的好机会(真正的XP风格)。 代码的布局 缩进 使用Emacs的Python-mode的默认值:4个空格一个缩进层次。对于确实古老的代码,你不希望产生混乱,可以继续使用8空格的制表符(8-space tabs)。Emacs Python-mode自动发现文件中主要的缩进层次,依此设定缩进参数。 制表符还是空格 永远不要混用制表符和空格。最流行的Python缩进方式是仅使用空格,其次是仅使用制表符,混合着制表符和空格缩进的代码将被转换成仅使用空格。(在Emacs中,选中整个缓冲区,按ESC-x去除制表符。)调用Python命令行解释器时使用-t选项,可对代码中不合法得混合制表符和空格发出警告,使用-tt时警告将变成错误。这些选项是被高度推荐的。 对于新的项目,强烈推荐仅使用空格而不是制表符。许多编辑器拥有使之易于实现的功能(在Emacs中,确认indent-tabs-mode是nil)。 行的最大长度 周围仍然有许多设备被限制在每行80字符:而且,窗口限制在80个字符。使将多个窗口并排放置成为可能。在这些设备上使用默认的折叠方式看起来有点丑陋。因此,请将所有行限制在最大79字符(Emacs准确得将行限制为长80字符),对顺序排放的大块文本(文档字符串或注释),推荐将长度限制在72字符。 折叠长行的首选方法是使用Pyhon支持的圆括号,方括号和花括号内的行延续。如果需要,你可以在表达式周围增加一对额外的圆括号,但是有时使用反斜杠看起来更好,确认恰当得缩进了延续的行。 Emacs的Python-mode正确得完成了这些。一些例子: #!Python class Rectangle(Blob): def __init__(self,width,height,color='black',emphasis=None,highlight=0):

python,函数注释规范

竭诚为您提供优质文档/双击可除python,函数注释规范 篇一:python命名规范1 python规范 代码的布局 编码 所有的python脚本文件都应在文件头标上 “#-*-coding:utf-8-*-”。 缩进 4个空格一个缩进层次 空行 适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则: (1)在类、函数的定义间加空行; (2)在import不同种类的模块间加工行; (3)在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间 以空行分隔 换行

语句比较长,一行写不下的情况下使用1.在括号(包括圆括号、方括号和花括号)内换行,如: classedit(cbase): def__init__(self,parent,width, font=Font,color=black,pos=pos,style=0): 或: very_very_very_long_variable_name=edit(parent,\ width,\ font,\ color,\ pos) 如果行长到连第一个括号内的参数都放不下,则每个元素都单独占一行: very_very_very_long_variable_name=ui.widgets.edit(\ paent,\ width,\ font,\ color,\ pos) 2.在长行加入续行符强行断行,断行的位置应在操作符前,且换行后多一个缩进,以使维

护人员看代码的时候看到代码行首即可判定这里存在 换行,如: ifcolor==whiteorcolor==black\ orcolor==blue:#注意or操作符在新行的行首而不是旧行的行尾 do_something(color);命名约定 有许多不同的命名风格。以下的有助于辨认正在使用的命名风格,独立于它们的作用。以下的命名风格是众所周知的: b(单个小写字母) b(单个大写字母) lowercase(小写) lower_case_with_underscores(有下划线的小写) uppeRcase(大写) uppeR_case_with_undeRscoRes(有下划线的大写) 应避免的名字。永远不要用字符l(小写字母el(就是读音,下同)),o(大写字母oh),或i(大写字母eye)作为单字符的变量名。在某些字体中这些字符不能与数字1和0分辨。试着在使用l时用l代替。 常量 常量名所有字母大写,由下划线连接各个单词,如: white=0xFFFFFF

Python 命名规范1

Python 规范 代码的布局 编码 所有的Python脚本文件都应在文件头标上“# -*- coding:utf-8 -*-”。 缩进 4个空格一个缩进层次 空行 适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则: (1) 在类、函数的定义间加空行; (2) 在import不同种类的模块间加工行; (3) 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间 以空行分隔 换行 语句比较长,一行写不下的情况下使用 1.在括号(包括圆括号、方括号和花括号)内换行,如: class Edit(CBase): def __init__(self, parent, width, font = FONT, color = BLACK, pos = POS, style = 0): 或: very_very_very_long_variable_name = Edit(parent, \ width, \ font, \ color, \ pos) 如果行长到连第一个括号内的参数都放不下,则每个元素都单独占一行: very_very_very_long_variable_name = ui.widgets.Edit( \ panrent, \ width, \

font, \ color, \ pos) 2.在长行加入续行符强行断行,断行的位置应在操作符前,且换行后多一个缩进,以使维 护人员看代码的时候看到代码行首即可判定这里存在换行,如: if color == WHITE or color == BLACK \ or color == BLUE: # 注意or操作符在新行的行首而不是旧行的行尾 do_something(color); 命名约定 有许多不同的命名风格。以下的有助于辨认正在使用的命名风格,独立于它们的作用。以下的命名风格是众所周知的: b (单个小写字母) B (单个大写字母) Lowercase(小写) lower_case_with_underscores(有下划线的小写) UPPERCASE(大写) UPPER_CASE_WITH_UNDERSCORES(有下划线的大写) 应避免的名字。永远不要用字符…l?(小写字母el(就是读音,下同)),…O?(大写字母oh),或…I?(大写字母eye)作为单字符的变量名。在某些字体中这些字符不能与数字1和0分辨。试着在使用…l?时用…L?代替。 常量 常量名所有字母大写,由下划线连接各个单词,如: WHITE = 0XFFFFFF THIS_IS_A_CONSTANT = 1

《Python基础》课程标准--64课时

《Python基础》课程标准 基本信息 课程名称:《Python基础》 课程代码:****** 课程类别:职业基础课(核心课程) 建议学时:68学时(理实一体化) 学分:4学分 适应对象:计算机应用、软件技术、大数据技术与应用、云计算技术与应用专业建设团队:3~5人以上团队 1 课程概述 1.1 课程的性质 《Python基础》是软件技术等相关专业的专业基础课程。主要讲述Python程序设计的基础知识和相关技术。是计算机应用、软件技术、大数据技术与应用、云计算技术与应用专业的专业基础课程。该课程代码为******,学时为68,4个学分。 《Python基础》课程的教学目的是学生通过学习该课程,掌握Python程序设计语言的基本知识和使用Python语言进行软件开发的思想和基本方法,进而掌握程序设计的基本步骤和通用方法,提高通过编写程序解决实际问题的能力,为今后进一步使用数据采集和分析等大数据及人工智能方面的运用打好基础。课程着眼于学生的长远发展,重点培养其软件开发、大数据及人工智能领域岗位基本工作技能、职业素养、社会适应能力、交流沟通能力、团队协作能力、创新能力和自主学习能力。 1.2课程定位 《Python基础》课程定位于大数据及人工智能领域的基础课程,为数据采集及分析提供全面的语言基础。能运用Python进行数据的处理,能符合全国计算机等级二级Python 语言程序设计考试基本要求。是高职计算机技术、软件技术、云计算技术与应用、大数据技术与应用及人工智能相关专业的一门专业课程。 1.3课程的设置与设计思路 本课程通过大量的案例,引导学生思考问题、分析问题,学生在理解知识点的过程中遇到困难时,可以继续往后学习。通过逐渐深入的学习,前面不懂和疑惑的知识点会“豁然开朗”。在编程的学习中,一定要多动手实践。如果实践过程中,碰到问题,可

Python程序设计_教学大纲_段震

《Python程序设计》 教学大纲 安徽大学计算机科学与技术学院 2015年10 月

课程性质与设置目的要求(前言) 《Python程序设计》课程是计算机科学与技术学院各专业的专业选修课程。Python是一门开源的高级动态编程语言,支持命令式编程、函数式编程、面向对象程序设计,语法简洁清晰,并且拥有大量功能丰富而强大的标准库和扩展库。本课程将从Python语言的实现机制入手,结合示例程序和上机实验,较为系统地介绍Python语言的主要特征和编程技术。 设置本课程的目的是:使学习者在全面了解Python技术历史、现状与发展趋势的基础上,系统掌握Python基本概念、编程思想以及程序设计技术,具备熟练的Python编程技能和面向对象软件设计技术思想,完成本课程的学习后能够熟练地综合应用Python技术和面向对象的思想编写程序解决现实生活中的问题,最终提高程序设计水平和计算机应用能力,从而能胜任企业软件研发以及科研院所的研发、教学任务。 学习本课程的要求是:学习者应理解Python的编程模式,熟练运用Python 列表、元组、字典、集合等基本数据类型以及相关列表推导式、切片等特性来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计以及类的设计与使用,熟练使用正则表达式处理字符串,同时掌握不同领域的Python扩展模块,并能够解决实际问题。 先修课程要求:无 本课程计划34学时,2学分。 选用教材:董付国. Python程序设计(第2版).北京:清华大学出版社,2016.5. 考核方法:考查

教学进程安排表: 周次学 时 数 教学主要内容 教学 环节 备 注 1 3 Python的安装与使用 Python扩展库的管理 Python中的数据类型 讲课 2 3 Python中的内置函数、基本输入输出 Python代码编写规范 Python文件名和程序运行 讲课 3 3 Python中的列表使用讲课 4 3 Python中的元组、字典及集合的使用讲课 5 3 选择和循环结构讲课 6 3 字符串和正则表达式讲课 7 3 函数的设计与使用讲课 8 3 类的定义与使用 类的方法和属性 讲课

Python语言的基本语法和编码规范.doc

Python语言的基本语法和编码规范 Python编程教程教师:工作:Python语言的基本语法和编码标准课程描述本章将介绍Python语言的基本语法和编码标准,重点介绍Python语言的基本知识,如数据类型、运算符、常量、变量、表达式和常用语句,为使用Python开发应用程序奠定基础。 本章中的常量和变量运算符以及知识点的表达式是常用的语句序列、数据结构、常量和变量。常量变量被命名为内存中的存储位置。与常数不同,变量值可以动态变化。 Python命名标识符的规则如下:标识符名称的第一个字符必须是字母或下划线()。标识符名称的第一个字符后面可以跟一个字母、下划线()或一个数字(~)。标识符名称区分大小写。 换句话说,分数和分数是不同的。 下面的代码定义了一个字符串变量a、数字变量b和布尔类型变量c。 这是一个常量b = c =真[的例子]变量值转移的例子。 A=这是一个变量b = arprint(b)#此时变量b的值应该等于变量a的值print(n)a=这是另一个变量print(b)#变量a的操作不会影响变量b的操作结果如下:这是一个变量这是变量赋值过程的示意图id()函数可以使用id() 函数输出变量的地址语法如下:id(变量名)[示例]使用id()函数输出变量地址的示例程序:str=这是一个变量打印(变量str 的值是str)打印(变量str的地址是d(id(str)))str=strprint(变量str的值是str)打印(变量str的地址是d(id(str))) Str=这是另一个变量打印(变量Str

的值是str)打印(变量str的地址是d(id(str)))打印(变量str的值是str)打印(变量str的地址是d(id(str)))类型转换。转换成数字。转换为数字()使用int()函数将字符串转换为整数语法如下:int(x,base)参数X是要转换的字符串参数base指定转换后的整数的二进制值默认为可选参数的二进制值。 ()使用long()函数将字符串转换为长整数的语法如下:long(x,base)参数与int()函数具有相同的含义。 ()使用float()函数将字符串或数字转换为浮点数的语法如下:float(x)参数x是要转换的字符串或数字。 ()使用eval()函数计算字符串中的有效Python表达式,并返回如下结果语法:eval(str)参数字符串是要计算的Python表达式字符串。 A=b=int(a)print(b)(示例)a=print(eval(a))操作的结果是。 。转换为字符串()使用str()函数将数值转换为字符串语法,如下所示:str(x)参数x是要转换的数值。 ()使用repr()函数将对象转换为可打印字符串的语法如下:repr(obj)参数obj是要转换的对象。 执行Python脚本文件()使用chr()函数将整数转换为ASCII 字符语法如下:chr (integer)()使用ord()函数将字符转换为ASCII语法如下:ord(character)[示例]print(chr())print(order(# A #))运行结果为。 a()使用hex()函数将整数转换为十六进制字符串语法如下:chr (integer)()使用oct()函数将整数转换为八进制字符串语法如

相关文档