基于计算机等级二级Python语言程序设计
程序的格式框架,即段落格式,是Python语法的一部分,这种设计有助于提高代码的可读性和可维护性。
缩进 Python语言采用严格的”缩进“来表示程序逻辑。缩进指每行语句开始前的空白区域,用来表示Python程序间的包含和层次关系。一般代码不需要缩进,顶行编写且不留空白。当表示分支、循环、函数、类等程序含义时,在if、while、for、def、class等 保留字所在完整语句后通过引文冒号(:)结尾并在之后行进行缩进,表明后续代码与紧邻无缩进语句的所属关系。需要注意,不是所有语句都可以通过缩进包含其他代码,只有上述一下特定保留字所在语句才可以引导缩进。 代码编写中,缩进可以用Tab键实现,也可以用多个空格实现(一般时4个空格),但两者不混用。Python中建议采用4个空格的书写方式。Python语言对语句之间的层次关系没有显示,可以嵌套使用多层缩进。 如果Python程序执行时产生了”Unecpected indent“错误,则说明代码中出现了缩进不匹配的问题,需要查看所有的缩进是否一样,以及错用缩进的情况。
注释 注释是代码中的辅助性文字,会被编译器或解释器略去,不被计算机执行,一般用于程序员对代码的说明。Python采用”#“表示一行注释的开始。
# 单行注释 # 单行注释 print("hello world") # 这也是一个单行注释在python中,使用一堆三引号("""")或(’’’’’’)进行多行注释,引号中间的代码,解释器将忽略。
''' 这是单引号多行注释 这是单引号多行注释 ''' """ 这是双引号的多行注释 这是双引号的多行注释 """多行注释通过用来为Python文件、模块、类或者函数等添加版权、功能等信息,也经常用来解释代码中重要的函数、参数等信息,以便于后续开发这维护代码。
续行符 Python程序是逐行编写的,每行代码长度并无限制,单从程序员角度,单行代码太长并不利于阅读,因此,Python提供“续行符”将单行代码分割为多行表达。续行符有反斜杠(\)符号表达。
print("这是"+\ "一行"+\ "字符")与自然语言相似,Python语言的基本单位是“单词”,少部分单词是Python语言规定的,被称为保留字,大部分单词是用户自定义的,通过命令过程形成了变量或函数,用来代表数据或代码。
变量 变量是保存和表示数据值的一种语法元素,在程序中十分常见。顾名思义,变量的值是可以改变的,能够通过赋值(使用等号“=”表达)方式被修改。>>> a = 99 >>> a = a + 1 >>> print(a) 在python中,变量可以随时命名,随时赋值,随时使用。命名 给变量或其他程序元素关联名称或标识符的过程称为命名。 Python采用大写字母、小写字母,数字、下划线和汉字等字符及其组合进行命名,单名字的首字母不能是数字,标识符中间不能出现空格,长度没有限制。 一般来说,程序员可以选择任何喜欢的名字,包括使用中文字符命名,但从编程习惯和兼容性角度考虑,一般不建议采用中文等非英语语言字符对变量命名。标识符名字不能与Python保留字相同。保留字O 保留字(keyword),也称关键字,值被编程语言内部定义并保留使用的标识符。程序员编写程序不能命名与保留字相同的标识符。每种程序语言都有一套保留字,保留字一般用来构成程序整体框架,表达关键值和具有结构性的复杂语义等。 python3中共有35个保留字,可以通过以下的方式引入。import keyword keyword.kwlist #通过引入keyword库,可以查询到保留的关键字。由于Python语言的格式框架也是语法元素的一部分,且语法中没有过多的控制格式符号,因此,不经过任何要求的Python源程序都具有一定的可读性。进一步的,什么样的代码才是漂亮的呢?Tim Peters从哲学层面给出了一个非常优美的回答,被称为"Python之禅"(the Zen of Python)
>>>import this 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! 优美胜于丑陋明了胜于隐晦简洁胜于复杂复杂胜于凌乱扁平胜于嵌套间隔胜于紧凑可读性很重要即使假借特例的使用性知名,也不要违背上述规则除非你确定需要,任何错误都应该由应对当村在多种可能时,不要尝试去猜测只要你不是Guido,对于问题尽量找一种,最好时唯一明显的解决方案做也许好过不做,但不假思索就动手还不如不做如果你无法向人描述你的实现方案,那肯定不是一个好方案如果实现方案容易解释,可能是个好方案命名空间是绝妙的理念,要多运用。Python中采用PEP8作为编码规范,其中PEP是Python Enhancement Proposal的缩写,意思就是Python增强建议书,8,表示版本号。下面给处PEP8编码规范中的一些应该严格遵守的条目。
每个import语句只导入一个模块,尽量避免依次导入多个模块。不要在行尾添加";",也不要用分号将两条命名放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性。一般在顶级定义之间空两行,方法之间空一行。另外,在用于分隔某些功能的位置也可以空一行。通常情况下,运算符两侧、函数参数之间、都会","两侧建议使用空格进行分隔适当使用异常处理结构提高程序容错性,但不能过多依赖异常处理结构,适当的显式判断还是必要的。