0
私のプログラムでは、最初のmainとしてif文が書かれていますが、文字が入力されるたびにそれを数回入力する必要があり、変数num3とden3。python OOP if文に迷惑メールと変数が定義されていない
class menu:
def question():
prnt = print("Which equation would like to do? \n A: Inverse the fracion \n B: Add 2 fractions \n C: Subtract 2 fractions \n D: Multiply 2 fractions \n E: Divide 2 fractions \n F: Square a fraction \n")
def ask():
ask = input("")
return ask
class fractions:
def numerator():
ask = menu.ask()
if ask == "b" or menu.ask() == "B" or ask == "C" or ask == "c" or ask == "D" or ask == "d" or menu.ask() == "e" or menu.ask() == "e":
num1 = int(input("What is the first numerator? \n"))
num2 = int(input("What is the second numerator? \n"))
return num1
return num2
elif ask == "a" or ask == "A" or ask == "f" or ask == "F":
num1 = int(input("What is the numerator? \n"))
return num1
def denominator():
ask = menu.ask()
if mask == "b" or ask == "B" or ask == "C" or ask == "c" or ask == "D" or menu.ask() == "d" or menu.ask() == "e" or menu.ask() == "e":
den1 = int(input("What is the first denominator? \n"))
den2 = int(input("What is the second denominator? \n"))
return den1
return den2
elif ask == "a" or ask == "A" or ask == "f" or ask == "F":
den1 = int(input("What is the denominator? \n"))
return den1
class math():
def math1(a,b):
num3 = den1
den3 = num1
return num3
return den3
def math2(a,b):
if den1 == den2:
num3 = num1 + num2
den3 = den1
return num3
return den3
if den1 != den2:
num1 = num1 * den2
num2 = num2 * den1
den3 = den1 * den2
num3 = num1 + num2
return num3
return den3
def math3(a,b):
if den1 == den2:
num3 = num1 - num2
den3 = den1
return num3
return den3
elif den1 != den2:
den3 = den1 * den2
num1 = num1 * den2
num2 = num2 * den1
num3 = num1 - num2
return num3
return den3
def math4(a,b):
num3 = num1 * num2
den3 = den1 * den2
return num3
return den3
def math5(a,b):
num3 = num1 * den2
den3 = den1 * num2
return num3
return den3
def math6(a,b):
num3 = num1.fractions().numerator() ** 2
den3 = den1.fractions().denominator() ** 2
return num3
return den3
def reduce(a,b):
maxnum = 1000
while maxnum > 0:
if num3 % maxnum == 0 and den3 % maxnum == 0:
num3 = num3/maxnum
den3 = den3/maxnum
maxnum = maxnum - 1
return num3
return den3
def main():
start = menu.question()
ask = menu.ask()
Numer = fractions.numerator()
Duner = fractions.denominator()
if menu.ask() == "A" or menu.ask() == "a":
math.math1(Numer, Duner)
num3 = math.math1(num3)
den3 = math.math1(den3)
elif menu.ask() == "B" or menu.ask() == "b":
math.math2(Numer, Duner)
num3 = math.math2(num3)
den3 = math.math2(den3)
elif menu.ask() == "C" or menu.ask() == "c":
math.math3(Numer, Duner)
num3 = math.math3(num3)
den3 = math.math3(den3)
elif menu.ask() == "D" or menu.ask() == "d":
math.math4(Numer, Duner)
num3 = math.math4(num3)
den3 = math.math4(den3)
elif menu.ask() == "E" or menu.ask() == "e":
math.math5(Numer, Duner)
num3 = math.math5(num3)
den3 = math.math5(den3)
elif menu.ask() == "F" or menu.ask() == "f":
math.math6(Numer, Duner)
num3 = math.math6(num3)
den3 = math.math6(den3)
math.reduce(num3, den3)
print(num3, '/', den3)
main()
if文の最初のセットは、大文字と小文字の両方でa〜fの文字をカバーします。
OPが代わりに 'bcde''の' ask.lower()を使用することを示唆するのはいいでしょうか? –
@leaf - これは、リンクされた質問のトップ答えです。ここでは、入力の検証を改善するためのすべての可能な方法を検討したくありませんでした。 – TigerhawkT3
私は変更を行い、if文のためには完全に機能しますが、今度は分子を要求して最後のものを入力すると空白になり、分母が現れません。 –