Форум сайта python.su
Здравствуйте!
Пытаюсь изучать. Застряла на задании.
“”“Задача: Написать программу с повторяющимся запросом пользователя на ввод целого числа пока ввод не будет ”Готово“. После ввода ”Готово“ нужно вывести (print out) наименьшее и наибольшее числа.
И ещё условие: если ввод не является числом, выдать сообщение об ошибке и проигнорировать введенное число.
Ну и, разумеется, присутствует ожидаемый результат, т.е. итог должен совпасть со следующим выводом:
Invalid input
Maximum is 7
Minimum is 4
Стартовый набросок:
largest = None
smallest = None
while True:
num = raw_input(”Enter a number: “)
try:
num = int(num)
except:
print ”Invalid input“
continue
if num == ”done“ : break
print num
print ”Maximum“, largest
Как новичок, я уже ”разбилась"(
Офлайн
res = [] while True: num = input('Введите число ') if num == 'Готово': print('Maximum: ', max(res)) print('Minimum: ', min(res)) break try: res.append(int(num)) print(res) except ValueError: print('Повторите ввод')
Отредактировано werter (Июль 6, 2015 12:19:06)
Офлайн
Спасибо большое.
Пока нужно обходить создание списка и использование функций(
Кстати, в какой момент программа прекратит просить числа и выведет min/max из списка?
Здесь тот самый момент, когда маленькие кусочки отдельно работают, а как их правильно “сшить” в большой ни малейшего понятия!(
Офлайн
Abeille
После ввода ”Готово“ нужно вывести (print out) наименьшее и наибольшее числа.
Отредактировано werter (Июль 6, 2015 12:34:48)
Офлайн
>>> Кстати, в какой момент программа прекратит просить числа и выведет min/max из списка?
Всё ясно. Ввожу “Готово”
Только в этом случае нужно предупредительный str что-ли чтобы пользователю было ясно, когда он может остановиться.
Офлайн
И ещё - в IDLE всё работает, а в консоли нет (не определено значение “Готово”).
Офлайн
Я уже измучилась. Мне нужно получить именно вот это как результат на экране:
Invalid input
Maximum is число
Minimum is число
Поперекраивала все вдоль и поперек, уже и не помню, где было удачно, а где провал. Остановилась здесь:
largest = None
smallest = None
while True:
num = raw_input(“Enter a number: ”)
try:
num = int(num)
print num
except ValueError:
print('Invalid input')
if num == ‘done’:
print ‘Maximum is ’, max
print ‘Minimum is ’, min
break
print “Maximum”, largest
Все ерунда( Результат вывода на экран при нужных мне условиях:
Invalid input
4 ← Mismatch
7
Invalid input
Maximum is <unknown>
Minimum is <unknown>
Maximum None
Хочу сдаться, но очень обидно)
Только начала))
Офлайн
>>> def f(): ... xmin = xmax = None ... ... while True: ... s = raw_input('Enter a number: ') ... if s == 'done': ... break ... try: ... num = int(s) ... if xmin is not None: ... if num > xmax: ... xmax = num ... if num < xmin: ... xmin = num ... else: ... xmin = xmax = num ... except ValueError: ... print 'Invalid input' ... ... print 'Maximum', xmax, 'Minimum', xmin ... >>> f() Enter a number: a Invalid input Enter a number: 1 Enter a number: 2 Enter a number: 3 Enter a number: 4 Enter a number: b Invalid input Enter a number: 5 Enter a number: 6 Enter a number: 7 Enter a number: 1 Enter a number: 2 Enter a number: 3 Enter a number: 4 4 Invalid input Enter a number: 4 Enter a number: 5 Enter a number: done Maximum 7 Minimum 1 >>>
Офлайн
Спасибо.
Попробую this way)
Офлайн
Всем огромнейшее спасибо!
Офлайн