主题
类型转换与异常处理基础
在 Python 中,类型转换和异常处理是常用的编程技巧。类型转换允许你在不同的数据类型之间转换,而异常处理帮助你捕获程序中的错误,确保程序的稳定性。
类型转换
类型转换是将一个数据类型转换为另一个数据类型的过程。Python 提供了多种内建函数用于类型转换。
显式类型转换
通过内建的转换函数,你可以将一个类型的数据转换为另一个类型。
int()
:将数据转换为整数float()
:将数据转换为浮动数str()
:将数据转换为字符串list()
:将可迭代对象转换为列表tuple()
:将可迭代对象转换为元组set()
:将可迭代对象转换为集合
示例:
python
# 将字符串转换为整数
num_str = "123"
num = int(num_str)
print(num) # 输出: 123
# 将整数转换为浮动数
num = float(num_str)
print(num) # 输出: 123.0
# 将整数转换为字符串
num = 456
num_str = str(num)
print(num_str) # 输出: "456"
自动类型转换
在 Python 中,某些情况下 Python 会自动进行类型转换。例如,当你在一个表达式中使用不同类型的操作数时,Python 会自动将它们转换为兼容的类型。
python
x = 10 # 整数
y = 2.5 # 浮动数
result = x + y # 自动将 x 转换为浮动数
print(result) # 输出: 12.5
异常处理基础
在程序运行时,有时会发生错误,这些错误称为异常。Python 提供了异常处理机制,允许程序在发生异常时继续执行,而不是直接崩溃。
try-except
语句
try-except
语句用于捕获和处理异常。基本的语法结构如下:
python
try:
# 可能引发异常的代码
except ExceptionType:
# 异常处理代码
示例:
python
try:
a = 10 / 0 # 故意引发一个 ZeroDivisionError
except ZeroDivisionError:
print("不能除以零!")
输出:
不能除以零!
捕获多个异常
你可以在同一个 try
语句中捕获多个不同类型的异常:
python
try:
x = int(input("请输入一个数字: "))
y = 10 / x
except ValueError:
print("输入无效,请输入一个数字!")
except ZeroDivisionError:
print("不能除以零!")
在这个例子中,如果输入的是非数字,则会捕获到 ValueError
;如果输入的是 0,则会捕获到 ZeroDivisionError
。
使用 else
和 finally
else
:如果try
块没有发生异常,则会执行else
语句中的代码。finally
:无论是否发生异常,finally
块中的代码都会执行,通常用于资源的清理工作。
示例:
python
try:
x = 10 / 2
except ZeroDivisionError:
print("不能除以零!")
else:
print("计算成功!")
finally:
print("程序执行完毕!")
输出:
计算成功!
程序执行完毕!
自定义异常
你也可以自定义异常类来处理特定的错误。自定义异常类需要继承 Exception
类。
python
class MyError(Exception):
pass
try:
raise MyError("这是自定义异常!")
except MyError as e:
print(f"捕获到异常: {e}")
输出:
捕获到异常: 这是自定义异常!
总结
- 类型转换让你可以在不同的数据类型之间灵活转换。
- 异常处理帮助你捕获和处理程序中的错误,避免程序崩溃。
- 通过
try-except
语句,你可以处理已知的错误,使用else
和finally
进行额外的处理。
掌握类型转换与异常处理是编写健壮 Python 程序的基础。