参考:https://docs.python.org/zh-cn/3/library/index.html
1、 注释
单行注释:#
多行注释:以’’’开始和结束
2、 命名规则
大小写字母、数字、下划线
不能以数字开头
大小写敏感
不能与保留字相同
3、 Python保留字
查看:import keyword
print(keyword.kwlist)
结果如下:
‘False‘, ‘None‘, ‘True‘, ‘and‘, ‘as‘, ‘assert‘, ‘async‘, ‘await‘, ‘break‘, ‘class‘,‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘nonlocal‘, ‘not‘, ‘or‘, ‘pass‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘
4、 程序的输入和输出
输出:
print( value, …, sep = ’ ’, end = ’\n’, file = sys.stdout, flush = False )
value:想要输出的数据,若是字符串,须前后加上单(双)引号。
sep:以半角空格隔开输出值
end = \n’:默认值。’\n’是换行符号,表示输出之后移向下一行。若输出不换行,使用end=’’。
file = sys.stdout:表示标准输出设备,通常指屏幕。
flush = False:执行print()函数,可决定数据先暂存于缓冲区或全部输出。
注意:print函数只会输出十进制数值。
输入:
X = input([prompt])
prompt是提示字符串,须前后加上单(双)引号,输入数据存储于变量X中。
值得说明的是:
5、 数据类型
1) 整型(整数、布尔)
进制转化:
bin(int):十进制转二进制,结果以0b为前缀的字符
hex(int):十进制转十六进制,结果以0b为前缀的字符
int(s,base):字符串s根据base参数提供进制数转十进制数值
2) 浮点类型
浮点型由整数部分与小数部分组成,float(x)将x转换到一个浮点数。
3) 复数类型(complex)
复数由实数部分和虚数部分构成,可以用a+ bj,或者complex(a,b)表示,复数的实部a和 虚部b都是浮点型
6、 字符串
使用单引号(’) 或 (”)来创建字符串。不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。访问子字符串,可以使用方括号来截取字符串。
索引/访问方式:
[A:B]:从位置A到B的部分字符串,不包括位置B,特殊地[0:B] 等同于[:B]
1)转义字符
序号 |
转义字符 |
描述 |
1 |
\ |
在行尾时,续行符 |
2 |
\\ |
反斜杠符号 |
3 |
\‘ |
单引号 |
4 |
\" |
双引号 |
5 |
\a |
响铃 |
6 |
\b |
退格(Backspace) |
7 |
\000 |
空 |
8 |
\n |
换行 |
9 |
\v |
纵向制表符 |
10 |
\t |
横向制表符 |
11 |
\r |
回车 |
12 |
\f |
换页 |
13 |
\oyy |
八进制数,yy 代表的字符,例如:\o12代表换行,其中o是字母,不是数字 0。 |
14 |
\xyy |
十六进制数,yy代表的字符,例如:\x0a代表换行 |
15 |
\other |
其它的字符以普通格式输出 |
2)字符串运算符
序号 |
操作符 |
描述 |
实例( a="Hello", b="Python" ) |
1 |
+ |
字符串连接 |
a+b输出结果:HelloPython |
2 |
* |
重复输出字符串 |
a*2输出结果:HelloHello |
3 |
[] |
通过索引获取字符串中字符 |
a[1]输出结果 e |
4 |
[ : ] |
截取字符串中的一部分,遵循左闭右开原则 |
a[1:4]输出结果 ell |
5 |
in |
成员运算符,如果字符串中包含给定的字符返回 True |
‘H‘ in a输出结果 True |
6 |
not in |
成员运算符,如果字符串中不包含给定的字符返回 True |
‘M‘ not in a 输出结果 True |
7 |
r/R |
原始字符串,原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母 r或R以外,与普通字符串有着几乎完全相同的语法。 |
print( r‘\n‘ ) print( R‘\n‘ ) |
8 |
% |
格式字符串 |
|
3)字符串格式化
将一个值插入到一个有字符串格式符 %s 的字符串中:
print ("我叫%s今年%d岁!" % (‘小明‘, 10))
输出:我叫小明今年10岁!
字符串格式化符号:
序号 |
符号 |
描述 |
1 |
%c |
格式化字符及其ASCII码 |
2 |
%s |
格式化字符串 |
3 |
%d |
格式化整数 |
4 |
%u |
格式化无符号整型 |
5 |
%o |
格式化无符号八进制数 |
6 |
%x、%X |
格式化无符号十六进制数 |
7 |
%f |
格式化浮点数字,可指定小数点后的精度 |
8 |
%e、%E |
用科学计数法格式化浮点数 |
9 |
%g |
%f和%e的简写 |
10 |
%G |
%f和%E的简写 |
11 |
%p |
用十六进制数格式化变量的地址 |
4)三引号
三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
5)Unicode字符串
在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,使用的语法是在字符串前面加上前缀u。
在Python3中,所有的字符串都是Unicode字符串。
6)字符串内建函数
序号 |
方法及描述 |
1 |
capitalize(str) 将字符串的第一个字符转换为大写 |
2 |
center(width,fillchar) 返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格 |
3 |
count(str,beg=0,end=len(string)) 返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数 |
4 |
bytes.decode(encoding="utf-8",errors="strict") Python3中没有decode方法,但我们可以使用bytes对象的decode()方法来解码给定的bytes对象,这个bytes对象可以由str.encode()来编码返回 |
5 |
encode(encoding=‘UTF-8‘,errors=‘strict‘) 以encoding指定的编码格式编码字符串,如果出错默认报一个ValueError的异常,除非errors指定的是‘ignore‘或者‘replace‘ |
6 |
endswith(suffix,beg=0,end=len(string)) |
7 |
expandtabs(tabsize=8) 把字符串string中的tab符号转为空格,tab符号默认的空格数是8 |
8 |
find(str,beg=0,end=len(string)) 检测str是否包含在字符串中,如果指定范围beg和end,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
9 |
index(str,beg=0,end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常 |
10 |
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False |
11 |
isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False |
12 |
isdigit() 如果字符串只包含数字则返回True否则返回False.. |
13 |
islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False |
14 |
isnumeric() 如果字符串中只包含数字字符,则返回True,否则返回False |
15 |
isspace() 如果字符串中只包含空白,则返回True,否则返回False |
16 |
istitle() 如果字符串是标题化的(见title())则返回True,否则返回False |
17 |
isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False |
18 |
join(seq) 以指定字符串作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串 |
19 |
len(string) 返回字符串长度 |
20 |
ljust(width[,fillchar]) 返回一个原字符串左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格 |
21 |
lower() 转换字符串中所有大写字符为小写 |
22 |
lstrip() 截掉字符串左边的空格或指定字符 |
23 |
maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标 |
24 |
max(str) 返回字符串str中最大的字母 |
25 |
min(str) 返回字符串str中最小的字母 |
26 |
replace(old,new[,max]) 把将字符串中的str1替换成str2,如果max指定,则替换不超过max次 |
27 |
rfind(str,beg=0,end=len(string)) 类似于find()函数,不过是从右边开始查找 |
28 |
rindex(str,beg=0,end=len(string)) 类似于index(),不过是从右边开始 |
29 |
rjust(width,[,fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度width的新字符串 |
30 |
rstrip() 删除字符串字符串末尾的空格 |
31 |
split(str="",num=string.count(str)) num=string.count(str))以str为分隔符截取字符串,如果num有指定值,则仅截取num+1个子字符串 |
32 |
splitlines([keepends]) 按照行(‘\r‘,‘\r\n‘,\n‘)分隔,返回一个包含各行作为元素的列表,如果参数keepends为False,不包含换行符,如果为True,则保留换行符 |
33 |
startswith(substr,beg=0,end=len(string)) 检查字符串是否是以指定子字符串substr开头,是则返回True,否则返回False。如果beg和end指定值,则在指定范围内检查 |
34 |
strip([chars]) 在字符串上执行lstrip()和rstrip() |
35 |
swapcase() 将字符串中大写转换为小写,小写转换为大写 |
36 |
title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见istitle()) |
37 |
translate(table,deletechars="") 根据str给出的表(包含256个字符)转换string的字符,要过滤掉的字符放到deletechars参数中 |
38 |
upper() 转换字符串中的小写字母为大写 |
39 |
zfill(width) 返回长度为width的字符串,原字符串右对齐,前面填充0 |
40 |
isdecimal() 检查字符串是否只包含十进制字符,如果是返回true,否则返回false |
7、 列表
创建列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。可进行的操作包括索引,切片,加,乘,检查成员,列表的数据项不需要具有相同的类型。
访问列表中的值:使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符。
更新列表:可对列表的数据项进行修改或更新,也可使用append()方法来添加列表项。
删除元素:使用del语句来删除列表的的元素。
列表操作符
列表截取与拼接
嵌套列表
使用嵌套列表即在列表里创建其它列表
列表函数
序号 |
函数及描述 |
1 |
len(list) |
2 |
max(list) |
3 |
min(list) |
4 |
list(seq) |
列表方法
序号 |
方法及描述 |
1 |
list.append(obj) 在列表末尾添加新的对象 |
2 |
list.count(obj) 统计某个元素在列表中出现的次数 |
3 |
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 |
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 |
list.insert(index, obj) 将对象插入列表 |
6 |
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 |
list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 |
list.reverse() 反向列表中元素 |
9 |
list.sort(
key=None, reverse=False) |
10 |
list.clear() 清空列表 |
11 |
Obj = list.copy() 复制列表 |
8、 元组
元组与列表类似,但元组元素不能修改,元组使用小括号。元组创建只需要在括号中添加元素,并使用逗号隔开即可。
创建空元组:tup1 = ();
元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
访问元组:元组可以使用下标索引来访问元组中的值
修改元组:元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
删除元组:元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
元组运算符:元组索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元组内置函数
序号 |
函数及描述 |
1 |
len(tuple) |
2 |
max(tuple) |
3 |
min(tuple) |
4 |
tuple (seq) |
9、 字典
字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
访问字典里的值:把相应的键放入到方括号中
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
字典内置函数
序号 |
函数及描述 |
1 |
len(dict) 计算字典元素个数,即键的总数。 |
2 |
str(dict) 输出字典,以可打印的字符串表示。 |
3 |
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。 |
字典内置方法
序号 |
方法及描述 |
1 |
dict.clear() 删除字典内所有元素 |
2 |
dict.copy() 返回一个字典的浅复制 |
3 |
dict.fromkeys(seq[, value]) 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
4 |
dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值 |
5 |
key in dict 如果键在字典dict里返回true,否则返回false |
6 |
dict.items() 以列表返回可遍历的(键, 值)元组数组 |
7 |
dict.keys() 返回一个迭代器,可以使用 list()来转换为列表 |
8 |
dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 |
dict.update(dict2) 把字典dict2的键/值对更新到dict里 |
10 |
dict.values() |
11 |
pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 |
popitem() 随机返回并删除字典中的最后一对键和值。 |
10、 集合
集合(set)是一个无序的不重复元素序列。使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。例如:
parame = {value01,value02,...} 或者set(value)
1) 两个集合间的运算
a – b # 集合a中包含而集合b中不包含的元素
a | b # 集合a或b中包含的所有元素
a & b # 集合a和b中都包含了的元素
a ^ b # 不同时包含于a和b的元素
2) 集合内置方法
序号 |
方法 |
描述 |
1 |
add() |
为集合添加元素 |
2 |
clear() |
移除集合中的所有元素 |
3 |
copy() |
拷贝一个集合 |
4 |
difference() |
返回多个集合的差集 |
5 |
difference_update() |
移除集合中的元素,该元素在指定的集合也存在 |
6 |
discard() |
删除集合中指定的元素 |
7 |
intersection() |
返回集合的交集 |
8 |
intersection_update() |
返回集合的交集 |
9 |
isdisjoint() |
判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False |
10 |
issubset() |
判断指定集合是否为该方法参数集合的子集 |
11 |
issuperset() |
判断该方法的参数集合是否为指定集合的子集 |
12 |
pop() |
随机移除元素 |
13 |
remove() |
移除指定元素 |
14 |
symmetric_difference() |
返回两个集合中不重复的元素集合。 |
15 |
symmetric_difference_update() |
移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中 |
16 |
union() |
返回两个集合的并集 |
17 |
update() |
给集合添加元素 |
11、 分支语句 if else
根据判断条件选择执行路径,注意语句的缩进,补充:占位符(pass)
使用方法:if <条件1>:
<语句块1>
elif<条件2>:
<语句2>
…
else:
<语句N>
12、 循环语句 while
根据判断条件确定程序执行次数
使用方法:
当条件为真(True)时,执行语句块1;为假(False)时,退出循环
while(<条件>):
<语句块1>
else:
<语句块2>
13、 循环语句 for
根据判断条件确定程序执行次数
使用方法:
for <variable>
in <sequence>:
<语句块1>
else:
<语句块2>
14、 文件操作
1)open()方法
注意:使用 open()方法一定要保证关闭文件对象,即调用 close() 方法。
完整的语法格式为:
参数说明:
file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf-8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
mode参数有:
序号 |
模式 |
描述 |
1 |
t |
文本模式(默认) |
2 |
x |
写模式,新建一个文件,如果该文件已存在则会报错 |
3 |
b |
二进制模式 |
4 |
+ |
打开一个文件进行更新(可读可写) |
5 |
U |
通用换行模式(Python3不支持) |
6 |
r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
7 |
rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等 |
8 |
r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。 |
9 |
rb+ |
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等 |
10 |
w |
打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件 |
11 |
wb |
以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等 |
12 |
w+ |
打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件 |
13 |
wb+ |
以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等 |
14 |
a |
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入 |
15 |
ab |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入 |
16 |
a+ |
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写 |
17 |
ab+ |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写 |
默认为文本模式,如果要以二进制模式打开,加上b。
模式总结如下:
模式 |
r |
r+ |
w |
w+ |
a |
a+ |
读 |
+ |
+ |
|
+ |
|
+ |
写 |
|
+ |
+ |
+ |
+ |
+ |
创建 |
|
|
+ |
+ |
+ |
+ |
覆盖 |
|
|
+ |
+ |
|
|
指针在开始 |
+ |
+ |
+ |
+ |
|
|
指针在结尾 |
|
|
|
|
+ |
+ |
3) file对象常用的函数:
序号 |
函数 |
描述 |
1 |
file.close() |
关闭文件。关闭后文件不能再进行读写操作。 |
2 |
file.flush() |
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入。 |
3 |
file.fileno() |
返回一个整型的文件描述符(filedescriptorFD整型),可以用在如os模块的read方法等一些底层操作上。 |
4 |
file.isatty() |
如果文件连接到一个终端设备返回True,否则返回False。 |
5 |
file.next() |
Python3中的File对象不支持next()方法。返回文件下一行。 |
6 |
file.read([size]) |
从文件读取指定的字节数,如果未给定或为负则读取所有。 |
7 |
file.readline([size]) |
读取整行,包括"\n"字符。 |
8 |
file.readlines([sizeint]) |
读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行,实际读取值可能比sizeint较大,因为需要填充缓冲区。 |
9 |
file.seek(offset[,whence]) |
移动文件读取指针到指定位置 |
10 |
file.tell() |
返回文件当前位置。 |
11 |
file.truncate([size]) |
从文件的首行首字符开始截断,截断文件为size个字符,无size表示从当前位置截断;截断之后后面的所有字符被删除,其中Widnows系统下的换行代表2个字符大小。 |
12 |
file.write(str) |
将字符串写入文件,返回的是写入的字符长度。 |
13 |
file.writelines(sequence) |
向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 |
15、 字符编码与转码
参考:https://www.cnblogs.com/luotianshuai/articles/5735051.html
https://www.cnblogs.com/alex3714/category/770733.html
16、 函数定义
函数调用时参数为实参,定义时参数为形参,参数列表用”,”逗号隔开
def <函数名>(<参数列表>):
<函数体>
return <返回值列表>
需要说明的是,常规引入主函数方法如下:
def main()
<函数体>
if __name__ == ‘__main__’:
main()
17、 lambda函数
说明:特殊函数(匿名函数),用于简单的、能够在一行内表示函数,计算结果为返回值
使用方法:<函数名> = lambda<参数列表>:<表达式>
原文:https://www.cnblogs.com/zhangshiwu/p/12250856.html