2.3 Python 语法

Cooking time: 30 mins active / 45 mins passive

Learning by Doing:

  • 建议切换到英文输入法编程,可以避免一些用错符号的错误。

  • Tasks for Learners: 请学员创建第二个 Python 文件 python_syntax_practice.py, 对下列 Python 语法进行练习。

  • Tasks for Coaches: 请教练对学员的练习提供一定的辅助,请控制好时间。

魔法注释

惯例:把这一行写在 Python 文件的头一行,表达这个文件的非 ASCII 字符的编码为 UTF-8,不然遇到中文会出现编码错误。

# encoding: utf-8

注释

注释是写给阅读代码的人看的,计算机会忽略注释。一行中以 # 开始直到行末的部分都属于注释。

# 可以在代码中穿插写一些笔记,不影响程序的执行。

基本数据类型

整数,类型为 int

1234
-1234

小数(浮点数),类型为 float,例如

字符串,类型为 str

字符串中,空格也是字符:

有一些字符也是没有对应的字形(Glyph),但是可以用 转义字符 表达:

以上的字符串写法有个限制:只能写在一行内。Python 支持三个引号的多行字符串语法,方便书写多行的内容:

特殊量 -- 代表什么都没有

查看数据的类型

运算

在 IPython 中输入下面的表达式试试:

% 返回除法的余数:

除以 0 会得到 NaN(Not a Number)

字符串也可以进行连接运算(使用 + 运算符)

注意:全角符号和半角符号的区别。

变量

用一个名称代表一个值(= 叫做赋值运算符)

这个符号代表的值可以重新赋值,所以这个量称为变量 -- variable。

运算的结果可以赋予变量,变量也可以参加运算,例如下面计算平均值的代码:

条件

在 Python 中表达逻辑:“如果” 满足某种条件 “那么” 你就给我做这件事情。

布尔类型(注意大小写)

条件语法

注意:

  • 「如果」部分以关键字 if 开始,接着是条件表达式,后面必须再加上冒号 :

  • 「那么」部分的缩进要比 if 行深,推荐用 4 个空格缩进(参考 PEP8

上面两个条件内容互斥,我们可以用双路条件 if……else

布尔类型上可以用布尔运算:

  • 而且 and

  • 或者 or

  • 否定 not

练习:思考下面几个表达式的值并在 IPython 验证:

比较运算符可以判断两个值是否相等或者孰大孰小:

  • == 等于(两个等号,注意和赋值运算的不同)

  • > 大于

  • < 小于

  • != 不等于

  • >= 大于或者等于

  • <= 小于或者等于

练习:思考下面几个表达式的值并在 IPython 验证:

综合运用条件语句和比较运算符:「如果天气晴朗并且低于 30 度就出去玩」

循环

计算机是处理数据的机器。循环(迴圈)告诉机器重复做相同的工作。

while 循环打印 0 到 100

同样注意别忘了 : 和缩进

循环一般由循环条件和循环体组成。

练习:使用 Spyder 观察程序的执行:

  1. 在 temp.py 中输入代码

  2. 点击 Debug file 工具

  3. 多次点击 Run current line 工具,观察 Variable explorer 的变化

  4. 最后点击 Stop debugging 结束 debug

死循环 的意思是:不会结束的循环。

要结束程序,可以按 Ctrl + C 退出。(一个手指按住 Ctrl 键,然后另一个手指按 C 键,退出时解释器会报告一段错误,意思是收到了中断信号)。

循环控制:

  • continue 进入下一个轮回

  • break 结束循环

例:下面的代码打印 1 到 10,通过判断 i 是否增加到 10 决定结束循环:

例:下面的代码打印 1 到 10 之间的偶数,当 i 是奇数时通过 continue 跳过循环体中的其余代码。

函数

我们学习了用一个词代表值(变量),在 Python 中我们也能用一个词代表一段代码。

定义函数用 def 关键字,接上函数名称,参数列表和冒号。试理解下面的代码:

在缩进的代码块中编写函数体,使用 return 返回需要的内容。

之前我们学习的 print, len 都是函数,而且是是 Python 自带的函数 (built-in functions)。

调用函数:

由于函数返回的是一个值,这个值也可以赋予给变量:

函数返回的值也可以传递给下一个函数:

小提示:Python 的运算符 +-*/ 等等其实都是函数。

输入和输出简介

IO 是输入/输出(input / output)的缩写。

IO 是程序能从真实世界获取信息 (输入),对真实世界产生影响(输出)的基础。

典型的输入包括:用户键盘输入,鼠标点击,读取文件,读取网络数据,获取传感器的读数,……

典型的输出包括:在屏幕显示文字,在屏幕绘制图像,输出到打印机,发出声音,发送数据到网络端口,……

读写文件

读写文件是 Python 里最基本的 IO 操作之一。

open 函数打开一个文件,"r" 模式是读取,"w" 模式是写入。

以读取模式打开一个文件 "foo.csv",并返回对应的文件对象:

关闭一个文件对象:

下面的代码打开文件,读取文件的内容,然后关闭文件。

但是,在对文件操作的时候有可能发生异常!例如文件编码不正确,或者出现了没考虑到的某种状况,就会出错。

没处理各种异常情况的一段程序,不能成为一个产品

Python 提供了 with .. as 语法, 不用处理异常和写 close,就能保证处理文件后能自动关闭它。

读取一个文件

写入一个文件

Last updated

Was this helpful?