📅  最后修改于: 2023-12-03 14:38:52.296000             🧑  作者: Mango
在数学中,有理数是指可以表示为两个整数之比的数,如1/2、7/3等等。而无理数则是无法表示为有限的整数或者分数的数,如 $\pi$、 $\sqrt{2}$ 等等。那么 3 是有理数还是无理数呢?
我们可以将 3 表示为 $3/1$,明显它是两个整数之比,因此 3 是有理数。
因此,我们可以写出以下程序来判断一个数是否为有理数:
def is_rational(number):
"""
判断一个数是否为有理数
:param number: 待判断的数
:return: 若为有理数返回 True,否则返回 False
"""
if isinstance(number, int): # 如果是整数,则一定是有理数
return True
elif isinstance(number, float): # 如果是浮点数,则可能是有理数或无理数
if number.is_integer(): # 如果是整数,则一定是有理数
return True
else: # 如果是小数,则需要判断是否能化为分数
frac = Fraction.from_float(number)
return frac.denominator == 1 # 如果分母为 1,则说明是有理数,否则是无理数
elif isinstance(number, Fraction): # 如果是分数,则一定是有理数
return True
else:
return False # 其它情况均为无理数
以上程序中,我们使用 fractions
实现了浮点数到分数的转换。如果一个浮点数可以转换为分数,则说明它是有理数;否则它就是无理数。
以上程序的输出结果可以使用 Markdown 格式来显示。我们可以将返回的结果用以下方式标识:
判断 3 是否为有理数:
```python
print(is_rational(3)) # True
因为 3 可以表示为 $3/1$,是两个整数之比,因此 3 是有理数。
以上代码块中包含了程序输出的结果以及解释说明。