📜  1 12 是有理数吗?(1)

📅  最后修改于: 2023-12-03 15:29:08.465000             🧑  作者: Mango

判断一个数是否为有理数

本程序旨在判断一个数是否为有理数。针对输入的数,程序会对其进行解析,并返回是否为有理数的结果。

输入格式

程序接受一个字符串作为输入,字符串中只包含数字和一个小数点。注意,小数点不能出现在字符串的首位或末位,并且小数点只能出现一次。

输出格式

程序将返回有理数的判断结果,若为有理数则输出 "是有理数",若为非有理数则输出 "不是有理数"。

代码实现
def is_rational_number(num_str: str) -> str:
    """
    判断一个数是否为有理数
    :param num_str: 字符串形式的数字
    :return: 是否为有理数的字符串
    """
    # 判断小数点的位置和数量
    if num_str.count('.') != 1 or num_str.index('.') == 0 or num_str.index('.') == len(num_str) - 1:
        return "不是有理数"
    # 判断小数点前后的数字是否为整数
    if not num_str.replace('.', '').isdigit():
        return "不是有理数"
    return "是有理数"
使用方法

调用 is_rational_number 函数,输入字符串形式的数字即可得到是否为有理数的结果。

num_str = input("请输入一个数字:")
print(is_rational_number(num_str))
举例说明

1、输入为 "0.5",输出为 "是有理数"

num_str = "0.5"
print(is_rational_number(num_str))  # 输出:是有理数

2、输入为 "1 12",输出为 "不是有理数"

num_str = "1 12"
print(is_rational_number(num_str))  # 输出:不是有理数