I have been taking Coursera's course, Programming for Everybody with Python. But one of the assignment 5.2 on week 7 got my attention.
The objective is to make the user enter some numbers and enter done, when he entered all the numbers he wanted. After that, the output should be the biggest number and smallest number he entered.
Here is the problem. If I enter a negative number it is not displayed. Let's say I enter: 32, 55,10, -2 76. The output should be 76 and -2. But what really happens is that 76 and 10 are printed out.
Do you guys have any idea why this happens?
Here is the code.
largest = None
smallest = None
while True:
try:
num = input("Enter a number: ")
if num == "done":
break
print (num)
num = int(num)
for number in range(num):
if largest is None or largest < num:
largest = num
continue
elif smallest is None or smallest > num:
smallest = num
except ValueError:
print("Please, enter only numbers.")
print ("Maximum", largest)
print ("Minimum", smallest)
Well,the issue is that why are you iterating over an int if it isnt a list? You can rather do it with out a loop:
largest = None
smallest = None
while True:
try:
num = input("Enter a number: ")
if num == "done":
break
print (num)
num = int(num)
if largest is None or largest < num:
largest = num
elif smallest is None or smallest > num:
smallest = num
except ValueError:
print("Please, enter only numbers.")
print ("Maximum", largest)
print ("Minimum", smallest)
output:
Enter a number: 12
12
Enter a number: 56
56
Enter a number: 34
34
Enter a number: -2
-2
Enter a number: 17
17
Enter a number: done
Maximum 56
Minimum -2