定义一个Tool类, 类中有一个方法isDaffodil(),可以判断用户给的一个3位数是不是水仙花数,并返回true或者false
时间: 2024-05-04 12:17:59 浏览: 94
以下是一个定义了 `Tool` 类的 Python 代码,其中包含了 `isDaffodil()` 方法:
```python
class Tool:
@staticmethod
def isDaffodil(number):
"""
判断一个3位数是不是水仙花数
Args:
number (int): 待判断的3位数
Returns:
bool: 如果是水仙花数,返回 True;否则返回 False
"""
if not isinstance(number, int):
raise TypeError("输入必须是整数!")
if number < 100 or number > 999:
raise ValueError("输入必须是一个3位数!")
# 计算每个位上数字的立方和
digit1 = number // 100
digit2 = (number - digit1 * 100) // 10
digit3 = number - digit1 * 100 - digit2 * 10
sum = digit1 ** 3 + digit2 ** 3 + digit3 ** 3
# 判断是否为水仙花数
return sum == number
```
这个方法使用了静态方法(`@staticmethod`)来定义,这样就不需要实例化 `Tool` 类就可以直接调用这个方法。在方法中,首先进行了一些输入的检查,确保传入的参数是一个 3 位数。接下来,我们计算每个位上数字的立方和,并判断是否等于原来的数,如果是则返回 True,否则返回 False。
阅读全文