for не выполняется

Рейтинг: 0Ответов: 1Опубликовано: 11.01.2023

Я пишу программу, чтобы складывать (как минимум) дроби. Пишу в программе Sublime Text 4. Код:

a = input("Format: 1/2 Input: ")
b = input("Input: ")
a.partition('/')
b.partition('/')
numberOn1 = int(a[0])
numberUnder1 = int(a[2])
numberOn2 = int(b[0])
numberUnder2 = int(b[2])
nullList = [0,1,2,3,4]
num = 0
operator = input("Operator: ")
if operator == '+':
    for n in nullList:
        fraction1 = ''
        fraction2 = ''
        num += 1
        if num % numberUnder1 == 0:
            if num % numberUnder2 == 0:
                oneMult = num / numberUnder1
                twoMult = num / numberUnder2
                numberOn1 = numberOn1 * oneMult
                numberOn2 = numberOn2 * twoMult
                fraction1 = numberOn1,'/',num
                fraction2 = numberOn2,'/',num
                print(fraction1,fraction2)
                break
        else:
            continue

print("End")
input()

Так в чём суть? Программа просто не производит действий из for. Я перенёс print из остального кода в for и узнал, что for вообще не выполняется. Ну и что делать?

Ответы

▲ 1

Если вы хотите складывать дроби и при этом сокращать их, то это можно сделать гораздо проще, тут не нужен ни for, ни nullList, вот мой пример как это можно сделать, он не идеален и не работает умножение с делением, но складывание и вычитание работает прекрасно:

from math import gcd

numberOn1, numberUnder1 = map(int, input("Format: 1/2 Input: ").split("/"))
numberOn2, numberUnder2 = map(int, input("Input: ").split("/"))

operator = input("Operator: ")

simplifier = gcd(numberUnder1, numberUnder2)
commonUnder = numberUnder1 * numberUnder2 // simplifier
commonOn = eval(str(numberOn1 * numberUnder2 // simplifier) + operator + str(numberOn2 * numberUnder1 // simplifier))
simplifier = gcd(commonOn, commonUnder)

print(commonOn // simplifier, "/", commonUnder // simplifier, sep="")
input("End\n")

а ваш код не работал, как раз таки из-за nullList, так как в нем было слишком мало значений