编写 Python 程序,分别检测下下面3种情况是否能够成功触发异常,并输出提示信、 息。下1)将字符串转换为整数;(2)访问列表中超出索引范围的元素;(3)除数为0。
时间: 2024-09-26 11:08:36 浏览: 14
当然可以。在Python中,我们可以利用try-except结构来捕获并处理可能出现的异常。下面是针对三种情况的示例代码:
1. 将字符串转换为整数,如果字符串不是有效的数字,会引发`ValueError`异常:
```python
def convert_to_int(input_string):
try:
int_value = int(input_string)
print(f"字符串 '{input_string}' 成功转换为整数:{int_value}")
except ValueError as e:
print(f"错误:无法将'{input_string}' 转换为整数,原因:{e}")
convert_to_int("abc") # 这将尝试转换无效的字符串,会抛出异常
```
2. 访问列表中超出索引范围的元素,这会引发`IndexError`异常:
```python
my_list = [1, 2, 3]
try:
element = my_list[5] # 这里索引超出了范围,因为list长度只有3
print(f"访问了列表第 {5} 个元素:{element}")
except IndexError as e:
print(f"错误:试图访问列表的不存在的索引,原因:{e}")
my_list[-6] # 正确的负索引不会引发异常,但是这里假设列表实际更长
```
3. 除数为0,会引发`ZeroDivisionError`异常:
```python
try:
result = 10 / 0 # 这里尝试除以零,会抛出异常
print(f"结果是:{result}")
except ZeroDivisionError as e:
print(f"错误:除数不能为零,原因:{e}")
# 更安全的做法是检查除数而不是直接运算
divisor = 0
if divisor == 0:
print("避免除以零")
else:
result = 10 / divisor
```
在这三个例子中,当你运行它们时,对应的异常会被捕获并打印一条错误消息。
阅读全文