Python 语句和注释

Jinku Hu 2023年1月30日 2018年1月29日
  1. Python 语句
  2. Python 缩进
  3. Python 注释
Python 语句和注释

我们将在本节中介绍 Python 语句,缩进以及注释,在本节的最后一部分,还会介绍作为一种特殊类型的 Python 注释 Docstring

Python 语句

Python 语句是给解释器执行的指令,一条 Python 语句包含类似于如下的表达式,

result = x + y

你可以将 Python 语句堪称解释器解释表达式并将其结果存储在变量中的指令。类似于 for, while, print 之类的语句具有特殊的含义,我么将在在后面的章节中讨论。

Python 多行语句

当你在一句语句结束时按回车键后,该 Python 语句被终止,我们可称之为单行语句。Python 中的多行语句可以通过使用行连续字符\来创建,它将 Python 语句扩展为多行语句。

比如下面的例子,

x = 100 + 101 + 102 \
    + 103 + 104 \
    + 105

这可以被称作明确的多行接续。

你还可以使用括号 (),方括号 [] 或大括号 {} 来进行隐式的多行接续。

例如,你可以使用括号来连接多行语句,

x = (100 + 101 + 102 
    + 103 + 104 
    + 105)

Python 缩进

Python 语句块,例如函数,循环或类的主体,以缩进来开头。对于语句块内的每个语句,应该保持相同的缩进。当缩进不一致时,你将得到 IndentationError

一般来说,在Python 代码样式指南中建议使用 4 个缩进空格。举例如下,

x = {1, 2, 3, 4}
for i in x:
    print(i)

我们用缩进来增加程序的可读性,比如在下面的程序中,我们用两种方式来完成同一个功能,

x = {1, 2, 3, 4}
for i in x:
    print(i)

for i in x: print(i)

你可以在这里看到第一个例子比第二个例子有更好的可读性。

Python 注释

注释用于描述程序的目的或工作工程,注释是在 Python 解释过程中被忽略的行,它们不会干扰程序的流程。

如果你正在编写数百行代码,肯定需要添加注释,因为其他人在阅读你的代码的时候,没有足够的时间阅读每一行来理解代码的工作。程序的注释增加了可读性,并解释了代码的工作原理。

Python 注释以井号 # 开始

#Single Line comment
#Program to print a string
print("Hello Python Programmer")

Python 多行注释

Using hash symbol in each line can define a multi-line comment. But there is another way to add a multi-line comment in Python, that is using triple quotation marks. You can use either ''' or """.

"""Multi-line
comments in 
Python Programming language"""

三重引号'''通常可以用来定义多行文档注释 Docstring,你也可以用它来做为另外一种在 Python 中添加多行注释的方法。

Python 文档字符串 Docstring

Docstring 是文档字符串,它通常是 Python 函数,类,模块等的第一条语句。函数,方法和类的描述和注释位于文档字符串(文档字符串)内。

举例如下,

def sum(a, b):
    """This function adds two values"""
    return a+b

一目了然,Docstring 介绍了函数的功能。

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn