Python 的基本语法规范

在这个标准工业大行其道的今天,任何事物都有属于自己的标准或者规范。作为当下最流行的编程语言之一的 Python 当然也不例外,这节课我们就来学习下 Python 的基本语法规范:

1. 简介

本文介绍 Python 的最基本语法和功能,即:安装完 Python 后、开始学习 Python,首先需要了解的知识点。

2. 变量

2.1 什么是变量

变量是 Python 程序用来保存计算结果的存储单元,为了方便访问这块存储单元,Python 给这块存储单元命名,该名称即为变量名,在 Python 中通过变量名来访问保存计算结果的存储单元。

在下图中,在内存中有一块存储区域保存了计算结果 123,在 Python 程序中使用变量 X 表示这一块存储区域,如下所示:

图片描述

变量 X 用于保存计算结果

变量的值是可以变化的,在下图中,将变量 X 修改为 456,如下所示:

图片描述

修改变量 X

2.2 在 Python 中定义和修改变量

本小节通过实例讲解如何在 Python 中定义和修改变量,步骤如下:

  1. 在命令行窗口中输入 python,进入 Python 的交互模式。注意,在 Python 的交互模式下,>>> 是提示符。本小节面向初学者,因此会提及进入 Python 的交互模式,之后的章节将不再赘述。

图片描述

进入 Python 的交互模式
  1. 定义变量 X,并设定变量 X 的初值为 123
>>> X = 123
  1. 直接输入变量名 X,读取变量 X 的值,在交互模式下,会输出变量 X 的当前值。
>>> X
123
  1. 修改变量 X 为 456。
>>> X = 456
  1. 直接输入变量名 X,读取变量 X 的值,发现变量 X 已经修改为 456。
>>> X
456

2.3 变量的命名规则

Python 的变量名称具有如下规则:

2.3.1 变量名由字母、数字、下划线组成

合法的变量名称如下:

  • abc
  • ABC
  • abc123
  • abc_xyz
  • abc__xyz,该命名包含了2根下划线
  • __init__,该命名包含了2根下划线

不合法的变量名称如下:

  • a$bc,该命名包含了字符$
  • ab/c,该命名包含了字符/

2.3.2 数字不能作为变量名开头

合法的变量名称如下:

  • abc123

不合法的变量名称如下:

  • 123abc

2.3.4 不能以 Python 中的关键字命名

在 Python 中,具有特殊功能的标识符称为关键字。关键字是 Python 语言自己已经使用的了,不允许开发者自己定义和关键字相同名字的变量。下图列出了 Python 中所有的关键字。

图片描述

Python 中的关键字

在 Python 的交互模式中,输入’False = 123’,定义变量 False,初值为 123,输出结果如下:

>>> False = 123
  File "<stdin>", line 1
SyntaxError: can't assign to keyword

False 是 Python 的关键字,因此提示语法错误:“SyntaxError: can’t assign to keyword”。

3. 注释与空行

3.1 什么是注释

在编写 Python 程序时,写程序的人为程序段给出解释或提示,对代码的解释被称为注释。通过在程序代码中添加注释,可以提高程序代码的可读性。

Python 程序由多个程序段构成,可以使用空行将程序段分开,从而提高程序代码的可读性。

编写程序 comment.py,文件内容如下:

实例演示
预览 复制
复制成功!
# 首先定义变量 x
x = 123

# 将变量 x 修改为 456
x = 456
运行案例 点击 "运行案例" 可查看在线运行效果
  • 在第1行和第4行中,以 # 开头的文本为 Python 注释,说明了下一行代码的功能。
  • 在第3行,没有任何代码,是一个空行。
  • 执行该程序时,Python 会忽视注释和空行,不会执行注释和空行。

3.2 多行注释

以 # 开头的注释可以注释一行文本,Python 另外提供了注释多行文本的功能。多行注释用三个单引号 ‘’’ 或者三个双引号 “”" 将注释括起来,例如:

  1. 使用3个单引号注释多行文本
'''
# 首先定义变量 x
# 让后将变量 x 修改为 456
x = 123
x = 456
'''
  1. 使用3个双引号注释多行文本
"""
# 首先定义变量 x
# 让后将变量 x 修改为 456
x = 123
x = 456
"""

4. 缩进

4.1 什么是缩进

在 Python 中,行首的空白区域被称为缩进,例如:

if 2 > 1:
    print('2 > 1 is true')

在第 2 行的首部,有 4 个空格, 这个 4 个空格被称为缩进。

在 Python 中,可以使用 TAB 或者空格作为缩进,大部分代码规范建议使用 4 个空格作为缩进。在 Python 自带的集成开发环境 IDLE 中,用户输入 TAB 时,TAB 会被自动转换为 4 个空格。

4.2 为什么需要缩进

使用缩进后,可以直观的看到代码的逻辑层次,从而提高代码的可读性。

如果不使用缩进,完成一个程序如下:

if 2 > 1:
print('2 > 1 is true')
else:
print('2 > 1 is false')
print('Program is end')

如果使用缩进,完成相同功能的程序如下:

实例演示
预览 复制
复制成功!
if 2 > 1:
    print('2 > 1 is true')
else:
    print('2 > 1 is false')
print('Program is end')
运行案例 点击 "运行案例" 可查看在线运行效果

对比这两段程序,可以发现使用缩进后,提高了程序的可读性。在使用缩进的程序中,可以直观的看到代码之间的层次关系,具体如下:

  • 第 1 行的 if 语句和第 2 行的 print 语句处于不同的层次
  • 第 1 行的 if 语句和第 5 行的 print 语句处于相同的层次

4.3 必须使用缩进

Python 语言要求在需要表达代码层次关系的场景中,必须使用缩进。如果不使用缩进,程序运行时则会报告错误。例如,编写程序 no-indent.py 如下:

if 2 > 1:
print('2 > 1 is true')

运行 no-indent.py,输出结果如下:

C:\> python no-indent.py
  File "no-indent.py", line 2
    print('2 > 1 is true')
        ^
IndentationError: expected an indented block

输出表明在程序的第 2 行缺乏缩进(expected an indented block)。

5. 输入与输出

5.1 输入

Python 提供了 input 语句用于读取键盘输入,input 语句读取用户输入的一行文本。

>>> line = input()
hello world
>>> line
'hello world'
  • 在第 1 行,使用 input 语句读取用户输入的一行文本,将该文本保存到变量 line 中。
  • 在第 2 行,用户输入一行文本 ‘hello world’。
  • 在第 3 行,查看变量 line。
  • 在第 4 行,显示结果为文本 ‘hello world’

可以在 input 语句中加入参数,该参数作为用户输入的提示符,例如:

>>> number = input('Please input a number: ')
Please input a number: 123
>>> number
'123'
  • 在第 1 行,使用 input 语句读取用户输入的一行文本,将该文本保存到变量 number 中。input 语句带有一个参数 'Please input a number: '。
  • 在第 2 行,input 语句首先输出 input 语句的参数 'Please input a number: ',这样用户就根据该提示输入数字,然后 input 语句再读取用户输入的一行文本 123。

5.2 输出

在 python 中使用 print 语句向屏幕上输出。举例如下:

  1. 使用 print 语句输出一段文本
>>> print('hello world')
hello world
  1. 使用 print 语句输出整数
>>> print(123)
123
  1. 使用 print 语句输出表达式的结果
>>> print(1+1)
2
  1. 使用 print 语句输出变量的值
>>> var = 123
>>> print(var)
123
  1. 使用 print 语句输出多项内容:
    • 在输入中,每项内容使用逗号分开
    • 在输出中,每项内容使用空格分开
>>> print(123, "hello", 1+1)
123 hello 2

6. 编码与中文乱码

6.1 常见错误

在 Windows 操作系统中,使用 Python 输出中文时,可能会出现乱码的的情况,例如,使用 Windows 自带的记事本编写程序 chinese.py,内容如下:

实例演示
预览 复制
复制成功!
print('中国')
print('美国')
运行案例 点击 "运行案例" 可查看在线运行效果

运行该程序,输出结果如下:

C:\>python chinese.py
  File "chinese.py", line 1
SyntaxError: Non-UTF-8 code starting with '\xd6' in file chinese.py on line 1, b
ut no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

6.2 解决乱码的方法

以上中文乱码的错误与中文编码有关,对初学者来说,编码是一个较难解释清楚的概念,需要有相当长的篇幅才能解释清楚,本文仅介绍如何解决这类问题。

如果 Python 程序需要输出中文,运行程序时出现错误提示 ‘SyntaxError: Non-UTF-8 cod starting’,解决这类错误的最简单方法是:

  • 不要使用 Windows 自带的记事本程序编写包含中文的 Python 程序
  • 请使用如下工具编写包含中文的 Python 程序
    • Python 自带的集成开发环境 IDLE
    • PyCharm
    • Sublime text

用以上推荐的工具重新编写程序 chinese.py,则可以正常输出结果:

中国
美国

7. 小结

这节课我们学习了 Python 的基本语法规范,这非常的重要。在实际的开发工作中,我们的代码都要严格遵守这些规范,因为你写的代码不单单只有你一个人阅读和使用,如果不遵守规范,会给我们的协同工作带来巨大的不便。