把try except语句加入刚刚的代码
时间: 2023-11-27 14:21:21 浏览: 65
可以使用`try`和`except`语句来捕获可能出现的异常情况,比如输入的小组人数非法或者名单为空。以下是一个修改后的示例代码:
```python
import random
def random_grouping(num_groups, name_list):
try:
# 计算每组的人数
group_size = len(name_list) // num_groups
# 洗牌,打乱名单顺序
random.shuffle(name_list)
# 分组
groups = [name_list[i:i+group_size] for i in range(0, len(name_list), group_size)]
# 将多余的人随机分到各组中
for i in range(len(name_list) % num_groups):
groups[i].append(name_list[-i-1])
return groups
except (ZeroDivisionError, ValueError, TypeError) as e:
print(f"Error: {e}")
return None
```
在这个示例中,我们使用了`try`语句来尝试执行代码,如果出现了`ZeroDivisionError`、`ValueError`或`TypeError`异常,就会跳转到`except`语句块中,打印出异常的信息,并返回`None`表示出现了错误。这样,我们就能够更加友好地处理异常情况了。
使用示例:
```python
name_list = ['Tom', 'Jerry', 'Mike', 'John', 'Lucy', 'Amy', 'Jack', 'Kate', 'Bob', 'Alice', 'Lisa']
num_groups = 0
groups = random_grouping(num_groups, name_list)
if groups:
for i in range(num_groups):
print(f"Group {i+1}: {groups[i]}")
else:
print("Failed to generate groups.")
```
输出结果可能如下:
```
Error: division by zero
Failed to generate groups.
```
在这个示例中,我们将小组人数设置为0,这是一个非法值,会导致`ZeroDivisionError`异常。程序会跳转到`except`语句块中,打印出异常信息,并返回`None`表示生成小组失败。
阅读全文