Дважды повторяется вывод программы. Как устранить
Программа проверяет, является ли поданная на вход последовательность чисел монотонной (возрастающей или убывающей), в том числе нестрого. Программа получает на вход последовательность целых чисел a1, …, an, разделённых пробелами (-100 ≤ ai ≤ 100, 1 ≤ n ≤ 100) и печатает одну из двух строк YES или NO.
Вот программа, она работает, но выводит два раза один и тот же ответ. Как это все объединить, чтобы она этого не делала? Заранее благодарю.
a = [int(i) for i in input().split(" ")]
prev = a[0]
c1 = True
for i in a[1:]:
if prev <= i:
prev = i
else:
print("No")
c1=False
break
else: print("Yes")
prev = a[0]
c2 = True
for i in a[1:]:
if prev >= i:
prev = i
else:
print("No")
c2=False
break
else: print("Yes")
Ответы (1 шт):
она работает, но выводит два раза один и тот же ответ.
У вас один вариант записи логики кода, только один цикл выводит результат для монотонно возрастающей функции, а другой для монотонно убывающей. Например, при вводе последовательности 1 2 3 4, первый цикл выведет Yes, другой No. Как у вас получилось, что выводится один и тот же результат, причём верный, непонятно. Скорее всего вы вводите данные для постоянной функции. Я могу предложить свой вариант логики. Вы легко сможете переделать код под свою логику:
a = [int(i) for i in input().split(" ") if i.strip()]
c1 = False
c2 = False
for i in range(len(a) - 1):
if a[i] < a[i + 1]:
c1 = True
elif a[i] > a[i + 1]:
c2 = True
if c1 and not c2:
print('Монотонно возрастающая функция')
elif c2 and not c1:
print('Монотонно убывающая функция')
elif c1 and c2:
print('Функция убывает и возрастает')
else:
print('Функция постоянна')