一.异常处理

常见异常:

Exception 常规错误的基类
AttributeError 对象没有这个属性
OSError 操作系统错误
IndexError 序列中没有此索引(index)
SyntaxError Python 语法错误
TypeError 对类型无效的操作
ValueError 传入无效的参数

什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
一般情况下,在Python无法正常处理程序时就会发生一个异常。
异常是Python对象,表示一个错误。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

try-except语法

finally的作用

raise自动抛出异常

在程序中,无论是否捕捉到异常,都必须要执行某件事情,例如关闭文件、释放锁等,这时候可以提供finally语句处理。通常情况下,finally用于释放资源。
用法:
1.使用类名抛出异常
2.使用异常类的实体抛出异常
3.传递异常(不带任何参数的raise语句,可以引发刚刚发生过的异常,作用是向外传递异常)
4.指定异常的描述信息
5.在一个异常中抛出另外的异常

用户自定义异常

通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。
以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。
在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。
class Networkerror(RuntimeError): def init(self, arg): self.args = arg
在你定义以上类后,你可以触发该异常,如下所示:
try: raise Networkerror(“Bad hostname”) except Networkerror,e: print e.args

二.GUI编程—使用PyQtt

信号与槽的使用

什么是模态对话框、半模态对话框、非模态对话框?

启动模态对话框时,例如弹出对话框强制用户从其他正在进行的业务中聚焦到当前对话框,除了该对话框整个应用程序窗口都无法接受用户响应。只有关闭和退出该模态界面,才可以访问本应用程序的其他界面和功能。 —模态
介于二者之间,冻结窗口界面,但其他应用继续执行响应。调用 setModal(true) 或者 setWindowModality(Qt::WindowModal),然后 show()。有别于 show() 立即返回给控制调用者。 —半模态
独立于同一应用程序中的其他窗口而运行的对话框。例如,文字处理程序中的查找和替换对话框通常是非模态的,以允许用户与应用程序的主窗口和对话框交互。 —非模态

三.正则表达式

元字符

^ 匹配字符串的开头
$ 匹配字符串的末尾。
. 匹配任意字符,除了换行符,当 re.DOTALL 标记被指定时,则可以匹配包括换行符的任意字符。
[…] 用来表示一组字符,单独列出:[amk] 匹配 ‘a’,’m’ 或 ‘k’
[^…] 不在[]中的字符:[^abc] 匹配除了 a,b,c 之外的字符。
re* 匹配 0 个或多个的表达式。
re+ 匹配 1 个或多个的表达式。
re? 匹配 0 个或 1 个由前面的正则表达式定义的片段,非贪婪方式
re{ n}
re{ n,} 精确匹配 n 个前面表达式。
re{ n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
a| b 匹配 a 或 b
(re) G 匹配括号内的表达式,也表示一个组
(?imx) 正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。
(?-imx) 正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。
(?: re) 类似 (…), 但是不表示一个组
(?imx: re) 在括号中使用 i, m, 或 x 可选标志
(?-imx: re) 在括号中不使用 i, m, 或 x 可选标志
(?#…) 注释.
(?= re) 前向肯定界定符。如果所含正则表达式,以 … 表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边。
(?! re) 前向否定界定符。与肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功
(?> re) 匹配的独立模式,省去回溯。
\w 匹配字母数字
\W 匹配非字母数字
\s 匹配任意空白字符,等价于 [\t\n\r\f].
\S 匹配任意非空字符
\d 匹配任意数字,等价于 [0-9].
\D 匹配任意非数字
\A 匹配字符串开始
\Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
\z 匹配字符串结束
\G 匹配最后匹配完成的位置。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, ‘er\b’ 可以匹配”never” 中的 ‘er’,但不能匹配 “verb” 中的 ‘er’。
\B 匹配非单词边界。’er\B’ 能匹配 “verb” 中的 ‘er’,但不能匹配 “never” 中的 ‘er’。
\n, \t, 等. 匹配一个换行符。匹配一个制表符。等
\1…\9 匹配第n个分组的子表达式。
\10 匹配第n个分组的子表达式,如果它经匹配。否则指的是八进制字符码的表达式。

贪婪模式:默认选项,匹配重复的元字符总是尽可能多的向后匹配内容

非贪婪模式:于贪婪正好相反,需要手工指定

re模块

re.compile—>产生正则表达式对象
re.findall—>返回包含字符串中所有于给定模式匹配的项的列表,如果表达式有子组则只能获取到子组对应的内容

四.Python连接数据库

五.网络编程-使用协议(TCP、UDP)

六.多(进)线程并发