创建Compute类,该类中有一个计算两个数的最大公约数的方法,如果向该方法传递负整数, 该方法就会抛出自定义异常
时间: 2024-06-09 20:07:06 浏览: 8
下面是一个实现了上述要求的Compute类的示例代码:
```python
class NegativeNumberError(Exception):
pass
class Compute:
@staticmethod
def gcd(a, b):
if a < 0 or b < 0:
raise NegativeNumberError("不能传递负整数!")
while b != 0:
a, b = b, a % b
return a
```
在这个示例代码中,我们首先定义了一个自定义异常类`NegativeNumberError`,它继承自Python内置的`Exception`类。然后我们定义了一个名为`Compute`的类,并在其中定义了一个名为`gcd`的静态方法,用于计算两个数的最大公约数。在该方法的实现中,我们首先检查传入的参数是否为负数,如果是,则抛出自定义异常`NegativeNumberError`。如果参数均为非负整数,则我们使用欧几里得算法计算它们的最大公约数,并返回结果。
你可以按照以下方式使用该类:
```python
try:
result = Compute.gcd(36, 24)
except NegativeNumberError as e:
print(e)
else:
print(result) # 输出 12
try:
result = Compute.gcd(36, -24)
except NegativeNumberError as e:
print(e) # 输出 "不能传递负整数!"
else:
print(result)
```
在第一个例子中,我们传递了两个正整数给`gcd`方法,它会返回它们的最大公约数。在第二个例子中,我们传递了一个正整数和一个负整数,因此`gcd`方法会抛出自定义异常`NegativeNumberError`。在这种情况下,我们的代码会捕获该异常,并输出相应的错误信息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)