18.1. Python 脚本编程概述

学习大纲:

  • Python 脚本编程

  • 安装和使用Python 及各种工具

  • 变量、数值和字符串 (string)

  • Python 支持的数据结构,以及如何在脚本中使用它们

  • 判断语句,也就是 if 语句

  • 循环控制,也就是 for 和 while 循环

  • 函数 (function)

  • 模块

18.1.1. 1.1 前提要求

Python 基础知识,基本语法、变量、元祖、列表、字典、函数、字符串、方法等

18.1.2. 1.2 why Python

生态丰富、跨平台、现代编程语言

18.1.3. 1.3 Python 语法优势

贴近语言、易读

18.1.4. 1.4 安装 Python

1.4.1 Linux 系统通过系统包管理工具

1.4.2 Windows 系统通过官网下载安装

1.4.3 Mac 系统通过 brew 包管理器安装

1.4.4 安装 Jupter Notebook

        方法一,通过 anaconda

        方法二,通过 pip 安装

1.4.5 安装并使用虚拟环境

        通过 pip 安装 virtualenv

        创建虚拟环境 virtualenv pythonenv,激活虚拟环境 source venv/bin/activate,销毁虚拟环境 deactivate

1.4.6 安装 IDE

        安装 Geany 或 Pycharm

18.1.5. 1.5 Python 解释器

交互式控制台(REPL),Python 解释器或 Python shell,逐行执行,无需脚本,可以访问所有内置模块,可以用作调试

1.5.1 Python 和 bash 的区别

bash 执行 shell 命令,Python 执行 Python 语言

Python 适用于更大复杂的程序

Python 通过导入模块,调用函数,可完成大多数操作

1.5.2 启动交互式控制台

Linux 一般输入 python 或 python3 来进入 Python 交互式控制台

windows 命令行输入 python,如果没有进入,检查系统环境变量

1.5.3 适用 Python 交互式控制台编写脚本

1.5.4 多行模式

1.5.5 通过 Python 解释器导入模块

1.5.6 退出交互式控制台

快捷键 Ctrl + D

函数 quit()  exit()

1.5.7 缩进和标签

缩进来表示程序结构

1.5.8 变量

随用随定义,无需声明

多变量赋予相同值,x = y = z = 1

多变量赋予不同值,x, y, z = 0, 'John', 2.0

1.5.9 数值

int 整数, float 小数,

除法 / 返回浮点数,// 返回整数,% 返回余数

** 计算指数

整数和浮点数计算得到浮点数

在交互式控制台中,_ 代表上一次输出的表达式的值

数值类型不可变

数值类型转换,int(a) 转换整数,float(a) 转换浮点数,complex(a) 转换为实部为 a 虚部为 0 的复数,complex(a, b) 转换实部为 a 和虚部为 b 的复数

1.6 字符串

单引号或双引号包裹

字符串操作

 索引 []

 连接 + ,单引号包裹的字符串可以自动连接 'he' ' llo' 等价于 'hello'

 重复 *

 切片 [start:end]
1.6.5 转义字符
比如 \n, \t 
1.6.6 字符串特殊运算符
+ , *, [], [:], not in, in, %
1.6.7 字符串格式化
print("%s %d" % ("john", 2))
格式化符号
%c, %s, %d, %x 
1.6.8 三引号
多行字符串
1.6.9 字符串不可变
不能修改字符串

1.7 列表

可变有序, []

索引 [],从 0 开始,反向从 -1 开始

 切片 [:]

 连接 +

 重复 *

 包含 in

 删除列表元素,del list[index]

1.8 元祖

不可变,()

定义 a = (1,) 一个元素必须有逗号

a = tuple() 定义空元祖

可以由字符串、列表、元祖等序列类型转换为元祖, a = tuple("abcdef"),a = ("a", "b", "c", "d", "e", "f")

索引 []

切片 [:]

删除元祖 del tuple

连接 +

重复 *

包含 in

max, min 函数查找最大、最小值

1.9 集合

无序,不重复,支持交、并、差,{} 或 set() 定义,set() 定义空集合

集合推导式 a = {x for x in "abcdef" if x not in "abc"}

1.10 字典

无序,键值对,键必须唯一不可变,{} 或 dict() 定义,

字典推导式 a = {x: x**2 for x in (4, 6, 8)}

dict(John=25, Nick=27, Jack=28) 定义字典 {'Nick': 27, 'John': 25, 'Jack': 28}

1.11 解析命令行参数

1.11.1 Python 的命令行参数

        python file_name.py img.jpg,  file_name.py 和  img.jpg 是参数

        命令行参数解析模块,sys、argparse、fire、docopt 等

1.11.2 sys.argv

        len(sys.argv)获取参数数量,str(sys.argv) 输出所有参数

1.12 判断语句

if...elif...else

1.13 循环语句

for

        for i in sequence:

        pass

        for x in range():

        pass

while

1.14 迭代器

实现 __iter__ 和 __next__ 特殊方法的对象,通常用循环、生成器和生成式实现

numbers = [1, 2, 3]

number_iters = iter(numbers)

1.15 生成器

返回对象的函数

yield 替代 return 定义函数就是生成器函数

1.16 函数

1.16.1 return 语句

1.16.2 lambda 函数

        匿名函数

        用于函数的参数,fliter(lambda x: (x%2 == 0), numbers)

1.17 模块

一个 python 代码文件就是一个模块 file_name.py

 重用,组织

 导入模块,import,使用模块