Python一个月的基础语法 基本就到这咯 接下来是数据库了
东西太多了 简单的整理一下
大多数是关键字 部分单词 没有分类整理 按照顺序整理的
statements 语句
print 输出
quit() 退出
exit() 退出
ctrl + d (输入文件结束符)结束输入并退出
int 整型数
float 浮点型数
complex 复数
bool 布尔
True 真
False 假
str 字符串
list 列表
None 空值
expression 表达式
del 删除
help() 帮助
is 是
not is 不是
id( ) 查询内存地址
-5~256 小整数池
refrence count 引用计数
abs 取绝对值
round vc 四舍五入
pow 幂运算
input 输入
sep 两值之间分隔符
end 结束(内容)
if 如果
elif 否则如果
else 否则
pass 过
not 布尔 非
and 布尔 与
or 布尔 或
man ascii 终端查询命令
ascii 编码表
Unicode 统一编码表
Unicode16 16位
Unicode32 32位
len(x) 返回个数
raw 原始字符串(r"hello")
in 是否出现过
not in 没有出现
index 索引([ ])
slice 切片([ : : ])
bin( ) 整数转二进制
oct( ) 整数转八进制
hex( ) 整数转十六进制
max( ) 求最大值
min( ) 最小值
ord( ) 字符对应(转)数字
chr( ) 数字对应(转)字符
while 循环
for 循环(遍历)
break 跳出循环
list 列表
tuple 元组
dict 字典
range 整数序列生成器
step 步长
continue 跳过循环
iterable 可迭代对象
sum( ) 求和
any( ) 一个为真则为真
all( ) 所有真为真
s.split(sep) sep:分隔符(分隔字符串返回列表)
'#'.join( ) [1, 2, 3] 返回 “1#2#3”
copy(shallow copy) 潜拷贝
deepcopy 深拷贝
reversed 顺序翻转
sorted() 排序序列
key 键
value 值
set 集合
frozenset 固定集合
byte 字节(0~255)
bytes() 字节串
bytearray() 字节数组
def(function) 函数
return 返回
args 参数
args=None 缺省参数
*args 元组传参
**kwargs 字典传参
local variable 局部变量
global variable 全局变量
globals( ) 返回全局变量字典
locals( ) 返回局部变量字典
Local(function) L 局部(作用域)
Enclosing function locals E 外部嵌套
Global(module) G 全局(模块)
Builtin(Python) B 内建
global 声明全局变量
nonlocal 声明外部嵌套
lambda 匿名函数(表达式)
eval( ) 字符串当表达式执行
exec( ) 字符串当程序执行
High Order Function 高阶函数
map() (函数, iterable)
filter() (函数, iterable)
sorted() (iterable, key=函数, reverse=False)
recursion 递归
closure 闭包
Module 模块
builtins 内建模块
import Module 导入模块
from Module import * 导入模块内属性
dir() 返回所有属性列表
math 数学模块(内建)
time 时间模块 (内建)
random 随机模块
sys 系统 模块(内建)
@ Function 装饰器函数
pip3 installtensorflow 模块安装
sys.path 路径列表
__doc__ 文档字符串
__file__ 路径名
__name__ 模块自身名
__all__ 可导出属的列表
package 包
_name 隐藏属性name
__init__.py 声明包文件
try-except 接受处理异常
try-finally 执行必要语句
try 异常
as 改名
except 截取异常类型
else 正常结束
finally 强制执行
raise 发送错误
assert 限制条件发送错
Iterator 迭代器
iter() 可迭代对象生成迭代器
next() 迭代器内顺序取值
Generator 生成器
yield 函数内表达式(生成器函数)
(x for x in range() if ) 生成器表达式
zip( ) 两个或以上可迭代生成元组
enumerate( ) 生成带索引对象 可定义开始下标
File 文件
open() 打开文件
File.close( ) 关闭文件
gb2312 6763汉字
gbk 国标21003汉字
gb18030 27533汉字
UTF-8 Unicode
ASCII 256字符
Ojbect-Oriented Programing 面向对象
封装
多态
继承
多继承
class 类
method 实例
attribute 实例属性(变量)
__init__() 初始化方法
__del__() 析构方法
__dict__ 自身变量的字典
__class__ 实例的类
type(obj) 返回类型
isinstance() 判断是否为某个类
self 类方法必有的参数(自己)
object 对象(类)
instance 实例
@classmethod 装饰为类的方法
@staticmethod 静态方法(类内普通函数)
inheritance 继承(单继承)
multiple inheritance 多继承
derived 派生
base class 基类
super class 超类
father class 父类
derived class 派生类
child class 子类
override 覆盖
super() 调用父类覆盖方法
enclosure 封装
__name 私有属性name
polymorphic 多态(静态/动态)
__mro__ 类的方法查找顺序列表
repr(obj) 返回表达式字符串
str(obj) 返回字符串
内建函数重写
__repr__ 对象装字符串(表达式字符串)
__str__ 函数重写(字符串)
__abs__ 绝对值
__len__ 序列长度 必须返回整数
__reversed__ 排序 必须返回可迭代对象
__round__ 四舍五入 函数
数值转换函数重写
__complex__ 复数 函数
__int__ 整数 函数
__float__ 浮点数 函数
__bool__ 布尔 函数(特殊)
__next__ 迭代器
getattr(obj, "name"[default]) 返回name 属性 (name为字符串)
hasattr(obj, "name") 判断有没有name属性
setattr(obj, "name", value) name赋值为value
delattr(obj, "name") 删除name属性
with 异常发时自动管理 环境管理器
__enter__ with开始自动调用
__exit__ with调用 判断是否异常
__exit__(self, exc_type, exc_val, exc_tb)
exc_type 错误类型
exc_val 错误值
exc_tb 追踪
运算符重载
方法名 运算符和表达式 说明
__add__(self, rhs) self + rhs 加法
__sub__(self, rhs) self - rhs 减法
__mul__(self, rhs) self * rhs 乘法
__truediv__(self, rhs) self / rhs 除法
__floordiv__(self, rhs) self // rhs 地板除
__mod__(self, rhs) self % rhs 取模(求余)
__pow__(self, rhs) self ** rhs 幂
rhs(right hand side) 右手边
反向算术运算符重载
方法名 运算符和表达式 说明
__radd__(self, lhs) lhs + self 加法
__rsub__(self, lhs) lhs - self 减法
__rmul__(self, lhs) lhs * self 乘法
__rtruediv__(self, lhs) lhs / self 除法
__rfloordiv__(self, lhs) lhs // self 地板除
__rmod__(self, lhs) lhs % self 取模(求余)
__rpow__(self, lhs) lhs ** self 幂
lhs(left hand side) 右手边
复合赋值算术运算符重载
方法名 运算符和表达式 说明
__iadd__(self, lhs) lhs += self 加法
__isub__(self, lhs) lhs -= self 减法
__imul__(self, lhs) lhs *= self 乘法
__itruediv__(self, lhs) lhs /= self 除法
__ifloordiv__(self, lhs) lhs //= self 地板除
__imod__(self, lhs) lhs %= self 取模(求余)
__ipow__(self, lhs) lhs **= self 幂
优先调用x.__iadd__(y)没有时 (id 不变)
调用x = x.__add__(y)再不没有
TypeError异常
复合赋值算术运算符重载
方法名 运算符和表达式 说明
__lt__(self, rhs) self < rhs 小于
__le__(self, rhs) self <= rhs 小于等于
__gt__(self, rhs) self > rhs 大于
__ge__(self, rhs) self >= rhs 大于等于
__eq__(self, rhs) self == rhs 等于
__ne__(self, rhs) self != rhs 不等于
位运算符重载
方法名 运算符和表达式 说明
__invert__(self) ~ self 取反(一元运算符)
__and__(self, rhs) self & rhs 位与
__or__(self, rhs) self | rhs 位或
__xor__(self, rhs) self ^ rhs 位异或
__lshift__(self, rhs) self << rhs 左移
__rshift__(self, rhs) self >> rhs 右移
反向位运算符重载
方法名 运算符和表达式 说明
__rand__(self, lhs) lhs & self 位与
__ror__(self, lhs) lhs | self 位或
__rxor__(self, lhs) lhs ^ self 位异或
__rlshift__(self, lhs) lhs << self 左移
__rrshift__(self, lhs) lhs >> self 右移
复合赋值位运算符重载
方法名 运算符和表达式 说明
__iand__(self, rhs) self &= rhs 位与
__ior__(self, rhs) self |= rhs 位或
__ixor__(self, rhs) self ^= rhs 位异或
__ilshift__(self, rhs) self <<= rhs 左移
__irshift__(self, rhs) self >>= rhs 右移
一元运算符重载
方法名 运算符和表达式 说明
__invert__(self) ~ self 取反(一元运算符)
__pos__(self) + self 正号
__neg__(self) - self 负号
in / not in 运算符重载
__contains__
索引和切片运算符的重载
方法名 运算符和表达式 说明
__getitem__(self, i) x = self[i] 索引/切片取值
__setitem__(self, i, val) self[i] = val 索引/切片赋值
__delitem__(self, i) del self[i] 删除索引/切片
slice(start=None, stop=None, step=None)等同于[ : :] 切片
字符串 (str) 是不可变序列 “”
列表 [list] 是可变的序列 [ ] (索引、切片、索引切片赋值)
元组 (tuple) 是不可变的序列 ( ) (索引、切片 不可变 不能赋值)
字典 {dict} 是可变无序的容器 { } (键索引,键赋值 没有创建 有则修改)
集合 {set} 是可变的容器 { } (元素无法重复、索引切片)
固定集合 {frozenset} 不可变 无序 唯一元素的集合 { } (索引切片)
字节串 “bytes” 是不可变的字节序列 “ ” (索引切片)
字节数组 (bytearray) 是 可变的字节序列 () (索引 切片 赋值)
推导式:
L= [表达式 for 变量 in 可迭代对象 if 真值表达式]
D = {键表达式 : 值表达式 for 变量 in 可迭代对象 if 真值表达式}
S = {表达式 for 变量 in 可迭代对象 [if 真值表达式]}
匿名函数表达式:
lambda x, y: x + y
生成器表达式
(表达式 for 变量 in 可迭代对象 [if 真值表达式 ])
运算符:
+ 加
- 减
* 乘
/ 除
** 幂
// 地板除
% 取余
is 是
is not 不是
ni 在
not in 不在
= 赋值
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于
& 交集(集合)
| 并集
- 补集
^ 对称补集
> 超集
< 子集
== 等
!= 不等
转义符:
\' 单引号(')
\" 双引号(")
\\ 一个反斜杠
\n 换行
\r 返回光标至行首
\t 水平制表符
\v 垂直制表符
\f 换页
\b 倒退
\0 空字符,字符值为零
\xXX XX为两位十六进制表示的字符
\uXXXX XXXX为四个十六进制表示的Unicode16字符
\UXXXXXXXX 8个十六进制表示的Unicode32字符
格式化字符串中的占位符和类型码:
%s 字符串,使用str(obj)转为字符串
%r 字符串,使用repr(obj) 转为字符串
%c 整数转为字符串,使用chr(i) 函数
%d 十进制整数
%o 八进制整数
%x 十六进制整数(字符a-f小写)
%X 十六进制整数(字符A-F大写)
%e 指数型浮点数(e小写) 如 2.9e+10
%E 指数型浮点数(E大写) 如 2.9E+10
%f,%F 浮点十进制形式
%g,%G 进制进形式浮点或指数浮点自动转换
%% 等同于一个%字符
占位符和类型码之间的格式语法:
% [- + 0 宽度.精度] 类型码
- 左对齐(默认是右对齐)
+ 显示正号
0 左侧空白位置补零
宽度: 整个数据输出的宽度
精度: 保留小数点后多少位,默认6位
示例:
"%10d" % 123 # ' 123'
"%+10d" % 123 # ' +123'
"%-10d" % 123 # '123 '
"%10s" % "ABC" # ' ABC'
"%05d" % 123 # '00123'
"%f" % 3.1416926535897932 # '3.141593'
"%7.2f" % 3.1416926535897932 # ' 3.14'
Python3 中常用字符串方法(method)
字符串的方法调用语法:
对象.方法名(方法传参)
字符串的属性读用法示例:
"abc".isalpha() # 语法是对的 123.isalpha() # 语法是错的
如下假设字符串变量名为S
常用字符串方法
| 方法 | 说明 |
|---|---|
| S.isdigit() | 判断字符串中的字符是否全为数字 |
| S.isalpha() | 判断字符串是否全为英文字母 |
| S.islower() | 判断字符串所有字符是否全为小写英文字母 |
| S.isupper() | 判断字符串所有字符是否全为大写英文字母 |
| S.isspace() | 判断字符串是否全为空白字符 |
| S.center(width[,fill]) | 将原字符串居中,左右默认填充空格 width:所居中字符串的长度 fill:默认填充空格 |
| S.count(sub[, start[,end]]) | 获取一个字符串中子串的个数 sub:所要获取的字符串 start:起始位置 end:结束位置 |
| S.find(sub[, start[,end]]) | 获取字符串中子串sub的索引,失败返回-1 start:起始位置 end:结束位置 |
| S.strip() | 返回去掉左右空白字符的字符串 |
| S.lstrip() | 返回去掉左侧空白字符的字符串 |
| S.rstrip() | 返回去掉右侧空白字符的字符串 |
| S.upper() | 生成将英文转换为大写的字符串 |
| S.lower() | 生成将英文转换为小写的字符串 |
| S.replace(old, new[, count]) | 将原字符串的old用new代替,生成一个新的字符串 count:更换的次数 |
| S.startswith(prefix[, start[, end]]) | 返回S是否是以prefix开头,如果以prefix开头返回True,否则返回False, |
| S.endswith(suffix[, start[, end]]) | 返回S是否是以suffix结尾,如果以suffix结尾返回True,否则返回False |
| 以下是不常用的 | |
| S.title() | 生成每个英文单词的首字母大写字符串 |
| S.isnumeric() | 判断字符串是否全为数字字符 |
Python3中常用的列表方法(method)
- 见:help(list)
| 方法 | 意义 |
|---|---|
| L.index(v [, begin[, end]]) | 返回对应元素的索引下标, begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误 |
| L.insert(index, obj) | 将某个元素插放到列表中指定的位置 |
| L.count(x) | 返回列表中元素的个数 |
| L.remove(x) | 从列表中删除第一次出现在列表中的值 |
| L.copy() | 复制此列表(只复制一层,不会复制深层对象) |
| L.append(x) | 向列表中追加单个元素 |
| L.extend(lst) | 向列表追加另一个列表 |
| L.clear() | 清空列表,等同于 L[:] = [] |
| L.sort(reverse=False) | 将列表中的元素进行排序,默认顺序按值的小到大的顺序排列 |
| L.reverse() | 列表的反转,用来改变原列表的先后顺序 |
| L.pop([index]) | 删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回删除元素的引用关系 |
字典的方法
| 函数 | 说明 |
|---|---|
| D代表字典对象 | |
| D.clear() | 清空字典 |
| D.pop(key) | 移除键,同时返回此键所对应的值 |
| D.copy() | 返回字典D的副本,只复制一层(浅拷贝) |
| D.update(D2) | 将字典 D2 合并到D中,如果键相同,则此键的值取D2的值作为新值 |
| D.get(key, default) | 返回键key所对应的值,如果没有此键,则返回default |
| D.keys() | 返回可迭代的 dict_keys 集合对象 |
| D.values() | 返回可迭代的 dict_values 值对象 |
| D.items() | 返回可迭代的 dict_items 对象 |
Python3 集合的方法
| 方法 | 意义 |
|---|---|
| S.add(e) | 在集合中添加一个新的元素e;如果元素已经存在,则不添加 |
| S.remove(e) | 从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误 |
| S.discard(e) | 从集合S中移除一个元素e,在元素e不存在时什么都不做; |
| S.clear() | 清空集合内的所有元素 |
| S.copy() | 将集合进行一次浅拷贝 |
| S.pop() | 从集合S中删除一个随机元素;如果此集合为空,则引发KeyError异常 |
| S.update(s2) | 用 S与s2得到的全集更新变量S |
| S.difference(s2) | 用S - s2 运算,返回存在于在S中,但不在s2中的所有元素的集合 |
| S.difference_update(s2) | 等同于 S = S - s2 |
| S.intersection(s2) | 等同于 S & s2 |
| S.intersection_update(s2) | 等同于S = S & s2 |
| S.isdisjoint(s2) | 如果S与s2交集为空返回True,非空则返回False |
| S.issubset(s2) | 如果S与s2交集为非空返回True,空则返回False |
| S.issuperset(...) | 如果S为s2的子集返回True,否则返回False |
| S.symmetric_difference(s2) | 返回对称补集,等同于 S ^ s2 |
| S.symmetric_difference_update(s2) | 用 S 与 s2 的对称补集更新 S |
| S.union(s2) | 生成 S 与 s2的全集 |
Python运算符优先级
| 运算符 | 描述 |
|---|---|
| (), [], {key: value}, {} | 元组表达式、列表表达式、字典表达式、集合表达式 |
| x[index], x[index:index], x(arguments...), x.attribute |
索引,切片, 函数调用,属性引用 |
| ** | 指数 (最高优先级) |
| ~, +, - | 按位翻转, 正号,负号 |
| *, /, %, // | 乘,除,取模和地板除 |
| +, - | 加法, 减法 |
| >>, << | 右移, 左移运算符 |
| & | 位与(AND) |
| ^ | 位异或(XOR) |
| | | 位或(OR) |
| <=, <, >, >=, ==, !=, is, is not, in, not in |
比较,身份测试,成员资格测试 |
| not | 布尔非 |
| and | 布尔与 |
| or | 布尔或 |
| if - else | 条件表达式 |
| lambda | lambda表达式 |