异常的处理:当发生错误时,或者我们称之为异常,python 通常会停止并生成错误消息。
try:允许你测试代码块是否有错误。
exce pt:允许你处理错误。
else:允许你在没有错误的情况下执行代码。
finally:允许你无论 try 和 except 的结果如何都执行代码。
x = 10 try: # 外层try...except... print(x) try: # 内层try...except... print(y) except: # 内层try...except...异常的处理 print("内层try...except...发现错误") finally: # 内层finally不管怎么样都会运行 print("内部try...except...已结束") except: # 外层try...except...异常的处理 print("外层try...except...发现错误") else: # 外层else,只要在没有异常时候会运行 print("我是else,外层try...except...没有错误") finally: # 外层finally不管怎么样都会运行 print("外层try...except...已结束")
异常的类型:掌握异常类型有助于精准捕获和处理错误。
- exception:大多数可处理异常的基类,其中常见的有。
- nameerror:引用未定义的变量或函数时触发。
print(x) # nameerror: name 'x' is not defined
- typeerror:操作或函数应用于不兼容类型的对象时触发。
print(1 + "a") # typeerror: unsupported operand type(s) for +: 'int' and 'str'
- zerodivisionerror:数值计算相关错误,除法或取模运算中除数为 0 时触发。
print(10 / 0) # zerodivisionerror: division by zero
- nameerror:引用未定义的变量或函数时触发。
- keyboardinterrupt:用户中断
- systemexit:程序退出
包管理器:pip 是 python 包的包管理器,什么是包?一个包包含模块所需的所有文件。模块是可以在项目中包含的 python 代码库。
- 检查 pip 是否已安装:打开电脑的命令提示符,在命令行中导航到 python 脚本目录的位置,然后键入以下内容,pip --version,可检查 pip 版本。
- 下载包:下载包非常容易。打开命令行界面,并告诉 pip 下载你想要的包。在命令行中导航到 python 脚本目录的位置,然后键入以下内容,pip install camelcase,这样就下载了名为“camelcase”的包。安装包时,通过
-i参数指定镜像源,pip install 包名 -i 镜像源地址。以下是国内稳定且常用的 pypi 镜像源。 - 使用包:安装包后,就可以使用了。将“camelcase”包导入你的项目。
import camelcase c = camelcase.camelcase() txt = "hello world" print(c.hump(txt))
移除包:pip uninstall camelcase,卸载名为“camelcase”的包。pip 包管理器将询问你是否要确认移除 camelcase 包,按
y,包将被移除。列出包:pip list,使用
list命令列出系统上安装的所有包。也可以输入pip freeze > requirements.txt,以txt文件导出自己的安装的包名。
正则表达式:正则表达式,或简称为正则,是用来描述字符模式的字符序列。正则表达式可以用来检查字符串是否包含指定的搜索模式。是个独有的工具:用来匹配或者提取字符串。不属于python基础。属于编程基础。
- 正则表达式模块:re模块。
- findall方法:在字符串中找到正则表达式所匹配的所有子串,并返回一个列表
,如果没有找到匹配的,则返回空列表。a = "python123123145java" print(re.findall("12", a)) print(re.findall("12a", a)) - match方法:尝试从字符串的起始位置匹配一个模式,匹配成功返回的是一个匹配
对象(这个对象包含了我们匹配的信息),如果不是起始位置匹配成功的话,match()返回的是空。a = "python123123java" data = re.match('python',a) # 得到的是一个对象,要用group()方法进行处理 print(data.group()) data2 = re.match('ython',a) print(data2.group()) # 这里会报错,因为返回的是一个空值 - search方法:扫描整个字符串,匹配成功返回的是一个匹配对象(这个对象包含了我们匹配的信息),注意:search也只能匹配到一个,找到符合规则的就返回,不会一直往后找。
a = "python123123java" data = re.search('python',a) # 得到的是一个对象,我们要用group()方法进行处理 print(data.group()) data2 = re.search('ython',a) print(data2.group())
- findall方法:在字符串中找到正则表达式所匹配的所有子串,并返回一个列表
- 元字符:
- 单字符匹配:
字符 描述 . 匹配任意1个字符(除了\n) [] 匹配 [] 中列举的字符 \d 匹配数字,即0-9 \d 匹配非数字,即不是数字 \s 匹配空白,即 空格,tab键 \s 匹配非空白 \w 匹配单词符,即a-z、a-z、0-9、_ \w 匹配非单词字符 b = '张三天天在玩4399小游戏,张三 hello 玩的.很开心' print(re.findall('...', b)) print(re.findall('[三小]', b)) print(re.findall('\d\d', b)) print(re.findall('\d', b)) print(re.findall('\s', b)) print(re.findall('\s', b)) print(re.findall('\w', b)) print(re.findall('\w', b)) - 代表数量的元字符:
字符 描述 * 匹配前一个字符出现0次或者无限次,即可有可无 + 匹配前一个字符出现1次或者无限次,即至少有1次 ? 匹配前一个字符出现0次或者1次,即要么有1次,要么没有 {m} 匹配前一个字符出现m次 {m,} 匹配前一个字符至少出现m次 {m,n} 匹配前一个字符出现从m到n次 b = '张三天在玩4399小游戏,张三三三 hello 玩的.很开心' print(re.findall(r'三{1}',b)) # 匹配前一个字符出现2次 print(re.findall(r'三{1,}',b)) # 匹配前一个字符至少出现1次 print(re.findall(r'三{1,2}',b)) # 匹配前一个字符出现从1到2次 贪婪和非贪婪:正则默认都是用贪婪模式去匹配数据,就是尽可能的多去匹配符合要求的数据,在非贪婪模式下,始终找最短的匹配。
a = '<img src = "xiaopengyou.jpg" alt="这是图片">' b = '<html>000</html><td>ddd</td>' print(re.findall(r'<.*>',b))# 贪婪 print(re.findall(r'<.*?>',b))# 加上?变成非贪婪
- 代表边界的元字符:
字符 描述 ^ 匹配字符串开头 $ 匹配字符串结尾 \b 匹配一个单词的边界 \b 匹配非单词边界 - 分组匹配:
字符 描述 \| 匹配左右任意一个表达式 (ab) 将括号中的字符作为一个分组
- 单字符匹配:
到此这篇关于python异常处理、包管理器和正则表达式的文章就介绍到这了,更多相关python异常处理、包管理器和正则表达式内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论