当前位置:   article > 正文

SDUT—Python程序设计实验9(模块与包)_sdut-oop-8 分数四则运算(类和对象)pta java

sdut-oop-8 分数四则运算(类和对象)pta java

7-1 sdut-分数的化简

输入一个分数,对该分数化简后输出其最简分式的形式。

输入格式:
输入有若干行,每行输入一个分数。

输出格式:
对每行输入,输出其真最简分式的形式。

输入样例:

6/9
-2/4
2/-100
-4/-6
0/1000
  • 1
  • 2
  • 3
  • 4
  • 5

输出样例:

2/3
-1/2
-1/50
2/3
0
  • 1
  • 2
  • 3
  • 4
  • 5

代码:

from fractions import *

while True:
    try:
        x, y = map(int, input().split('/'))
        print(Fraction(x, y))
    except:
        break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

7-2 sdut-oop-8 分数四则运算(类和对象)

定义类Fraction,在其中定义属性:numerator和denominator,分别表示分子和分母。
然定再定义两个分数的加、减、乘、除运算的方法。
在主类中输入2个分数,计算它们的四则运算结果。
提示:若用Python语言来实现,不必自行创建类,可直接使用fractions模块处理分数的表示与运算。

输入格式:
第一行是整数N,表示待进行分数四则运算式子的数量。接下来包含N行输入。
每行数据是一个字符串,格式是"a/boc/d"。
其中a, b, c, d为数字(每个数字保证在int类型范围内,为正数并且不存在正号)。o是运算符"+“或者”-“,”*“,”"。

输出格式:
对于每一行分数四则运算,输出一行计算结果。

注意:结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数形式。

输入样例:

5
1/100+3/100
1/4-1/2
1/3-1/3
1/2*2/1
1/2\1/2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

输出样例:

1/25
-1/4
0
1
1
  • 1
  • 2
  • 3
  • 4
  • 5

代码:

from fractions import *

n = int(input())
for i in range(n):
    s = input()
    if '+' in s:
        f1, f2 = map(str, s.split('+'))
        f3 = Fraction(f1) + Fraction(f2)
    elif '-' in s:
        f1, f2 = map(str, s.split('-'))
        f3 = Fraction(f1) - Fraction(f2)
    elif '*' in s:
        f1, f2 = map(str, s.split('*'))
        f3 = Fraction(f1) * Fraction(f2)
    elif '\\' in s:
        f1, f2 = map(str, s.split('\\'))
        f3 = Fraction(f1) / Fraction(f2)
    print(f3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

7-3 sdut-分数加减法

编写一个程序,实现两个分数的加减法。

输入格式:
输入包含多行数据。
每行数据是一个字符串,格式是"a/boc/d"。
其中a, b, c, d是一个0-9的整数。o是运算符"+“或者”-"。

输出格式:
对于输入数据的每一行输出两个分数的运算结果。

注意:结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数。

输入样例:
在这里给出一组输入。例如:

1/8+3/8
1/4-1/2
1/3-1/3
  • 1
  • 2
  • 3

输出样例:
在这里给出相应的输出。例如:

1/2
-1/4
0
  • 1
  • 2
  • 3

代码:

from fractions import *

while True:
    try:
        s = input()
        if '+' in s:
            f1, f2 = map(str, s.split('+'))
            f3 = Fraction(f1) + Fraction(f2)
        elif '-' in s:
            f1, f2 = map(str, s.split('-'))
            f3 = Fraction(f1) - Fraction(f2)
        print(f3)
    except EOFError:
        break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

下面是关于Fraction类的一些知识(化简分数就不需要用gcd了)

from fractions import Fraction
或者
from fractions import *
  • 1
  • 2
  • 3

实例化Fraction类的方法有下面几种:

1)Fraction(x,y)   #x,y均为整型,x为分子,y为分母2)Fraction(4.5)   #这里用的是浮点数,相当于Fraction(9,2)3)也可以使用str,即字符串类型
     Fraction('6/9') #相当于Fraction(2,3)
  • 1
  • 2
  • 3
  • 4

Fraction类可以自动约分分数,加减乘除和平时一样用就就行,返回的是分数的形式,乘方不太好用,会返回一个浮点数
212丨acc丨2022.11.25

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/195080
推荐阅读
相关标签
  

闽ICP备14008679号