Найти самое длинное и короткое название
задача найти самое короткое и длинное название города(формально). Выводится самое короткое название, а длинное нет. Не могу понять в чём проблема. Заранее спасибо. Вот код :
x1 = str(input()) x2 = str(input()) x3 = str(input()) x11 = len(x1) x22 = len(x2) x33 = len(x3) xmax = max(x11, x22, x33) xmin = min(x11, x22, x33) if xmin == x11 or xmin == x22 or xmin == x33: if xmin == x11: print(x1) elif xmin == x22: print(x2) else: if xmin == x33: print(x3) elif xmax == x11 or xmax == x22 or xmax == x33: if xmax == x11: print(x1) elif xmax == x22: print(x2) else: if xmax == x33: print(x3)
Отслеживать
задан 24 июл 2022 в 14:39
13 3 3 бронзовых знака
str(input()) избыточно, поскольку input ничего кроме строки не возвращает
24 июл 2022 в 15:04
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
short, *_, long = sorted([ input(), input(), input(), ], key=len) print( f'', f'', sep='\n' )
Отслеживать
ответ дан 24 июл 2022 в 14:57
6,497 2 2 золотых знака 8 8 серебряных знаков 23 23 бронзовых знака
Функция, которая находит самое короткое слово в тексте. Как исправить, чтобы заработала?
Проблема
Я задумывал функцию так, чтобы с каждой новой итерацией позиция пробела искалась в новом тексте, который получается путем среза: так я получу длины всех слов. Вместо этого позиция находится в исходном тексте (из переменной text_copy).
Как сделать, чтобы на каждой новой итерации обрабатывался новый фрагмент текста?
- Вопрос задан более двух лет назад
- 282 просмотра
Комментировать
Решения вопроса 2
Если, как выяснилось из коментариев «нужно, чтобы возвращалось не само слово, а его длина«, и «Как можно сделать это все без сплита и min?»
то тогда вот так:
def find_short(text): num_of_let=0 min_numb = len(text) for elem in text: if elem == ' ': if num_of_let < min_numb: min_numb=num_of_let num_of_let=0 else: num_of_let+=1 return min_numb text = 'bitcoin take over the world maybe who knows' find_short(text)
Результат:
Out[20]: 3
Как просили - не само слово, а его длина.
Если вы все таки передумаете и захотите иметь и самое короткое слово и его длину, но без функций, то сделать это можно вот так:
def find_short(text): num_of_let=0 word=[] min_numb = len(text) for elem in text: if elem == ' ': if num_of_let < min_numb: min_numb=num_of_let min_word=''.join(word) num_of_let=0 word=[] else: word=word+list(elem) num_of_let+=1 return min_numb,min_word
Только извращение все это. Нет, в целях "познания мира" конечно можно и потренироваться, для развития алгоритмического мышления например.
Но на то и придуманы функции, что-бы учиться их использовать там, где это целесообразно.
Найти самое короткое слово в строке
Найти самое длинное и самое короткое слово, посчитать в них гласные
Дан текст, текст состоит из предложений. В предложениях, которые заканчиваются на вопросительный.
Самое длинное слово и самое короткое слово
Разработайте программу, которая получает от пользователя 10 слов (по одному в строке), а затем.
Самое короткое слово в списке
Написать программу, вычисляющую длину самого короткого слова в предложении из трех слов.
Даны два предложения без знаков препинания (слова разделены пробелами). Найти самое короткое слово первого предложения,
Даны два предложения без знаков препинания (слова разделены пробелами). Найти самое короткое слово.
301 / 211 / 112
Регистрация: 03.12.2016
Сообщений: 409
maksssutka,
def min_len(string) return (min((len(x), x) for x in string.split())[1])
Status 418
![]()
4495 / 2268 / 593
Регистрация: 26.11.2017
Сообщений: 5,201
Записей в блоге: 3
avdivo, у min же key есть.
301 / 211 / 112
Регистрация: 03.12.2016
Сообщений: 409
eaa, ага)
есть
Добавлено через 1 час 47 минут
def min_len(string): return (min(string.split(), key=len))
Регистрация: 22.09.2022
Сообщений: 57
Пишет invalid syntax
Добавлено через 5 минут
как правильно оформить вывод ?
Добавлено через 8 минут
АКТУАЛЬНО
![]()
![]()
35356 / 19956 / 4180
Регистрация: 12.02.2012
Сообщений: 33,116
Записей в блоге: 13
Сообщение от maksssutka 
- чудненько! "Для сельской местности сойдет":
1 2 3 4 5 6 7 8 9 10 11 12
def foo(sent): lst=sent.split() minl=len(sent) shortest=sent for w in lst: if len(w)minl: shortest=w minl=len(w) return shortest txt=input("Введите предложение: ") print("Самое короткое слово:",foo(txt))
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Вывести самое короткое слово в предложении
Здравствуйте! Помогите решить задачу в Python. Спасибо! Дана строка-предложение на русском.
Определить, сколько раз встречается в файле самое короткое слово
Дан файл(файл нужно создать), содержащий текст на русском языке. Определить, сколько раз.
Дана строка символов. Самое длинное слово в строке и то же самое Определить количество слов в длине
Дана строка символов. Самое длинное слово в строке и то же самое Определить количество слов в.

Найти в строке самое длинное слово, в котором присутствует подряд две согласные буквы
Пользователь вводит строку произвольной длины. Найти в строке самое длинное слово, в котором.
Найти самое длинное слово в строке
Найти самое длинное слово в строке, не используя команды split.

Выведите САМОЕ короткое слово, которое в тексте встречается чаще всего
Дан текст. Выведите САМОЕ короткое слово, которое в этом тексте встречается чаще всего. Далее.

Найти самое длинное слово, начинающееся с согласной буквы, и поменять его с последним словом в строке (Pascal -> Python)
Дана строка символов.Найти самое длинное слово начинающееся с согласной буквы и поменять его с.
Как найти и вывести самое короткое слово в строке?
Как в строке найти и вывести самое короткое слово(одно или несколько)?
- Вопрос задан более трёх лет назад
- 2416 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 2
Backend developer
In [9]: s = 'foo bar test no text a' In [10]: sorted(s.split(), key=len) Out[10]: ['a', 'no', 'foo', 'bar', 'test', 'text']
Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать

Можно сделать так:
import re s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." words = re.sub("[^\w]", " ", s).split() # если просто найти все минимальные слова t = [v for v in words if len(v) == len(min(words))] # если все слова надо разделить по длине from itertools import groupby t1 = print(t1[min(t1)], t)
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
