本题要求实现一个函数,可将两个相同长度列表中的元素依次相除,返回结果列表。例如[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。python
时间: 2023-12-10 17:39:05 浏览: 94
实现如下:
```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
```
该函数首先创建一个空列表 ratios 用于存放结果。然后利用 for 循环依次遍历两个输入列表中的元素,将相邻的元素相除,并将结果添加到 ratios 列表中。在每次相除时,我们使用 try-except 语句捕获 ZeroDivisionError 异常(即除数为0)。如果捕获到该异常,我们将其结果设为 float('nan'),表示“非数字”(not a number)。如果捕获到其他异常,则抛出自定义的 ValueError 异常。最后,返回 ratios 列表。
相关问题
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
以下是实现 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 列表。
计算商和余数,应用除法运算符可以计算两个数的商,应用取余运算符可以计算两个数相除所得的余数。根据这两个运算符做一个数字转置的练习,将123的个数字顺序前后颠倒后进行输出。
在Python中,我们可以先将数字转换成字符串,然后根据字符串长度对每一位进行处理。下面是利用除法和取余操作实现数字转置的简单例子:
```python
def reverse_number(n):
# 将数字转换为字符串并获取其长度
str_n = str(n)
length = len(str_n)
# 通过循环依次取出每位数字,计算对应的反转位置
reversed_digits = [str_n[i] for i in range(length - 1, -1, -1)]
# 再次将反转后的字符组成新的数字
result = int(''.join(reversed_digits))
return result
# 使用函数计算123的反置数字
original_num = 123
reversed_num = reverse_number(original_num)
print(f"原始数字 {original_num} 反置后是 {reversed_num}")
```
运行这段代码会输出 `123` 反置后的数字。
阅读全文