Exercize to understand from three numbers which is more high

Terry Reedy tjreedy at udel.edu
Fri Jan 25 16:23:29 EST 2019


On 1/25/2019 6:56 AM, ^Bart wrote:
> number1 = int( input("Insert the first number: "))
>> number2 = int( input("Insert the second number: "))
>> number3 = int( input("Insert the third number: "))
>> if number1 > number2 and number1 > number3:
>     print("Max number is: ",number1)
>> if number2 > number1 and number2 > number3:
>     print("Max number is: ",number2)
>> else:
>         print("Max number is: ",number3)
>> Try to insert numbers 3, 2 and 1 and the result will be number 3 and 1, 
> can you help me to fix it?

In my experience based on decades of writing programs...
1. The assignment/exercise/problem should be a write a function with a 
particular signature. So first decide on the signature.
def max3(n1, n2, n3):
 "Return the max of the three inputs."
 return None # To be replaced.
2. The next thing to do is to WRITE A TEST. Any course that does not 
pound this into your head is defective.
In this case, use the numbers 1, 2, 3. There are 6 permutations of 3 
items, so list them explicitly. (For more than 3, up to some reasonable 
limit, use itertools.permutations.)
trios = ((1,2,3), ..., (3,2,1)) # Replace ... with the other 4.
for trio in trios:
 m = max3(*trio)
 if m != 3:
 print(f"Error: max3(*{m}) is {m}, not 3.")
print("Test done")
Note: after removing '...,' from trios, I followed my advice and tested 
the above by running it, and caught a couple of typos and improved the 
error message. Replacing 'None' and '...' is your job.
3. The test will initially fail 6 times. Good. Now edit the body of 
max3 until there are none.
4. Worrying about external input comes last.
-- 
Terry Jan Reedy


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /