SDUT—Python程序设计实验9(模块与包)

7-1 sdut-分数的化简

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

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

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

输入样例:

6/9
-2/4
2/-100
-4/-6
0/1000

输出样例:

2/3
-1/2
-1/50
2/3
0

代码:

from fractions import *

while True:
    try:
        x, y = map(int, input().split('/'))
        print(Fraction(x, y))
    except:
        break

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/25
-1/4
0
1
1

代码:

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)

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
-1/4
0

代码:

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

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

from fractions import Fraction
或者
from fractions import *

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

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

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值