📅  最后修改于: 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))
num_str = "0.5"
print(is_rational_number(num_str)) # 输出:是有理数
num_str = "1 12"
print(is_rational_number(num_str)) # 输出:不是有理数