Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на языке Python

Евгений Филиппович Ученик (2), закрыт 11 месяцев назад
Задание 1
У вас есть программа, в которой выводятся все слова. Допишите программу, не удаляя ничего, так, чтобы слова короче 3 букв не выводились.

Код
words = ["int", "pk", "get", "round", "id", "if"]

for word in words:

if word in [1,3,4]:
continue

print(word) # Не меняйте эту строку

Необходимо через len рассчитать длину слова.
Как это сделать? И по итогу вывести нужный результат?
Лучший ответ
Папа Высший разум (122305) 1 год назад
Без отступов это вообще не будет работать.

Видимо, вот тот вариант, которого добиваются авторы задачи, заботливо расставившие свои костыли в коде:
 words = ["int", "pk", "get", "round", "id", "if"]

for word in words:
if len(word) < 3: continue
print(word) # Не меняйте эту строку

А по-нормальному это решается, например, так:
 words = ["int", "pk", "get", "round", "id", "if"]
print(*(w for w in words if len(w) >= 3), sep = '\n')

Или так:
 words = ["int", "pk", "get", "round", "id", "if"]
print(*filter(lambda w: len(w) >= 3, words), sep = '\n')

Или почудить малёхо с аппликативностью, пусть у преподавателя моск вскипит:
 words = ["int", "pk", "get", "round", "id", "if"]
def compose(f, g): return lambda *args, **kwargs: f(g(*args, **kwargs))
print(*filter(compose((3).__le__, len), words), sep = '\n')
Евгений ФилипповичУченик (2) 1 год назад
Спасибо большое!!!
Не зная что бы я без тебя делал
Остальные ответы
Похожие вопросы