Python基础语法
Python基础语法
■(一): 输出print()
输出
print()【用于输出到日志】
1 | # print() 函数用来输出信息 |
输出到文件
open() 【打开文件】
close() 【关闭文件】
1 | # 将print() 数据输出到文件中 |
不换行
1 | # 不进行换行输出 |
转义字符
\n \t \r \b \\ \“ r
1 | # 转义字符 |
进制转换
chr()【x进制转unicode字符】
ord()【unicode字符转十进制】
int(n,x)【x进制转十进制】
bin()【十进制转二进制】
oct()【十进制转八进制】
hex()【十进制转十六进制】
1 | # 二进制 |
标识符和保留字
1 | # 标识符和保留字 |
基础变量
int float bool str
id()【获取对象内存地址】
type()【获取对象类型】
1 | # 变量 int float bool str |
强转
int()【强转为int】
float()【强转为float】
bool()【强转为bool】
str() 【强转为string】
1 | # 强转 str() int() float() bool() |
注释
‘’’ ‘’’
1 | # 注释 |
■(二): 运算
输入
input()【允许接收日志实时的输入】
1 | # 输入函数 input() |
算数运算符
+ - * / % **
1 | # 算术运算符 + - * / //(整除) % **(次幂) |
赋值运算符
= += -= *= /= %=
1 | # 赋值运算符 = += -= *= /= %= |
比较运算符
< >= <= == != is is not
1 | # 比较运算符 > < >= <= == != is is not |
逻辑运算符
and or not in not in
1 | # 逻辑运算符 and or not in not in |
位运算符
& | << >>
1 | # 位运算符(将数据转为二进制再进行计算) |
运算符优先级
1 | # 运算符优先级 |
■(三): 程序结构
顺序结构
1 | print('第一步') |
分支结构
if-elif-else分支
if elif else
1 | # 分支结构 |
三目运算符
1 | # 三目运算符简化版 if else外的两个为变量,if else内为条件,满足条件输出前变量,不满足输出后变量 |
语法占位符
pass
1 | # pass 语法占位符 当if等条件判断里为空执行时,不得留空,需要加pass |
循环结构
while循环
while
1 | # while 循环 |
for循环
for in enumerate
1 | # for 循环 |
break和continue
break
break
1 | # break 跳出 |
continue
continue
1 | # continue 跳级 |
嵌套循环
1 | # 嵌套循环 |
■(四): 序列range()
构造
range()【构造一个序列】
1 | # range() 序列 |
从属判断
1 | # in 和 not in 用来判断某个数是否在序列中 |
长度
len()【求长度】
1 | # len() |
■(五): 列表list()
构造
[]
list()【构造一个列表】
1 | # 列表 |
索引与查找
[]
index()【索引】
1 | # 列表索引 |
切片
[::]
1 | # 列表切片 [开始:结束:步长] |
从属判断
in not in
1 | # 列表查询 in not in |
长度
len()【求长度】
1 | # len() |
遍历
1 | # 列表遍历 |
增删改
增加
append()【在末尾添加一个元素】
extend()【在末尾添加另外一个列表】
insert()【在任意位置插入一个元素】
[::]
1 | # 增加 append() extend() insert() 切片 |
减少
remove()【删除某一个元素】
pop()【按序数删除一个元素】
[::]
clear()【清除列表内所有】
del【删除列表】
1 | # 减少 remove() pop() 切片 clear() del |
修改
[::]
1 | # 修改 切片 |
排序
reverse()【倒序排列】
sort()【升序排列】
sorted()【新建对象式的升序排列】
1 | # 列表排序 sort() |
简写
1 | # 列表简写 [使用例术式 for-in遍历] |
■(六): 字典dict()
构造
{:}
dict()【构造一个字典】
1 | # 字典 键值对 hash(键) = 值 |
索引与查找
[]
get()【字典索引】
1 | # 字典索引 |
从属判断
in not in
1 | # 字典查询 in not in |
长度
len()【求长度】
1 | # len() |
增删
[]
del【字典删除】
clear()【字典清空】
1 | # 字典增删 del clear() |
获取
keys()【获取键】
values()【获取值】
items()【获取键与值构成的元组】
1 | # 字典获取 keys() values() items() |
遍历
1 | # 字典遍历 |
简写
1 | # 字典简写 zip() |
■(七): 元组tuple()
构造
tuple()【构造一个元组】
1 | # 相当于一个常量的列表 |
长度
len()【求长度】
1 | # len() |
遍历
1 | # 元组遍历 |
■(八): 集合set()
构造
{}
set()【构造一个集合】
1 | # 集合 无值字典 无序 |
从属判断
in not in
1 | # in not in |
长度
len()【求长度】
1 | # len() |
增删
add()【集合增加单个元素】
update()【集合增加多个元素】
remove()【删除指定元素,越界报错】
discard()【删除指定元素,越界不报错】
pop()【删除随机元素】
clear()【删除集合所有内容】
1 | # 增加 add() update() |
集合关系
issubset()【判断是否被包含】
issuperset()【判断是否包含】
isdisjoint()【判断是否不包含】
1 | # 集合的无序性 |
交并补
intersection()【求交集】
union()【求并集】
difference()【求差集】
symmetric_difference()【求并集 - 交集】
1 | # 集合数学操作 |
简写
1 | # 集合简写 |
■(九): 字符串处理
字符串的驻留机制
1 | # 字符串的驻留机制 |
字符串查询
index()【查找子串第一次出现的位置,越界报错】
rindex()【查找子串最后一次出现的位置,越界报错】
find()【查找子串第一次出现的位置,越界输-1】
rfind()【查找子串最后一次出现的位置,越界输-1】
endswith()【判断字符串是否以指定字符结尾】
1 | # 字符串查询 index() rindex() find() rfind() endswith() |
大小写
upper()【全转大写】
lower()【全转小写】
swapcase()【全部反转】
captilize()【第一个首字母大写,其余小写】
title()【所有单词第一个首字母大写,其余小写】
1 | # 大小写更改 upper() lower() swapcase() captilize() title() |
对齐
center()【居中对齐】
ljust()【左对齐】
rjust()【右对齐】
zfill()【以0对齐】
1 | # 对齐 center() ljust() rjust() zfill() |
拆分
split()【通过拆分符拆分】
rsplit()【通过拆分符从右侧开始拆分】
1 | # 拆分 split() rsplit() |
替换与合并
replace()【替换字符串】
join()【用字符串合并列表】
1 | # 替换和合并 replace() join() |
形态判断
isidentifier()【是否使用合法标识符】
isspace()【是否全是空格】
isalpha()【是否全是字母】
isdecimal()【是否全是十进制数字】
isnumeric()【是否全是数字】
isalnum()【是否全是字母或数字】
1 | # 判断 isidentifier() isspace() isalpha() isdecimal() isnumeric() isalnum() |
切片
[::]
1 | # 切片 |
格式化
%s %i %f % {}
format()【格式化】
1 | # 格式化 |
编解码
encode()【编码】
decode()【解码】
1 | # 编码 |
■(十): 函数
构造
def return
1 | # 函数 |
形参改变实参值值不变
1 | # 形参改变实参值值不变 |
返回值
1 | # 返回值 |
函数的参数定义
位置参数:传参时依次列入
关键字参数:传参时按关键字列入
函数定义形参类型
1 | # 函数定义形参类型 |
函数调用实参类型
1 | # 函数调用实参类型 |
变量的作用域
1 | # 变量的作用域 |
递归
1 | # 递归函数 |
■(十一): 错误与异常
错误与异常处理机制
try【可疑代码】
except【异常情况】
else【无异常情况】
finally【无论有没有异常都会执行】
1 | # 错误与异常处理机制 |
Traceback模块
1 | # Traceback 模块 可以输出内建错误 用于记录程序日志 |
■(十二): 类
类的创建
class
1 | # 类 |
类的定义
类属性
1 | # 类属性 |
构造方法
1 | # 构造方法 |
实例方法
1 | # 实例方法 |
静态方法
1 | # 静态方法 |
类方法
1 | # 类方法 |
对象
对象创建
1 | # 对象创建 |
使用对象实例方法
1 | # 使用对象方法 |
使用类方法
1 | # 调用类方法 |
类属性的对象化
1 | # 类属性调用 |
动态绑定属性和方法
1 | # 动态绑定属性和方法 |
面向对象的三大特征
封装
1 | # 封装:提高程序的安全性,将属性和方法包装到类对象中,在方法内部操作属性,在对象外部调用方法 |
继承
继承
1 | # 继承:如果一个类没有继承任何类,则默认继承object |
多继承
1 | # 多继承 |
方法重载
1 | # 方法重写 |
object类
1 | # object类是所有类的祖先类 |
多态
1 | # 多态:一个方法可以在多个类中调用 |
特殊属性和方法
1 | print(dir(object)) |
特殊属性
1 | class Cl_a: |
特殊方法
1 | # 传参过程:创建空对象时调用类 -> 类通过__new__方法构造self -> 类通过__init__方法构造对象 -> 对象传给刚创建的空对象 |
类的浅拷贝和深拷贝
1 | # 变量拷贝引用 |
浅拷贝
copy().copy()【浅拷贝】
1 | # 浅拷贝:对象的子对象内容不拷贝 |
深拷贝
copy().deepcopy()【浅拷贝】
1 | # 深拷贝:全部拷贝 |
■(十三): 模块
构造
1 | # 模块Modules |
引用
import【引用模块】
1 | # 四种import引用模块 |
使用内建模块
1 | # 引用library内建方法 |
直接与间接调用模块
1 | # 直接调用模块 |
获取模块内所有方法检索
1 | print(dir(math)) # 通过dir来获取模块内的所有方法 |
以主程序形式执行
1 | # 以下代码写在demo_15b.py中: |
1 | # 以下代码写在demo_15.py中: |
第三方模块
下载pip工具
1 | https://pypi.org/project/pip/#files |
环境变量设置
1 | 我的电脑->属性->高级系统设置->环境变量->用户变量Path编辑->添加新变量 |
安装pip工具
1 | pip的下载文件夹解压->搜索栏cmd-> |
环境变量设置
1 | 我的电脑->属性->高级系统设置->环境变量->用户变量Path编辑->添加新变量 |
使用pip来在线下载卸载第三方模块(慢的一批)(还他妈容易闪退)
1 | win+r->cmd-> |
使用pip+镜像来在线下载第三方模块(快的一批)
1 | win+r->cmd-> |
实在pip无能为力的模块可以直接下whl文件
1 | 常用模块wheel安装包下载地址(必须使用谷歌浏览器) |
常用第三方模块
视觉
1 | #图像pillow |
声音
1 | #声音PocketSphinx |
应用
1 | #桌面应用PyQt |
数据
1 | #科学计算NumPy |
网络
1 | #网络访问requests |
机器学习
1 | #机器学习Tensorflow |
工具
1 | #导出可执行文件PyInstaller |
出现输入pip指令没有反映的情况
1 | 我的电脑->属性->高级系统设置->环境变量->用户变量Path编辑->删除Windows商店变量 |
pip版本升级
1 | #升级pip |
■(十四): 编码格式
编码格式
1 | # 编码格式 |
■(十五): 文件读写io
引用
1 | # 文件读写IO(input&output) |
读写流程
open()【开启文件】
1 | # 读写文件流程: |
文件打开模式
1 | # 文件打开模式 |
文件对象常用方法
读
read()【读全部】
readline()【读一行】
readlines()【读多行,将每一行作为一个列表元素】
1 | # 读 read() readline() readlines() |
写
write()【写入】
writelines()【写入多个或列表】
1 | # 写 write() writelines() |
指针
seek()【跳过字节】
tell()【指针当前位置】
1 | # 指针 seek() tell() |
缓冲
flush()【保存】
close()【保存关闭】
1 | # 缓冲 flush() close() |
with语句
构造
1 | # with语句 |
使用
1 | # 使用with处理的对象必须得有__enter__()和__exit__()方法 |
活用
1 | # 使用with进行复制并转格式 |
■(十六): 操作系统os
引用
1 | # os 操作系统 |
系统
system()【系统操作】
startfile()【直接调用资源文件】
1 | # win + r 运行操作 |
目录
getcwd()【获取代码当前路径】
listdir()【获取路径下的文件列表】
mkdir()【创建目录文件夹】
makedirs()【创建多级目录文件夹】
rmdir()【删除目录文件夹】
removedirs()【删除多级目录文件夹】
chdir()【设置当前代码路径】
1 | # os模块相关函数 |
路径
引用
1 | # os.path |
路径
abspath()【获取绝对路径】
exists()【判断文件目录是否存在】
join()【用/将字符串地址拼接起来】
split()【用列表将字符串地址拆包】
splitext()【分离文件名与扩展名】
basename()【在地址中提取文件名】
dirname()【在地址中提取路径】
isdir()【判断是否是纯路径而不是文件地址】
1 | # abspath() exists() join() splitext() basename() dirname() isdir() |
提取所有文件
walk()【提取所有文件】
1 | # walk() |
■(十七):导出exe可执行文件
使用pyinstaller导出
1 | pyinstaller -F -i 图标地址 -n 导出名 --noconsole py文件.py |
■(十八)代码文档 JupyterNotebook
- 下载python后自带jupyter,但是还是得用pip安装一遍
- 文档文件类型为.ipynb文件,vscode可兼容,通常使用网页
- 在指定目录下cmd->jupyter notebook可以打开指定目录下的文档
1 | 选择模式 【网页:点选输入框外,行显示蓝色】 |