Python中的各种符号详解及字符串、列表、字典、集合函数相关操作
突然发现几个月不用python,差点忘了它,某些符号、运算符、关键字作用也记不起来,于是有了这篇文章,好记性不如烂笔头。
言归正传,常用的各类符号,关键字,运算符,一 一解释。
1.关键字(Keywords)
关键字 |
描述 |
示例 |
---|---|---|
and |
逻辑:与 |
True and False == False |
not |
逻辑:非 |
not True == False |
or |
逻辑:或 |
True or False == True |
pass |
表示空代码块 |
del empty(): pass |
del |
可以删除变量,字典和列表中特定的索引 |
X = [‘a’, ‘b‘, ’c‘, ’d‘, ’e‘] ;del x,删除变量x;del X[0],删除列表第1个值;del x[0:2],删除列表第1-2个值,[2]对应的第3个值不删除 |
import |
将模块导入当前文件以供使用 |
import os |
is |
类似于==,判断是否一样 |
1 is 1 == True |
|
打印字符串 |
print(“Hello World!!!”) |
if |
if 条件 |
if: X; elif: Y; else:J |
elif |
else if 条件 |
if: X; elif: Y; else:J |
else |
else 条件 |
if: X; elif: Y; else:J |
for |
针对物件集合的循环 |
for X in Y: pass |
while |
while循环 |
while X:pass |
in |
for循环的一部分,也可以x是否在y中的条件判断 |
for X in Y: pass 以及 1 in [1] == True |
return |
返回值并退出函数 |
def X(): return y |
class |
定义类 |
class Person(object) |
global |
声明全局变量,通常函数内的变量是局部变量,我们可以在函数内用此函数声明为全局变量 |
del x: x = “全局变量” global X |
exec |
将字符串作为Python脚本运行 |
exec ‘print(“hello”)\’ |
lambda |
创建短匿名函数 |
s = lambda y: y ** y; s(3) |
assert |
断言(确保)某东西为真 |
assert False, “Error !” |
break |
立即停止循环 |
while True: break |
continue |
停止当前循环的后续步骤,再做一次循环 |
while True: continue |
raise |
出错后引发异常 |
raise ValueError(“No”) |
try |
尝试执行代码,出错后转到except |
try: pass except: pass |
except |
如果发生异常,运行此处代码 |
try: pass except ValueError, e: print(e) |
finally |
不管是否发生异常,都运行此处代码 |
try: pass finally: pass |
with |
with-as 语句的一部分,将表达式作为一个变量,然后执行代码块;它的作用和上下文管理器有关,可以自动关闭打开的文件或线程,不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭了打开的文件句柄。 |
with open(\’ex15_sample.txt\’) as X: y = X.read() 先将open()作为变量x,然后x.read() |
as |
with-as 语句的一部分,可以理解为重命名,把复杂的表达式重命名简单的字符 |
with open(\’ex15_sample.txt\’) as X: y = X.read() 先将open()作为变量x,然后x.read() |
yield |
暂停函数,返回到调用函数的代码中 |
def X(): yield Y; X().next() |
数据类型:
关键字 |
描述 |
示例 |
---|---|---|
True |
为“真 ” |
True or False == True |
False |
为“假” |
False and True == False |
None |
表示“不存在”或者“没有值” |
x = None |
bytes |
字节串存储,可能是文本、PNG图片、文件等 |
x = b \’ Hello! \’ |
strings |
存储文本信息 |
x = \’ Hello! \’ |
numbers |
储存整数 |
i = 100 |
Floats |
存储十进制数 |
i = 10.389 |
lists |
存储列表 |
i = [1, 2, 3, 4, five, sex] |
dicts |
存储键-值映射 |
e = { \’ x \’ : 1 , \’ y \’ : 2 } |
字符串格式:
转义符 |
描述 |
示例 |
---|---|---|
%d |
十进制整数(非浮点数) |
“%d” % 45 == \’45\’ |
%i |
和%d 一样 |
“%i” % 45 == \’45\’ |
%o |
八进制数 |
“%o” % 1000 == \’1750\’ |
%u |
无符号整数 |
“%u” % -1000 == \’-1000\’ |
%x |
小写十六进制数 |
“%x” % 1000 == \’3e8\’ |
%X |
大写十六进制数 |
“%X” % 1000 == \’3E8\’ |
%f |
浮点实数 |
“%f” % 10.34 == \’10.340000\’ |
%F |
和 %f 一样 |
“%F” % 10.34 == \’10.340000\’ |
%e |
指数表示,小写e |
“%e” % 1000 == \’1.000000e+03\’ |
%E |
指数表示,大写E |
“%E” % 1000 == \’1.000000E+03\’ |
%g |
%f 和%e 中较短的一种 |
“%g” % 10.34 == \’10.34\’ |
%G |
和 %g 一样,但是是大写 |
“%G” % 10.34 == \’10.34\’ |
%f |
浮点实数 |
“%f” % 10.34 == \’10.340000\’ |
%F |
和 %f 一样 |
“%F” % 10.34 == \’10.340000\’ |
%c |
字符格式 |
“%c” % 34 == ‘ ” ’ |
%r |
Repr 格式(调式格式) |
“%r” % int == “<type \’int\’>” |
%s |
字符串格式 |
“%s there” % \’hi\’ == \’hi there\’ |
%% |
百分号自身 |
“%g%%” % 10.34 == \’10.34%\’ |
字符串转义序列:
转义符 |
描述 |
---|---|
\\’ |
单引号 |
\” |
双引号 |
\a |
响铃符 |
\b |
退格符 |
\ |反斜杠 |
|
\f |
表单填充符 |
\n |
换行符 |
\r |
回车 |
\t |
制表符(tab) |
\v |
垂直制表符 |
运算符类型:
注意点 | |
---|---|
算数运算符 | % 取余 , //地板除 , ** 幂运算 |
比较运算符 | == 比较两个值是否相等 != 比较两个值是否不同 |
赋值运算符 | a += 1 => a = a+1 |
成员运算符 | in 或 not in 判断某个值是否包含在(或不在)一个容器类型数据当中 |
身份运算符 | is 和 is not 用来判断内存地址是否相同 |
逻辑运算符 | 优先级 () > not > and > or |
位运算符 | 优先级 (<<或 >> ) > & > ^ > | |
运算符 |
描述 |
示例 |
---|---|---|
+ |
加法运算 或拼接字符串 |
2 +4 =6 |
– |
减法运算 |
2 – 4 = -2 |
* |
乘法运算 |
2 * 4 = 8 |
** |
幂运算 |
2 ** 4 = 16 |
/ |
除法运算,结果一定是浮点数 |
2 / 4 = 0.5 |
// |
整除或地板除,其结果舍弃小数部分 |
2 // 4 = 0(2/4=0.5,0.5下面的整数是0) |
% |
取余 |
2 % 4 = 2 (小除大,余数都是小的数本身) |
= |
赋值 |
x = 10 |
+= |
相加后赋值 |
x += 2 等于 x = x + 2 |
-= |
相减后赋值 |
x -= 2 等于 x = x – 2 |
*= |
相乘后赋值 |
x = 2 等于 x = x 2 |
/= |
相除后赋值 |
x /= 2 等于 x = x / 2 |
//= |
整除后赋值 |
x //= 2 等于 x = x // 2 |
%= |
取余后赋值 |
x %= 2 等于 x = x % 2 |
**= |
求幂后赋值 |
x = 2 等于 x = x 2 |
== |
判断是否相等 |
4 == 5 == False |
< |
判断是否小于 |
4 < 4 == False |
> |
判断是否大于 |
4 > 4 == False |
<= |
判断是否小于等于 |
4 <= 4 == True |
>= |
判断是否大于等于 |
4 >= 4 == True |
!= |
判断是否不等于 |
4 != 5 == True |
( ) |
括号 len(\’hi\’) == 2 |
|
[ ] |
方括号 |
x = [1, 5, 10] |
{ } |
花括号 |
{ \’ x \’ :5, \’ y \’ : 10} |
@ |
修饰器符 |
@classmethod |
, |
逗号 |
range(0, 10) |
: |
冒号 |
def x(): |
. |
点 |
self.x = 10 |
; |
分号 |
print(“hi”); print(“there”) |
1 *capitalize 字符串首字母大写 2 *title 每个单词的首字母大写 3 *upper 将所有字母变成大写 4 *lower 将所有字母变成小写 5 *swapcase 大小写互换 6 *len 计算字符串的长度 7 *count 统计字符串中某个元素的数量 8 *find 查找某个字符串第一次出现的索引位置 9 *index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错 10 *startswith 判断是否以某个字符或字符串为开头 11 *endswith 判断是否以某个字符或字符串结尾 12 13 #isupper 判断字符串是否都是大写字母 14 #islower 判断字符串是否都是小写字母 15 #istitle 判断字符串是否每个单词都首字母大写 16 #isalnum 判断字符串是否是由数字、字母、汉字组成 17 *isalpha 判断字符串是否由字母和文字组成 18 *isdigit 检测字符串数是数字组成 接受二进制字节流 19 *isdecimal 检测字符串是否以数字组成 必须是纯数字 20 #isnumeric 检测字符串是否以数字组成 接受中文"四" 21 #isspace 判断字符串是否由空白符组成 22 23 *split 按某字符将字符串分割成列表(默认字符是空格) 24 *join 按某字符将列表拼接成字符串(容器类型都可) 25 #splitlines 按换行来进行切分(\n) 26 #zfill 填充字符串(默认填充0,原字符串右对齐) 27 #ljust 填充字符串,原字符居左 (默认填充空格) 28 #rjust 填充字符串,原字符居右 (默认填充空格) 29 *center 填充字符串,原字符居中 (默认填充空格) 30 *strip 默认去掉首尾两边的空白符 31 #rstrip 去掉右边某个字符 32 #lstrip 去掉左边某个字符 33 34 *replace() 35 功能: 把字符串的旧字符换成新字符 36 格式: 字符串.replace(\'旧字符\',\'新字符\'[, 限制替换的次数]) 37 返回值: 替换之后的字符串 38 39 #maketrans translate 是一对 40 maketrans() 41 功能: 制作用于字符串替换的映射表 42 格式: 字符串.maketrans(\'查找字符\',\'替换字符\')两个字符必须长度相等 43 返回值: 字典 44 translate() 45 功能: 进行字符串替换操作 46 格式: 字符串.translate(maketrans返回的字典) 47 返回值: 替换之后的字符串
字符串相关函数
append()** 功能:向列表的末尾添加新的元素 格式:列表.append(值) 返回值:None 注意:新添加的值在列表的末尾,该函数直接操作原有列表 **insert()** 功能:在指定索引之前插入元素 格式:列表.insert(索引,值) 返回值:None 注意:直接改变原有列表 **extend()** 功能:迭代追加所有元素 格式:列表.extend(可迭代性数据) 返回值:None 注意:直接改变原有列表 **pop()** 功能:通过指定索引删除元素,若没有索引移除最后那个 格式:列表.pop(索引) 返回值:删除的元素 (注意:没有指定索引,默认移除最后一个元素 ) **remove()** 功能:通过给予的值来删除,如果多个相同元素,默认删除第一个 格式:列表.remove(值) 返回值:无 (注意:如果有索引的情况推荐使用pop,效率高于remove) **clear**() 功能:清空列表 格式:列表.clear() 返回值:空列表 **index()** 功能:获取某个值在列表中的索引 格式:列表.index(值[,start][,end]) # [] 表达参数可选项 返回值:找到返回索引 (找不到报错) **count()** 功能:计算某个元素出现的次数 格式:列表.count(值) 返回值:次数 **sort()** 功能:列表排序(默认小到大排序) 格式:列表.sort(reverse=False) 返回值:None 注意:直接更改原列表 **reverse()** 功能:列表反转操作 格式:列表.reverse() 返回值:None 注意:直接更改原列表 ### 深拷贝浅拷贝 #copy模块中有 浅拷贝 和 深拷贝 两种方法 (1)浅拷贝: 浅拷贝只拷贝外层列表 内层列表跟随原列表进行改变 # 浅拷贝copy.copy(listvar) 或者 listvar.copy() (2)深拷贝: 拷贝整个列表 内外列表都不跟随原列表进行改变 # 深拷贝copy.deepcopy(listvar) 注意:copy模块的copy方法 和 python内置的函数copy一样 都是浅拷贝 元组相关操作和方法 元组的相关操作除了不能修改和删除其中的元素之外 , 剩下操作都和列表相同. 元组里面能用的方法只有 index 和 count
列表的相关函数
#fromkeys() 使用一组键和默认值创建字典 #pop() 通过键去删除键值对 (若没有该键可设置默认值,预防报错) #popitem() 删除最后一个键值对 #clear() 清空字典 #update() 批量更新(有该键就更新,没该键就添加) #get() 通过键获取值(若没有该键可设置默认值,预防报错) #keys() 将字典的键组成新的可迭代对象 #values() 将字典中的值组成新的可迭代对象 #items() 将字典的键值对凑成一个个元组,组成新的可迭代对象
字典的相关函数
#intersection() 交集
#difference() 差集
#union() 并集
#symmetric_difference() 对称差集 (补集情况涵盖在其中)
#issubset() 判断是否是子集
#issuperset() 判断是否是父集
#isdisjoint() 检测两集合是否不相交 不相交 True 相交False
集合中的交差并补
#add() 向集合中添加数据
#update() 迭代着增加
#clear() 清空集合
#pop() 随机删除集合中的一个数据
#remove() 删除集合中指定的值(不存在则报错)
#discard() 删除集合中指定的值(不存在的不删除 推荐使用)
#frozenset 可强转容器类型数据变为冰冻集合
冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作
集合相关的函数及冰冻集合
#打开模式 w write 写入模式 文件不存在则创建文件,存在的话则打开清空内容,并且将文件指针放在文件的开头 r read 读取模式 文件不存在则报错! 存在的话则打开文件,并且将文件指针放在文件的开头 a append 追加模式 文件不存在则创建文件,存在的话则打开文件,*并且将文件指针放在文件的末尾* x xor 异或模式 (了解) 文件已存在则报错! 不存在的话则创建文件,将文件指针放在文件的开头 #扩展模式 (配合打开模式的辅助模式,自己单独不能使用) + plus 增强模式(可以让文件具有读写功能) b bytes bytes模式(二进制字节流) #模式一共16种 w,w+,wb,wb+ r,r+,rb,rb+ a,a+,ab,ab+ x,x+,xb,xb+ # 将字符串和字节流(Bytes流)类型进行转换 (参数写成转化的字符编码格式) #encode() 编码 将字符串转化为字节流(Bytes流) #decode() 解码 将Bytes流转化为字符串 # (utf-8编码格式下 默认一个中文三个字节 一个英文或符号 占用一个字节) #read() 功能: 读取字符的个数(里面的参数代表字符个数) #seek() 功能: 调整指针的位置(里面的参数代表字节个数) #tell() 功能: 当前光标左侧所有的字节数(返回字节数) # 刷新缓冲区 flush # 当文件关闭的时候自动刷新缓冲区 # 当整个程序运行结束的时候自动刷新缓冲区 # 当缓冲区写满了 会自动刷新缓冲区 # 手动刷新缓冲区
文件操作–打开模式
#readline() 功能: 读取一行文件内容
#readlines() 功能:将文件中的内容按照换行读取到列表当中
#writelines() 功能:将内容是字符串的可迭代性数据写入文件中 参数:内容为字符串类型的可迭代数据
#truncate() 功能: 把要截取的字符串提取出来,然后清空内容将提取的字符串重新写入文件中 (字节)
#readable() 功能: 判断文件对象是否可读
#writable() 功能: 判断文件对象是否可写
文件相关函数
#字符:无论是什么语言,独立的一个文字就是一个字符 #存储单位: Byte字节 bit:位 1B = 8b B:字节, 1Byte = 8bit #字符大小: 无论何种字符集:英文和数字都是一个字节,汉字,韩文,日文等亚洲文字采用多个字节存储 GB系列编码:存储一个汉字使用2个字节 (国标编码:例如: gbk2312 ) UTF系列编码:存储一个汉字使用3个字节(国际通用:例如: utf-8 ) #字符编码种类: (把编码看成一个密码本,每一个字符在计算机中都是个二进制) 英文原始编码: ASCII码 -> 最早的字符编码格式->仅支持英文和特定的符号 中文编码: GB2312 : 包含5000个常用汉字的标准 GB18030: 升级版本的标准,大概15000个汉字 GBK : 包含所有中文汉字的编码(推荐) BIG5 : 繁体中文编码 万国码: unicode 包含世界上所有的文字(无论什么字符 都按照4个字节表示) utf-8 可变长的unicode编码
字符相关的(了解一下就行)
后面补充的是一些python常见的词以及作用,望对你有用
词 |
作用 |
---|---|
print() |
打印内容到屏幕上 |
input |
接受用户输入内容 |
import |
加载其他的库、类或函数到当前脚本 |
return |
返回函数的结果 |
pydoc |
在命令行查看某个函数或类的帮助文档 |
help |
查看类、函数、变量的帮助文档 |
def |
用于定义一个函数 |
Ture |
布尔值“真”,首字母大写 |
False |
布尔值“假”,首字母大写 |
sys |
标准库,和环境有关的功能 |
sys.argv |
属于sys标准库,获取脚本参数 |
open |
用于打开文件,注意打开后的对象和 py2 file 的区别 |
TextIOWrapper |
Py3 打开文本文件后的类型 |
TextIOWrapper.read |
从当前指针位置读取文件的内容 |
TextIOWrapper.readline |
从指针位置读取文件内容 |
TextIOWrapper.writer |
向文件写入内容 |
TextIOWrapper.close |
关闭打开的文件,执行保存 |
TextIOWrapper.seek |
设置文件指针位置 |
TextIOWrapper.tell |
返回当前指针位置 |
os 标准库,和系统操作有关 |
|
os.path 判断文件是否已经存在 |
|
字符串 |
由引号(\’ ” \’\’\’ “””)定义的一组字符 |
原始字符串 |
字符串的引号前有字母r 或 R,其内容不会被转义 |
整数 |
表示没有小数的数字 |
浮点数 |
表示有小数部分的数字,浮点数运算时可能出现精度问题。 |
转义字符 |
由 \ 和一些字符组成,被转义的字符表示特殊的意义 |
科学计数法 |
由数字和e组成,表示数字乘以10的多少次方 |
未完,待续