Форум сайта python.su
0
Здравствуйте! Недавно начал изучать Python. Если быть точнее это мой первый язык программирования.
Прошу помочь с решением задачи:
Задан список из целых чисел. Определить количество участков списка, на котором
элементы монотонно возрастают (каждое следующее число больше предыдущего).
Заранее спасибо за помощь!
Офлайн
76
Ваши попытки есть? Выкладывайте…
Офлайн
0
Ну если я правильно понимаю суть задачи, то нужно сравнивать два идущим друг за другом элемента списка. Монотонность возрастания это не меньше трех элементов. Вот примерно такие наработки:
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:
Офлайн
76
AndreiСравниваете списки, а ход мыслей правильныйa=spisok b=spisok if b>a:
Andrei
нужно сравнивать два идущим друг за другом элемента списка
Офлайн
0
не лучший пример, но с чего то можно начать:
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]))
Офлайн
0
Почему то не получается вставить квадратные скобки в сообщении.
Извиняюсь, за то что не по теме
Офлайн
76
оборачивайте код в теги и будет Вам счастье
Офлайн
0
a=spisok[j] b=spisok[j+1]
Офлайн
76
if count>=2 and b<a:
Офлайн
0
Всем спасибо за помощь! Задачу решил вот так:
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)
Офлайн