6-6 Python - 0027 分数 15  全屏浏览题目 作者 樊志伟 单位 许昌学院 本题要求实现一个函数,可将两个相同长度列表中的元素依次相除,返回结果列表。例如[6, 12, 24] 和 [3, 4, 6] 的元素依次相除得到 2, 3, 4 ,则该函数返回 [2, 3, 4] 。该函数对异常的处理如下: 该函数应能在内部消化掉被除数为0的异常 ZeroDivisionError ,应将其结果统一为float('nan')。 对于其他的异常,统一抛出自定义的ValueError异常(包含异常信息"get_ratios called with bad arg")。 函数接口定义: def get_ratios(L1, L2) 其中 L1 和 L2 都是列表,元素类型为int。 裁判测试程序样例: # 请在这里填写答案 L1 = map(int, input().split(" ")) L2 = map(int, input().split(" ")) try: print(get_ratios(L1, L2)) except Exception as e: print(e) 输入样例1: 1 4 2 4 输出样例1: [0.5, 1.0] 输入样例2: 1 4 2 0 输出样例2: [0.5, nan] 输入样例3: 1 4 5 2 3 输出样例3: get_ratios called with bad arg 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
时间: 2024-03-20 13:42:53 浏览: 171
专题资料(2021-2022年)IxD2013A6设计提升品牌价值崔志伟阮磊.doc
以下是实现 get_ratios 函数的 Python 代码:
```python
def get_ratios(L1, L2):
ratios = []
for i in range(len(L1)):
try:
ratios.append(L1[i]/float(L2[i]))
except ZeroDivisionError:
ratios.append(float('nan'))
except:
raise ValueError("get_ratios called with bad arg")
return ratios
```
该函数接收两个相同长度的列表 L1 和 L2,遍历列表中的每个元素,计算 L1[i]/L2[i] 的值,并将结果存储在 ratios 列表中。如果 L2[i] 为 0,则捕获 ZeroDivisionError 异常,并将 ratios[i] 赋值为 float('nan')。如果发生其他异常,则抛出自定义的 ValueError 异常。最后返回 ratios 列表。
阅读全文