Hello all, I´m new to Python and I´m having difficulty with a problem. I´m posting the problem below. Then, below that what I´m unsure of and what I think might be the problem.
Write a program that repeatedly prompts a user for integer numbers until the user enters ‘done’. Once ‘done’ is entered, print out the largest and smallest of the numbers. If the user enters anything other than a valid number catch it with a try/except and put out an appropriate message and ignore the number. Enter 7, 2, bob, 10, and 4 and match the output below.
while True:
num = 0
val = []
sval = input("Enter a number: ")
try:
fval = float(sval)
val.append(fval)
except:
print("Invalid Input")
continue
smallest = None
for fval in val:
if smallest is None:
smallest = val
elif val < smallest:
s = val
largest = None
for value in val:
if largest is None:
largest = value
elif value > largest:
l = value
print("Maximum is", l)
print("Minimum is", s)
I am unsure that my manner of creating an array to store the value accumulated from the user´s inputs are correct. I know that my variable l and s are not valid because of the cmd prompt´s comments; yet, I don´t know how else to pass the values into the string function.
I am applying your advice to my algorithm (I think), but the problem is I can´t connect the user input section of the algorithm to the processing of smallest and largest numbers.
I´ve tried using break but I keep getting “Invalid Input” (a failsafe for nonnumerical inputs) and I am unable to break out of part of the input.
What am I missing?
(Code is below)
while True:
small = 0
large = 0
sval = input('Enter a number: ')
try:
fval = float(sval)
except:
print("Invalid Input")
continue
if sval == 'done':
break
small = fval
smallest = None
if smallest is None:
smallest = small
elif small < smallest:
print("Minimum is", small)
largest = None
large = fval
if largest is None:
largest = large
elif large > largest:
print('Maximum is', large)
Okay. I have system for storing the value if it meets the standard of bigger or smaller than the currently saved value.
I think I´ve got everything set up nicely; HOWEVER, I continue to output “Invalid Input” after I enter my first number and I don´t know why. The only time “Invalid Input” should output is if the user inputs a non numeral. It output this every time with the exception of my break statement
Please help
#global values
largest = None
smallest = None
while True:
#incorporate user input in algorithm & provide option to exit algorithm
sval = input("Enter a number: ")
if sval == "Done":
break
#transform string to float, state conditions for determining largest and smallest number among user inputs
try:
sval = float(sval)
if largest < sval:
largest = sval
if smallest > sval:
smallest = sval
#if input is not float then output "Invalid Input" and continue with alogrithm
except:
print("Invalid Input")
continue
#output smallest and largest integers
print("Minimum is", smallest)
print("Maximum is", largest)
My problem now is that my break command is the result for both my Maximum and Minimum values. I´ve tried putting the break command with try and except as well as with my conditional statements. It returns “Done” for my Max and Min values. I´m researching break and I can´t find an answer. I don´t think I´m misunderstanding the function of it…but I must be. Please help. (Code is below)
#global values
largest = None
smallest = None
sval = 0
while True:
#incorporate user input in algorithm
sval = input("Enter a number: ")
#transform string to float, state conditions for determining largest and smallest number among user inputs
# & provide option to exit algorithm
try:
sval = int(sval)
except:
print("Invalid Input")
if sval == "Done":
break
#output smallest and largest integers
if largest is None: largest = sval
elif eval > largest: largest = sval
if smallest is None: smallest = sval
elif eval < smallest: smallest = sval
print("Maximum is", largest)
print("Minimum is", smallest)