答:
在Python中,异常是指在执行代码时发生的错误或异常情况,这可能会导致程序终止或产生意外结果。在Python中,可以使用异常处理机制来捕获和处理这些异常,从而使程序更加健壮并能够处理各种不同的错误情况。一些常见的异常包括名称错误、类型错误、索引错误、零除错误等。
基本语法
快速入门
"""
演示捕获异常
"""
# 捕获所有异常,写法一
try:
f = open("abc.txt", "r", encoding="UTF-8")
except:
print("出现异常了,因为文件不存在,修改打开文件的模式")
f = open("abc.txt", "w", encoding="UTF-8")
# 捕获所有异常,写法二
try:
f = open("abc.txt", "r", encoding="UTF-8")
except Exception as e:
print(f"出现异常了{e},因为文件不存在,修改打开文件的模式")
f = open("abc.txt", "w", encoding="UTF-8")
# 未正确设置捕获异常类型,将无法捕获异常
# 捕获指定的异常
try:
# 下面这个会被接收
print(name)
# 下面被注释的代码不会被接收
# 1 / 0
except NameError as e:
print(f"出现了变量未定义的异常:{e}")
# 捕获多个异常
try:
# 下面这个会被接收
print(name)
# 下面的代码会接收
1 / 0
except (NameError, ZeroDivisionError) as e:
print(f"出现了变量未定义或者除零的异常:{e}")
# 异常else
try:
f = open("asss.txt", "r", encoding="UTF-8")
except Exception as e:
print("出现异常了")
else:
print("好搞笑,居然没有异常")
# 异常finally
try:
f = open("asss.txt", "r", encoding="UTF-8")
except Exception as e:
print("出现异常了")
else:
print("好搞笑,居然没有异常")
finally:
print("我就是要执行@!!")
f.close()
"""
异常的传递
"""
# 定义一个出现异常的方法
def fun1():
print("fun1开始执行")
num = 1 / 0
print("fun1结束执行")
# 定义一个无异常的方法,调用上面的方法
def fun2():
print("fun2开始执行")
fun1()
print("fun2结束执行")
# 定义一个方法,调用上面的方法
def main():
try:
fun2()
except Exception as e:
print(f"出现异常了,异常的信息是:{e}")
main()
基本语法
除了使用 ' . ' 这个符号来使用方法
还可以
还有一个通配符
as起别名
上述几点的代码示例
"""
模块
"""
# 导入了Python内置的time模块(time.py)这个文件
import time
# 睡眠五秒钟
print('我浅浅睡5s')
time.sleep(5)
print('我直接苏醒!!!')
from time import sleep
print('我浅浅睡5s')
sleep(5)
print('我再次苏醒!!!')
# 使用*导入全部方法
from time import *
print('我浅浅睡5s')
sleep(5)
print('我再次苏醒!!!')
# 使用as改名
import time as t
print('我浅浅睡5s')
t.sleep(5)
print('我再次苏醒!!!')
from time import sleep as sp
print('最后睡5s')
sp(5)
print('醒了')
但是导入一般都写在真个代码的开头哦~~
主体代码
"""
自定义模块
"""
# 导入自定义模块使用
"""
import my_module1
my_module1.test(1, 2)
"""
# 导入不同模块的同名功能
"""
from my_module1 import test
from my_module2 import test
test(1, 2)
"""
# __main__ 变量
# from my_module1 import test
# __all__ 变量
from my_module1 import *
test1(1, 2)
# test2(1, 2) 不在all里面,不行,但是还是可以自己手动导入
my_module1.py
__all__ = ["test1"]
def test1(a, b):
print(a + b)
def test2(a, b):
print(a - b)
# test(1, 2)
if __name__ == '__main__':
test1(1, 2)
my_module2.py
def test(a, b):
print(a - b)
网速太慢怎么办?那就这样干!
也可以在pycharm中安装我就不演示了
参考代码
my_package包内容
file_util.py
def print_file_info(file_name):
"""
打印文件的全部内容
:param file_name: 文件路径
"""
f = None
try:
f = open(file_name, 'r', encoding="UTF-8")
r = f.read()
print(f"文件的全部内容如下\n {r}")
except Exception as e:
print(f"文件不存在{e}")
finally:
if f:
f.close()
def append_to_file(file_name, data):
"""
将数据追加写入到文件中去
:param file_name: 文件路径
:param data: 追加数据
:return:
"""
try:
f = open(file_name, "a", encoding="UTF-8")
f.write(data)
except FileNotFoundError as e:
print(f"文件未找到{e}")
finally:
f.close()
if __name__ == '__main__':
print_file_info("D:\\IOText\\b.txt")
append_to_file("D:\\IOText\\b.txt", "I love ly")
print_file_info("D:\\IOText\\b.txt")
str_util.py
"""
字符串相关工具
"""
def str_reverse(s):
"""
将字符串反转返回
:param s: 将被反转的字符串
:return: 反转之后的字符串
"""
return s[::-1]
def substr(s, x, y):
"""
按照下标xy对文件进行切片
:param s: 将被切片的字符串
:param x: 切片的开始下标
:param y: 切片的终止下标
:return:
"""
return s[x:y:1]
"""
测试
"""
if __name__ == '__main__':
print(str_reverse("jwg evol yl"))
print(substr("ly love gwj", 0, 2))
主题调用测试
"""
演示异常、模块和包的案例
"""
import my_utils.str_util as str
from my_utils import file_util
print(str.str_reverse("迈首科技"))
print(str.substr("masoul", 0, 4))
file_util.print_file_info("D:\\IOText\\b.txt")
file_util.append_to_file("D:\\IOText\\b.txt", "李悦也爱我")
file_util.print_file_info("D:\\IOText\\b.txt")
其实Python这些操作和java的操作也是挺相似的,所以编程语言一通万物通加油吧各位!!!
拜拜
ヾ( ̄▽ ̄)Bye~Bye~