Question on if, while, for

Fred c at tech.usd253.org
Mon Feb 11 14:45:09 CET 2002

```Hello,

I have written a simple program that I want to simplify. I used if and
elif. But I am sure this can be simplified with for or while. Or what
if I wrote a function to do the testing?

Please DO NOT re-write this for me I want to figure it out for myself.
I would just like to know what is the BEST way to do it:

1) For loop (nested??)
2) While loop
3) Function
4) Leave it alone it's fine??

I am a rookie here learning Python with my son, very impressed so far!
Fred
-----------------------------------------------------------------------

num = input("Enter the numerator: ")
den = input("Enter the denominator: ")

if num > den:		#Test for improper fraction.
i = num/den		#This will only return the whole part, it discards
the remainder.
j = num%den		#This will return only the remainder.

if j != 0:		#If j is equal to 0 you will have a whole number, no
remainder,
#skips down to else.

#If j is not equal to 0, begin test to find lowest terms of the
fraction.
if j%9 == 0 and den%9 ==0:
a = j/9
b = den/9
print "You entered an improper fraction, simplified it is:
%d %d/%d" % (i,a,b)
#Prints the value of i, the whole part, reduces the fracton to lowest
terms and prints it.

elif j%8 == 0 and den%8 ==0:
a = j/8
b = den/8
print "You entered an improper fraction, simplified it is:
%d %d/%d" % (i,a,b)
elif j%7 == 0 and den%7 ==0:
a = j/7
b = den/7
print "You entered an improper fraction, simplified it is:
%d %d/%d" % (i,a,b)
elif j%6 == 0 and den%6 ==0:
a = j/6
b = den/6
print "You entered an improper fraction, simplified it is:
%d %d/%d" % (i,a,b)
elif j%5 == 0 and den%5 ==0:
a = j/5
b = den/5
print "You entered an improper fraction, simplified it is:
%d %d/%d" % (i,a,b)
elif j%4 == 0 and den%4 ==0:
a = j/4
b = den/4
print "You entered an improper fraction, simplified it is:
%d %d/%d" % (i,a,b)
elif j%3 == 0 and den%3 ==0:
a = j/3
b = den/3
print "You entered an improper fraction, simplified it is:
%d %d/%d" % (i,a,b)
elif j%2 == 0 and den%2 ==0:
a = j/2
b = den/2
print "You entered an improper fraction, simplified it is:
%d %d/%d" % (i,a,b)
elif j%1 == 0 and den%1 ==0:
a = j/1
b = den/1
print "You entered an improper fraction, simplified it is:
%d %d/%d" % (i,a,b)

else:
print "You entered an improper fraction, simplified it is: %d"
% (i)
#You have a whole number, which is stored in i, this prints it.
#If you typed in 4/2 you would be here.

#This section is for a proper fraction.
elif num%9 == 0 and den%9 ==0:
a = num/9
b = den/9
print "The fraction you entered is %d/%d in lowest terms." %
(a,b),

elif num%8 == 0 and den%8 ==0:
a = num/8
b = den/8
print "The fraction you entered is %d/%d in lowest terms." %
(a,b),

elif num%7 == 0 and den%7 ==0:
a = num/7
b = den/7
print "The fraction you entered is %d/%d in lowest terms." %
(a,b),

elif num%6 == 0 and den%6 ==0:
a = num/6
b = den/6
print "The fraction you entered is %d/%d in lowest terms." %
(a,b),

elif num%5 == 0 and den%5 ==0:
a = num/5
b = den/5
print "The fraction you entered is %d/%d in lowest terms." %
(a,b),

elif num%4 == 0 and den%4 ==0:
a = num/4
b = den/4
print "The fraction you entered is %d/%d in lowest terms." %
(a,b),

elif num%3 == 0 and den%3 ==0:
a = num/3
b = den/3
print "The fraction you entered is %d/%d in lowest terms." %
(a,b),

elif num%2 == 0 and den%2 ==0:
a = num/2
b = den/2
print "The fraction you entered is %d/%d in lowest terms." %
(a,b),

elif num%1 == 0 and den%1 ==0:
a = num/1
b = den/1
print "The fraction you entered is %d/%d in lowest terms." %
(a,b),

```