(Python第七天)字符串操作和异常
需要一个程序来提取文件中的字符串中的数字,然后打印输出
任务:
1.使用open打开文件String.txt,并读取其中的字符串
2.提取字符串中的所有数字,并组合成一个新的字符串,然后打印输出
ps:使用isdigit()来判断字符是否为数字,并且使用循环来访问字符串中的单个字符
1 if __name__ == '__main__': 2 with open('G:\\PythonStudy\\String.txt') as f: 3 s=f.read() 4 res = "" 5 6 for char in s : 7 if char.isdigit(): 8 res+=char 9 print(res)
二、异常
在程序执行过程中发生的任何错误都是异常,每个异常显示一些相关的错误信息,如果在Python3中使用Python2独有的语法就会发生SyntaxError
1)当访问一个未定义的变量就会发生NameError
最后一行包含了错误的详细信息,其余行显示它是如何发生的详细信息
2)当操作或函数应用于不适当类型的对象时引发,比如对整数和字符串做加法,会出现TypeError
3)处理异常
使用try......except块来处理任意异常
try: statements to be inside try clause statement2 statement3 ... except ExceptionName: statements to evaluated in case of ExceptionName happens
首先执行try子句(在try和except关键字之间的部分),如果没有异常发生,except子句在try语句执行完毕后就被忽略,如果在try子句执行过程中发生了异常,那么该子句其余的部分就会被忽略,如果异常匹配于except关键字后面指定的异常类型,就执行对应的except子句,然后继续执行try语句之后的代码,如果发生了一个异常但是在except子句中没有与之匹配的分支,它就会传递到上一级的try语句中,如果最终任然找不到对应的处理语句,它就会成为一个未处理异常,终止程序运行,显示提示信息,比如
第三次按下了ctrl+c,导致了keyboardInterrupt异常发生,但是这个异常并未在except中捕获,因此程序执行被终止,一个空的execpt语句可以捕获任何异常。
4)抛出异常
使用raise语句抛出一个异常
5)定义清理行为
try语句中还有可选的finally子句,目的在于定义在任何情况下都一定要执行的功能,实际上是finally子句用于释放外部资源(文件或者网络连接之类的),无论他们的使用过程中是否出错