教程 python tutorial

类型转换与异常处理基础

在 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 程序的基础。