Форум сайта python.su
Здравствуйте! Недавно начал изучать Python. Если быть точнее это мой первый язык программирования.
Прошу помочь с решением задачи:
Задан список из целых чисел. Определить количество участков списка, на котором
элементы монотонно возрастают (каждое следующее число больше предыдущего).
Заранее спасибо за помощь!
Офлайн
Ваши попытки есть? Выкладывайте…
Офлайн
Ну если я правильно понимаю суть задачи, то нужно сравнивать два идущим друг за другом элемента списка. Монотонность возрастания это не меньше трех элементов. Вот примерно такие наработки:
spisok=
n=15
from random import randint
for i in range(n):
i=randint(0,20)
spisok.append(i)
print(spisok)
count=0
rez=0
for j in range(n-1):
a=spisok
b=spisok
if b>a:
count+=1 #вот начиная отсюда, запутался
if count>=2 and b<a:
Офлайн
AndreiСравниваете списки, а ход мыслей правильныйa=spisok b=spisok if b>a:
Andrei
нужно сравнивать два идущим друг за другом элемента списка
Офлайн
не лучший пример, но с чего то можно начать:
import random list = [random.randint(0, 20) for el in range(20)] print(list) for i, el in enumerate(list): if i == len(list) - 1: break if el > list[i+1]: print(str(el) + ' больше чем следующее ' + str(list[i+1])) else: print(str(el) + ' не больше чем следующее ' + str(list[i+1]))
Офлайн
Почему то не получается вставить квадратные скобки в сообщении.
Извиняюсь, за то что не по теме
Офлайн
оборачивайте код в теги и будет Вам счастье
Офлайн
a=spisok[j] b=spisok[j+1]
Офлайн
if count>=2 and b<a:
Офлайн
Всем спасибо за помощь! Задачу решил вот так:
import random lst = [random.randint(0, 20) for el in range(40)] print(lst) result=0 count=0 for j in range(len(lst)-2): if lst[j+2] > lst[j+1] > lst[j]: count+=1 elif count>=1 and lst[j+1] > lst[j+2]: result+=1 count=0 if lst[-1] > lst[-2] > lst[-3]: result+=1 print(result)
Офлайн