что я должен сделать, чтобы исправить этот код, пожалуйста? В качестве вывода, я должен получить неверный ввод, а затем максимальное и минимальное значение - PullRequest
0 голосов
/ 26 апреля 2020
minimum = None
maximum = None
try:
    num = input("Enter a number: ")
    if num == done : break
except:
    print ("Invalid input")      

fval = float (num)
if fval > maximum:
        maximum = fval 
if minimum is None:
        minimum = fval
elif fval < minimum:
        minimum = fval
print("Maximum is", maximum)
print("Minimum is", minimum)

формулировка проблемы, которую я пытаюсь решить, заключается в следующем: напишите программу, которая неоднократно запрашивает у пользователя целые числа, пока пользователь не введет «готово». Когда введено «готово», распечатайте самое большое и самое маленькое из чисел. Если пользователь вводит что-либо, кроме действительного числа, поймайте его с помощью попытки / исключая и выведите соответствующее сообщение и проигнорируйте номер. Введите 7, 2, bob, 10 и 4 и сравните вывод ниже.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020
minimum = 10e+10 # cannot compare None and float
maximum = -10e+10
while True:
    try:
        num = input("Enter a number: ")
        if num == 'done' : break # your break is not in any loop
    except:
        print ("Invalid input")      

    fval = float (num)
    if fval > maximum:
            maximum = fval 
    # if minimum is None: # not needed
    #         minimum = fval
    if fval < minimum:
            minimum = fval
    print("Maximum is", maximum)
    print("Minimum is", minimum)
Enter a number: 2
Maximum is 2.0
Minimum is 2.0
Enter a number: 10
Maximum is 10.0
Minimum is 2.0
Enter a number: done
0 голосов
/ 26 апреля 2020

Так что вам нужно использовать какое-то время l oop, если вы пытаетесь выйти из него, вам также необходимо указать значение сделанной строки. Если вы запустите свой код, вы получите эту ошибку.

if num == 'done': break
                     ^
SyntaxError: 'break' outside loop

хорошо, так что это, вероятно, то, что вы ищете

minimum = 10e+10  # cannot compare None and float
maximum = -10e+10


while True:
    num = input("Enter a number: ")
    try:
        if num.isnumeric() or float(num):
            fval = float(num)
            if fval > maximum:
                maximum = fval
            # if minimum is None: # not needed
        #         minimum = fval
            if fval < minimum:
                minimum = fval
            print("Maximum is", maximum)
            print("Minimum is", minimum)
            continue
    except Exception as e:
        if num != 'done':
            print("Invalid input")
            continue
        elif num == 'done':
            break
...