


Что не так у меня с кодом?(прохожу курс для начинающих на Python)
Три города
Даны названия трех городов. Напишите программу, которая определяет самое короткое и самое длинное название города.
Формат входных данных
На вход программе подаётся названия трех городов, каждое на отдельной строке.
Формат выходных данных
Программа должна вывести самое короткое и длинное название города, каждое на отдельной строке.
Примечание. Гарантируется, что длины названий всех трех городов различны.
ВОТ СОБСТВЕННО САМ КОД:
a, b, c=input(), input(), input()
d=len(a)
e=len(b)
f=len(c)
s1=min(d, e, f)
s2=max(d, e, f)
if d==s1:
print(a)
elif e==s1:
print(b)
elif f==s1:
print(c)
if d==s2:
print(a)
elif e==s2:
print(b)
elif d==s2:
print(c)
ТЕСТОЫЕ ДАННЫЕ:
Москва
Екатеринбург
Санкт-Петербург
Должно получится Москва и Санкт-Петербург а выводит только Москва
Опечатка
t = sorted([input(), input(), input()], key=len)
print(t[0], t[-1], sep='\n')
Руками:
a, b, c = input(), input(), input()
if len(a) > len(b): a, b = b, a
if len(b) > len(c): b, c = c, b
if len(a) > len(b): a, b = b, a
print(a)
print(c)
В вашем коде второй блок условного оператора содержит ошибку: в последней строчке проверяется значение d вместо f, что приводит к некорректному выводу.
a, b, c = input(), input(), input()
print(min(a, b, c, key=len ))
print(max(a, b, c, key=len ))