"""补充练习:自然数、整数、有理数、实数及加减乘除。 输入:一行整数 n;一行两个分数(如 1/2 3/4);一行两个实数。 学习说明: - 数系逐层包含:整数是有理数的一部分,有理数又属于实数;本练习将 0 也算作自然数。 - Fraction 可以精确保存分数,例如 1/2 + 1/3 会得到 5/6,而不是近似小数。 - float 表示常见十进制小数,计算结果可能有少量二进制浮点误差。 - 分别输出加、减、乘、除;除法前先判断除数是否为 0。 """ from fractions import Fraction n = int(input()) # Fraction 接收形如 1/2 的分数字符串;float 接收小数。 rational_a, rational_b = map(Fraction, input().split()) real_a, real_b = map(float, input().split()) print("integer:", n) print("is natural (including 0):", n >= 0) print("integer is also rational and real:", True) print("rational type:", type(rational_a).__name__) print("real approximation type:", type(real_a).__name__) print("rational + - *:", rational_a + rational_b, rational_a - rational_b, rational_a * rational_b) if rational_b != 0: print("rational /:", rational_a / rational_b) else: print("rational /: undefined when divisor is 0") print("real + - *:", real_a + real_b, real_a - real_b, real_a * real_b) if real_b != 0: print("real /:", real_a / real_b) else: print("real /: undefined when divisor is 0")