Python基础知识点整理

一、Python转义字符

\a :响铃(BEL)
\b : 退格(BS) ,将当前位置移到前一列
\f :换页(FF),将当前位置移到下页开头
\n :换行(LF) ,将当前位置移到下一行开头
\r :回车(CR) ,将当前位置移到本行开头
\t :水平制表(HT) (跳到下一个TAB位置)
\v :垂直制表(VT)
\\ :代表一个反斜线字符 
\' :代表一个单引号(撇号)字符
\" :代表一个双引号字符
\? :代表一个问号
\0 :空字符(NULL)
\ddd :3位八进制数所代表的任意字符
\xhh :2位十六进制所代表的任意字符

二、Python字符串格式化符号

1、百分号%方式

%c:格式化字符及其ASCII码
%s:格式化字符串
%d:格式化整数
%u:格式化无符号整型
%o:格式化无符号八进制数
%x:格式化无符号十六进制数
%X:格式化无符号十六进制数(大写)
%f:格式化浮点数字,可指定小数点后的精度
%e:用科学计数法格式化浮点数
%E:作用同%e,用科学计数法格式化浮点数
%p:用十六进制数格式化变量的地址

例子:

Python基础知识点整理_第1张图片

Python基础知识点整理_第2张图片

%r 与 %s 区别:

%r 用来做 debug 比较好,因为它会显示变量的原始数据(raw data),而其它的符号则是用来向用户显示输出的。

Python基础知识点整理_第3张图片

# 格式化部分用单引号输出

Python基础知识点整理_第4张图片
# 可以看见与上面输出存在明显的区别

format方式

Python基础知识点整理_第5张图片

三、Python正则表达式

1、正则匹配的基本语法

正则表达式的通配符表示含义:

模式字符串使用特殊的语法来表示一个正则表达式:

  • 字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。

  • 多数字母和数字前加一个反斜杠时会拥有不同的含义。

  • 标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。

  • 反斜杠本身需要使用反斜杠转义。

  • 由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r'\t',等价于 '\t')匹配相应的特殊字符。

下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。

2、re模块

Python中re模块使用正则表达式的两种方法

  • 使用re.compile(r, f)方法生成正则表达式对象,然后调用正则表达式对象的相应方法。这种做法的好处是生成正则对象之后可以多次使用。

  • re模块中对正则表达式对象的每个对象方法都有一个对应的模块方法,唯一不同的是传入的第一个参数是正则表达式字符串。此种方法适合于只使用一次的正则表达式。

以下是re模块常用的七个函数:

注意事项:match、fullmatch、findall、finditer、search区别

match:是根据传入的正则表达式匹配对应的字符串。并且是从开始字符匹配。匹配到字符不能匹配的位置然后返回匹配的对象。返回的对象是MatchObject或者空。

fullmatch和match的区别是fullmatch必须是目标字符串从开始到结束全部都匹配这个传入的正则表达式才可以返回匹配对象。否则返回空。返回的对象也是MatchObject对象。

findall:从字符串中从前向后依次查找匹配正则表达式的子串。最后把多个匹配的子串用列表形式返回。列表的每个元素是一个匹配的子串。

finditer和findall功能相同。但是finditer返回的是一个可迭代对象。可以用next()方法读取。然后再用group方法读取匹配的内容。

search:是从前向后依次扫描整个字符串。返回第一个匹配的子串。匹配位置不一定是开始字符。但是如果用*来表示0-n次重复时需要测试。有时候会返回空字符串。

search、match返回对象是MatchObject或者是None。findall返回对象是列表。列表每个元素都是一个可以匹配的一段子串。

3、总结

  1. 对于正则表达式的匹配功能,Python没有返回true和false的方法,但可以通过对match或者search方法的返回值是否是None来判断
  2. 对于正则表达式的搜索功能,如果只搜索一次可以使用search或者match方法返回的匹配对象得到,对于搜索多次可以使用finditer方法返回的可迭代对象来迭代访问
  3. 对于正则表达式的替换功能,可以使用正则表达式对象的sub或者subn方法来实现,也可以通过re模块方法sub或者subn来实现,区别在于模块的sub方法的替换文本可以使用一个函数来生成
  4. 对于正则表达式的分割功能,可以使用正则表达式对象的split方法,需要注意如果正则表达式对象有分组的话,分组捕获的内容也会放到返回的列表中

参考链接:
https://docs.python.org/zh-cn/3/howto/regex.html
https://docs.python.org/zh-cn/3/library/re.html

四、Python文件操作

文件方法

1、open() 方法

完整语法:

open(file,mode='r',buffering=-1,encoding=None,errors=None, newline=None, closefd=True, opener=None)

参数说明:

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
  • opener:

文件打开模式mode参数如下:

Python基础知识点整理_第6张图片

思考:r+、w+和a+都可以实现对文件的读写,那他们有什么区别呢?

r+会覆盖当前文件指针所在位置的字符,如原来文件内容是"Hello,World",打开文件后写入"hi"则文件内容会变成"hillo, World"

w+与r+的不同是,w+在打开文件时就会先将文件内容清空,不知道它有什么用

a+与r+的不同是,a+只能写到文件末尾(无论当前文件指针在哪里)

最低内存消耗的文件读取操作:

Python基础知识点整理_第7张图片

发现上面的输出结果中行与行之间多了一个空行。这是因为文件每一行的默认都有换行符,而print()方法也会输出换行,因此就多了一个空行。去掉空行也比较简单:可以用line.strip()去除字符串右边的换行符,也可以通过print(line, end='')避免print方法造成的换行。

Python基础知识点整理_第8张图片

由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:

Python基础知识点整理_第9张图片

输出结果说明,尽管try代码块中出现了异常,但是”分母不能为0!“ 信息还是被打印了,说明finally代码块被执行,即文件关闭操作被执行。但是结果中错误信息还是被输出了,因此还是建议用一个完成的try...except...finally语句对异常信息进行捕获和处理。

每次都这么写实在太繁琐,所以,Python引入了with open as语句来自动帮我们调用close()方法:

Python基础知识点整理_第10张图片

这和前面的try ... finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。

2、文件对象方法函数

文件对象使用 open()函数来创建,下表列出了 file 对象常用的函数:

Python基础知识点整理_第11张图片

五、OS模块常用函数

你可能感兴趣的:(Python基础知识点整理)