前言
Python是一种广泛使用的解释型、高级和通用的编程语言。Python支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库。(维基百科)
安装 python
Windows
https://www.python.org
Linux
MacOS
系统预装2.x版本
使用brew安装
- 使用
pyenv安装并管理多个python版本
传送门
python 运行方式
通过交互式解释器
退出
以文件的方式运行
<file_name>:python文件名
创建 python 文件
提升执行权限
编辑 python 文件
添加 python 文件头
自动查找解释器
使用 python命令 执行 python文件
直接执行 python文件
支持 tab 补齐的交互解释器
导入模块方式
1 2 3
| >>> import readline >>> import rlcompleter >>> readline.parse_and_bind("tab:complete")
|
使用环境变量方式
创建一个脚本
编辑脚本
把代码写入文件
1 2 3 4 5
|
import readline import rlcompleter readline.parse_and_bind("tab:complete")
|
提升可执行权限
刷新环境变量
安装 pip
MacOS
- 使用
pyenv安装的python自带pip
- 使用
pyenv配置好python的默认版本,就可以直接使用pip命令
语句块缩进
- python代码块通过缩进对齐表达代码逻辑而不是使用大括号
- 缩进表达一个语句属于哪个代码块
- 缩进通常使用4个空格
基本 python 语句
输出语句
<value>:输出的值
1 2 3
| print(<value>) print(<value>, <value>) print(<value> + <value>)
|
输入语句
有提示的输入语句
<value>:提示语句
把输入的语句赋值给变量
<name>:变量名
1
| <name> = input("<value>")
|
查看数据类型
<value>:数据
类型转换
<str>:str类型数据
<int>:int类型数据
注释
单行注释
文档字符串
创建文档
<name>:文档名
编辑文档
<NAME>:用于注释文件名称
<DESCRIPTION>:用于注释文档描述
<FUCTIONS>:用于注释函数描述
1 2 3 4 5 6 7 8
| """<NAME>
<DESCRIPTION> """
def fuction(): "<FUCTIONS>" print("end")
|
查看文档帮助
1 2
| import <name> help(function)
|
变量定义
变量定义规则
- 第一个字符只能是
字母或下划线(不建议使用下划线)
- 后续字符只能是
字母、数字、下划线
- 区分大小写
命名习惯
- 有意义
- 简短
- 全部采用小写字母
- 多个单词之间用下划线隔开
- 变量一般使用名词,函数使用谓词(动词+名词)
- 类名首字母大写,使用驼峰原则
变量赋值及运算
变量赋值
变量运算
标准运算符
/:除号表示除法运算,整型与整型运算结果数据类型为整型,整型与浮型运算结果数据类型为浮点型
//:地板除表示整除运算。结果为保留小数的结果产生的两个相近似整数的较小的一个整数,结果数据类型根据被除数决定是整数型还是浮点型
%:求模运算,结果为两数相除的余数
**:幂运算,结果为两数的乘方
- python还支持
+=、-=、*=、/=
- 但python不支持
++和--操作,++和--放在变量前表示两次正负号运算操作,放在变量后会报错
比较运算符
!=和<>均为不等号,但常用!=表示不等号
连续比较
逻辑运算符
根据优先级排列分别是:not、and、or
结果为True或False(首字母大写)
数据类型
数字类型
int:整型
long:长整型
bool:布尔值,值为True和False,分别对应1和0
float:浮点型
complex:复数,通常只作数学运算使用
进制表示
- python默认以
10进制数显示
- 数字以
0开头表示8进制数
- 数字以
0x或0X开头表示16进制数
- 数字以
0b或0B开头表示2进制数
字符串
字符串切片
正序编号
- 字符串第一个字符下标为
0
- 表示为:
str[0]
- 结果为:
p
倒序编号
- 字符串最后一个字符下标为
-1
- 表示为:
str[-1]
- 结果为:
n
区间编号
闭区间
- 第一个字符到第二个字符下标区间为
[0,1]
- 表示为:
str[0:1]
- 结果为:
py
开区间
- 从头开始到第二个字符下标区间为
[0,1]
- 表示为:
str[:1]
- 结果为:
py
根据步长取值
- 从下标为
1的字符开始,步长为2
- 表示为:
str[1::2]
- 结果为:
yhn
字符串拼接
按倍数拼接
字符串长度
<string>:字符串
字符串查找
判断是否存在
<string>:原字符串
<value>:查找的关键字
判断是否不存在
列表
- 列表是存放多个数据的集合,数据类型可以为任意类型
- 列表用
[]定义,用,隔开多个数据
- 列表也可以使用下标切片
- 列表可以包含列表,子列表切片用
[][]取出数据
- 列表数据可以修改
追加数据
<list>:列表名
<value>:追加的数据
元组
字典
- 字典是由键值对(key-value)构成的映射数据类型,用
{}定义
- 字典不是顺序类型,不支持下标操作
查看字典长度
<dict>:字典
字典查找
<key>:键值对的键
通过键查找值
添加或修改键值对
- 如果
<key>:存在,则为修改键值对,如果<key>:不存在,则为修改键值对
数据类型的总结
数据类型的分类
按存储模型分类
标量类型
容器类型
按更新模型分类
可更新类型
不可更新类型
按访问模型分类
直接访问
顺序访问
映射访问
判断语句
语法
<expression>:布尔表达式或布尔值
<suite>:代码块
1 2 3 4
| if <expression>: <suite> else: <suite>
|
特殊布尔值
- 非零数字、非空对象值为
True
None、数字零、空对象(空字符串、空列表、空元组、空字典)值为False
多分支
语法
1 2 3 4 5 6
| if <expression>: <suite> elif <expression>: <suite> else: <suite>
|
- python没有
switch case这样的替代品
while 循环
语法结构
1 2
| while <expression> <suite>
|
break 语句
1 2 3
| while <expression> <suite> break
|
continue 语句
1 2 3
| while <expression>: <suite> continue
|
else 语句
- else子句只在循环完成后执行
- break语句也跳过else块
1 2 3 4
| while <expression>: <suite> else: <suite>
|
for 循环
语法结构
<var>:变量
<string>:任何可切片数据
- 重复
len(<string>)次循环,按从头到尾顺序,每次循环取出一个切片,赋值给变量<var>
1 2
| for <var> in <string> <suite>
|
- for循环也支持
break、continue、else语句
range 函数
range函数配合的语句,组成可以实现指定循环次数的for循环语句
<start>:表示开始值,默认值为0
<end>:表示结束值
<step>:表示步长值,默认值为1
- 从
开始值开始循环,每次增加步长值,增加到结束值结束跳出结束循环(不包含)
1 2
| for <var> in range(): <suite>
|
参数列表
一个参数:range(<end>)
两个参数:range(<start>, <end>)
三个参数:range(<start>, <end>, <step>)
xrange 函数
xrange()类似range(),不过当你有一个很大的范围列表时,xrange()可能更为适合,因为它不会在内存里创建列表的完整拷贝
- 它只被用在for循环中,在for循环外使用它没有意义
- 它的性能远高出
range(),因为它不生成整个列表
列表解析
语法结构
<value>:需要存放到列表的数据
<for_in>:不含语句块的for循环
<for_range>:range函数配合的不含语句块的for循环
1 2
| [<value> <for_in>] [<value> <for_range>]
|
完成