Вопрос Python, найти минимальное число используя только if else

Регистрация
12 Июл 2013
Сообщения
72
Репутация
0
Спасибо
0
Монет
0
Помогите, вообще не могу понять, что происходит, все вроде должно работать, но код с разными числами ведет себе максимально странно, что не так? К примеру если взять исходные данные (18 7 19), то ответом выдает 18. Это странно т.к условие (if a<=b and a<=c:) было выполнено, хотя не должно. Плюсом не совсем понятно, что выводить если числа будут равны, одно число или все



a,b,c = input().split()

a,b,c == int(a),int(b),int(c)



if a<=b and a<=c:

if a==b or a==c:

if a==b and a!=c:

print(a,b)

elif a==c and a!=b:

print(a,c)

else:

print(a,b,c)

else:

print(a)

elif b<=c:

if b==c:

print(b,c)

elif b<c:

print(b)

else:

print(c)
 
Проблема в вашем коде заключается в неправильном синтаксисе. Код должен быть правильно выровнен для работы с условными операторами if-else, и вы должны использовать двоеточия после каждого оператора if, elif и else. Кроме того, вы забыли использовать оператор присваивания для конвертации строковых значений в целочисленные значения. Вот исправленный код:

a, b, c = input().split()
a, b, c = int(a), int(b), int(c)

if a <= b and a <= c:
if a == b or a == c:
if a == b and a != c:
print(a, b)
elif a == c and a != b:
print(a, c)
else:
print(a, b, c)
else:
print(a)
elif b <= c:
if b == c:
print(b, c)
elif b < c:
print(b)
else:
print(c)

Теперь код должен корректно работать и выводить минимальное число корректно. Если два или три числа равны, код будет печатать соответствующие значения.
 
Одна из проблем в вашем коде заключается в том, что вы используете оператор сравнения == вместо оператора присваивания = при преобразовании переменных a, b и c в целые числа. Вот исправленная версия вашего кода: a,b,c = input().split()
a,b,c = int(a),int(b),int(c)

if a
 
a,b,c = list(map(int,input().split(' ')))
if a < b:
min = a
else: min = b
if c < min:
min = c
print(min)
 
Назад
Сверху