俗话说,欲先善其事,必先利其器。作为一个小白,当选择了一门语言来学习的时候,我们的电脑得安装这个语言。「Python」 是一门编程语言,可以在服务器上使用 Python 来创建 Web 应用程序,他主要有以下用途:
- Web 开发(服务器端)
- 软件开发
- 数学
- 系统脚本
- 文本检索
- 数据筛选
前两个章节讲解了Python的的一些简单的知识,作为了解,这里再增加一个章节来描述一下Python在实际开发过程中的一些语法、怎么注释和一些变量的使用。
1 Python语法
Python的扩展名是.py就像Java语言的扩展名是.java一个道理。在Python中,我们可以直接使用python命令执行.py文件。例如:python hello.py 。在pthon文件中,通常来讲,按照国际惯例,要使用编码格式为utf-8。在编写代码中,每行的字符个数尽量不超过80个字符,当然,如果你的导入模块比较长,或者注释里面的URL比较长,这个可以除外。
# -- coding: utf-8 --
1.1 关于缩进
缩进指的是代码行开头的空格。在Python中,缩进很重要,他主要用来提示下一步的代码块的使用范围。
从上面的代码可以看出来,如果没有缩进,那么执行代码之后会有报错信息提示出来,
IndentationError: expected an indented block after 'if' statement on line 1
那锁进有限制个数吗?这是一个很好的问题,因为我们在Java中知道,这个没有限制,除了针对代码的可读性来说,好像也没有什么特殊的。那么这个在Python中呢?我们可以从代码上看下。
同样,在Python中,后续多少个没有关系,但是必须第一个要有。也就是说,空格的个数取决于你,但是至少得有一个。
「缩进规则」
关于在Python中的缩进规则,可以参考如下总结:
- Python 采用代码缩进和冒号( : )来区分代码块之间的层次。
- 在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
- Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。
- 对于 Python 缩进规则,初学者可以这样理解,Python 要求属于同一作用域中的各行代码,它们的缩进量必须一致,但具体缩进量为多少,并不做硬性规定。
1.2 变量
变量是存放数据值的容器。与其他编程语言不同,Python 没有声明变量的命令。首次为其赋值时,才会创建变量。
「Python 变量命名规则」
- 变量名必须以字母或下划线字符开头
- 变量名称不能以数字开头
- 变量名只能包含字母数字字符和下划线(A-z、0-9 和 _)
- 变量名称区分大小写(age、Age 和 AGE 是三个不同的变量)
当然,在Python中,也可以在一行中定义多个变量并赋值,例如:sum, index, result = 0, 0, 2但是sum, index, result = 0, 0, null 这种就不被允许,你知道为什么吗?
「关于Global关键字」
通常,在函数内部创建变量时,该变量是局部变量,只能在该函数内部使用。要在函数内部创建全局变量,您可以使用 global 关键字。另外,如果要在函数内部更改全局变量,请使用 global 关键字。
1.2 关于空行
空行主要是为了可读性高之外,还有其他的意义:
- 顶层函数和类定义,前后用两个空行隔开
- 编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行
- 类里面方法定义用一个空行隔开
- 在函数或方法内部,可以在必要的地方空一行以增强节奏感,但应避免连续空行
例如如下代码:
classPerson: nameclassStudent: deffunctionClasses(self) classesdeffunctionGrade(self) grade
注意⚠️:使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行。
「空格使用规则」
- 在二元运算符两边各空一格,比如赋值(=)、比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not),算术操作符两边的空格可灵活使用,但两侧务必要保持一致
- 不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除非在行尾)
- 函数的参数列表中,逗号之后要有空格
- 函数的参数列表中,默认值等号两边不要添加空格
- 左括号之后,右括号之前不要加添加空格
- 参数列表, 索引或切片的左括号前不应加空格
- 当'='用于指示关键字参数或默认参数值时,不要在其两侧使用空格
1.3 关于命名
「模块命名」
- 模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况)
「变量命名」
- 不要使用字母I (小写的L), O (大写的O), I (大写的I)作为单字符的变量名。在有些字体里面,这些字符无法与数字0和1区分。如果想用I, 可使用L代替。
- 变量名尽量小写, 如有多个单词,用下划线隔开。
「常量或全局变量命名」
这个同Java中一致。
- 全部大写,如有多个单词,用下划线隔开
- 全⼤写+下划线式驼峰
「函数(方法)命名」
- 函数名应该小写,如有多个单词,用下划线隔开。
- 大小写混合仅在为了兼容原来主要以大小写混合风格的情况下使用,保持向后兼容。
- 私有函数在函数前加一个下划线_。
- 始终要将self作为实例方法的第一个参数。
- 始终要将cls作为类方法的第一个参数。
- 如果函数的参数名和已有关键字冲突,在最后加大意下划线比缩写或者随意拼写更好。因此class_比clss更好。
「类命名」
- 类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头。
- 在接口被文档化并且主要被用于调用的情况下,可以使用函数的命名风格代替。
- 对于内置的变量命名有一个单独的约定:大部分内置变量是单个单词(或者两个单词连接在一起),首字母大写的命名法只用于异常名或者内部的常量。
「注意事项」
- 不要中英文混编
- 不要有a、b、c这种没有意义的命名
- 不要怕名字长就随便缩写,比如person_info 缩写成pi
- 不要用大小写区分变量类型,比如a是int类型,A是String类型
- 不要使用容易引起混淆的变量名
- bool变量⼀般加上前缀 is_ 如:is_success
- 变量名不要用系统关键字,如 dir type str等等
以下用下画线作前导或结尾的特殊形式是被公认的:
- _single_leading_underscore(以一个下画线作前导):例如,“from M import *”不会导入以下画线开头的对象。
- single_trailing_underscore_(以一个下画线结尾):用于避免与 Python 关键词的冲突,例如“Tkinter.Toplevel(master, class_='ClassName')”。
- __double_leading_underscore (双下画线):从 Python 1.4 起为类私有名。
- __double_leading_and_trailing_underscore__:特殊的(magic) 对象或属性,存在于
用户控制的(user-controlled)名字空间,例如:__init__、__import__ 或 __file__。
2 Python注释
Python中有三种形式的注释:行注释、块注释、文档注释
在Java中,我们也有行注释、块注释和文档注释,但是在Python中使用的符号不一样。
下面我们将这两种语言的注释比较一下,就可以看出来Python的注释。
Java注释 |
Python注释 |
Python注释用途 |
|
行注释 |
或 /* 内容 */ 或 /** 内容 */ 或 // |
# 内容 """内容""" |
一般用于单行、声明、变量,用于解释代码,提高可读性。在代码测试时,可以使用注释阻止代码的执行。 |
块注释 |
/* * 内容 */ 或 /* * * 内容 */ |
# # # 或 """ 内容 """ |
一般用于一段代码,用于解释代码,提高可读性。在代码测试时,可以使用注释阻止代码的执行。 |
文档注释 |
/* * * 内容 */ |
""" 内容 内容 """ |
一般用于代码块或者文档头部,用于解释代码,提高可读性 |