Abeille
Июль 6, 2015 11:26:51
Здравствуйте!
Пытаюсь изучать. Застряла на задании.
“”“Задача: Написать программу с повторяющимся запросом пользователя на ввод целого числа пока ввод не будет ”Готово“. После ввода ”Готово“ нужно вывести (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
Как новичок, я уже ”разбилась"(
werter
Июль 6, 2015 12:14:17
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('Повторите ввод')
Abeille
Июль 6, 2015 12:29:05
Спасибо большое.
Пока нужно обходить создание списка и использование функций(
Кстати, в какой момент программа прекратит просить числа и выведет min/max из списка?
Здесь тот самый момент, когда маленькие кусочки отдельно работают, а как их правильно “сшить” в большой ни малейшего понятия!(
werter
Июль 6, 2015 12:34:36
Abeille
После ввода ”Готово“ нужно вывести (print out) наименьшее и наибольшее числа.
Abeille
Июль 6, 2015 12:36:31
>>> Кстати, в какой момент программа прекратит просить числа и выведет min/max из списка?
Всё ясно. Ввожу “Готово”
Только в этом случае нужно предупредительный str что-ли чтобы пользователю было ясно, когда он может остановиться.
Abeille
Июль 6, 2015 12:40:33
И ещё - в IDLE всё работает, а в консоли нет (не определено значение “Готово”).
Abeille
Июль 6, 2015 13:18:53
Я уже измучилась. Мне нужно получить именно вот это как результат на экране:
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
Хочу сдаться, но очень обидно)
Только начала))
py.user.next
Июль 6, 2015 14:00:40
>>> 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
>>>
Abeille
Июль 6, 2015 14:15:52
Спасибо.
Попробую this way)
Abeille
Июль 6, 2015 15:30:23
Всем огромнейшее спасибо!