Форум сайта python.su
0
Всем привет,
Не могу довести задачу до логического конца, помогите кто сможет.
Задача.(Максимум последовательности, только Цикл while)
Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение наибольшего элемента последовательности.
Код
i = 0
while i < 20:
n = int(input())
i += 1
print(i, ‘- ’, n)
if n == 0:
break
пример вводим: 54, 4, 65, 4, 9, 23, 92, 42, 6, 0, - ответ 92
Офлайн
88
seq = (54, 4, 65, 4, 9, 23, 92, 42, 6, 0) iseq = iter(seq) m, v = 0, -1 while v != 0: m = max(v, m) v = iseq.next() print m
Офлайн
857
>>> def f(seq): ... it = iter(seq) ... m = next(it, None) ... for i in it: ... if i > m: ... m = i ... return m ... >>> f([54, 4, 65, 4, 9, 23, 92, 42, 6, 0]) 92 >>>
Офлайн
103
seq = [54, 4, 65, 4, 9, 23, 92, 42, 6, 0] m, v = 0, seq.pop(0) while v != 0: if v > m: m = v v = seq.pop(0) print m
Офлайн
0
ShamanСпасибо за помощь.
Офлайн
0
py.user.nextСпасибо.
Офлайн
0
terabaytCпасибо за помощь.
Офлайн
857
2234
Но сегменты должны водиться с клавиатуры. n = int(input())
>>> def f(seq): ... it = iter(seq) ... m = next(it, None) ... for i in it: ... if i > m: ... m = i ... return m ... >>> def g(): ... res = input('enter: ') ... seq = map(int, res.split()) ... out = f(seq) ... return out ... >>> g() enter: 54 4 65 4 9 23 92 42 6 0 92 >>> g() enter: 2 3 1 0 3 >>>
2234Да, не стал делать цикл while :) И на ноль не стал ориентироваться, и на то, что числа натуральные.
и нет цикла While
>>> def f(): ... m = 0 ... n = 1 ... i = 0 ... while n: ... i += 1 ... n = int(input('enter n{}: '.format(i))) ... if n > m: ... m = n ... return m ... >>> f() enter n1: 52 enter n2: 4 enter n3: 65 enter n4: 4 enter n5: 9 enter n6: 23 enter n7: 92 enter n8: 42 enter n9: 6 enter n10: 0 92 >>>
Отредактировано py.user.next (Апрель 19, 2015 11:46:14)
Офлайн
0
Вопрос все ещё открыт.
Офлайн
0
Спаибо ещё раз.
Только подскажите что такое “def f():” я до этого ещё не дошол.
Офлайн