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


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to