Вопрос по питону
При решении задачи: Напишите программу в которой пользователь вводит три числа, а программа определяет может ли существовать треугольник с этими сторонами.
Решение вот такое:
b = list(input("Введите три целых числа: "))
for i in b:
if b[0] + b[1] > b[2]:
print("Треугольник существует")
else:
print("Треугольник не существует")
Но программа выводит ответ несколько раз:
Введите три целых числа: 123
Треугольник не существует
Треугольник не существует
Треугольник не существует

Как это исправить????

Ответы

Ответ дал: лекция
0

1) как исправить:

использовать флаг, отдельную переменную которая будет изменяться в зависимости от условий

т.е. после ввода b прописываем допустим flag = 0, тогда в вашем if меняем знак больше на меньше и в теле if прописываем flag += 1

(если какая-то сторона будет больше суммы двух других, flag станет больше единицы)

соответственно else нам не нужен

после прохода всех итераций for пишем вывод с условиями:

если flag больше 0, то не существует, если иначе, существует

2) можно было не заморачиваться с for, а просто проверить сразу все условия:

https://znanija.com/task/45736920 - мое решение(ввод в первых 3 строках меняется на первую вашу)

3) далее. ваш ввод не будет работать если длина любой из сторон будет больше 10(поскольку будут взяты только первые 3 числа из списка)

4) также ваш цикл не будет работать поскольку вы проверяете одни и те же значения из b, местами они никак не меняется, соответственно ответ всегда будет один и тот же

5) ваше решение я изменил учитывая вышеописанные пункты, но на мой взгляд оно нежизнеспособно, советую воспользоваться решением по ссылке

b = list(map(int, input("Введите три целых числа: ").split()))

flag = 0

for i in b:

   for j in b:

       for k in b:

           if i != j and i != k and k != j:

               if i + j <= k:

                   flag += 1

if flag > 0:

   print("Треугольник не существует")

else:

   print("Треугольник существует")


zhandarovaas: А можете написать, как будет выглядеть код для первого варианта,пожалуйста?
лекция: ну так и просили бы сразу)
Вас заинтересует