前言
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>]
|
参考文献