


Python help пожалуйста
Задание 2. Самое длинное слово
Что нужно сделать
Пользователь вводит строку, содержащую пробелы. Найдите в ней самое длинное слово, выведите его и его длину. Если таких слов несколько, выведите первое.
Пример 1
Введите строку: я есть строка.
Самое длинное слово: «строка».
Длина этого слова: 6 символов.
Пример 2
Введите строку: а б.
Самое длинное слово: «а».
Длина этого слова: 1 символ.
Пример 3
Введите строку: б.
Самое длинное слово: «б».
Длина этого слова: 1 символ.
мой код:
ls = input('Введите строку: ').split(' ')
max_len = max([len(x) for x in ls])
max_word = [x for x in ls if len(x) == max_len]
max = ''.join(max_word)
print(f'Самое длинное слово: "{max}"')
print(f'Длинна этого слова: {max_len}')
но если ввести 'a b' то он выведет:
самое длинное слово: "ab"
длинна этого слова: 1
ПОМОГИТЕ!
PYTHON 3.9
join склеивает слова в одно без пробела.
Тут эта задача постоянно публикуется.
w = max(input().split(), key = len)
print(w, len(w), sep = '\n')
Словесное оформление ввода-вывода можешь сам добавить.
import string
sentence = input('Введите строку: ')
output = sentence.translate(str.maketrans('', '', string.punctuation))
words = output.split(' ')
max_len = max([len(word) for word in words])
max_words = [word for word in words if len(word) == max_len]
max_word = max_words[0] # Берем первое самое длинное слово
print(f'Самое длинное слово: «{max_word}».')
print(f'Длина этого слова: {max_len} символов.')
Этот код полностью соответствует ответам в примерах задания.
Пример 1
Введите строку: я есть строка.
Самое длинное слово: «строка».
Длина этого слова: 6 символов.
Пример 2
Введите строку: а б.
Самое длинное слово: «а».
Длина этого слова: 1 символ.
Пример 3
Введите строку: б.
Самое длинное слово: «б».
Длина этого слова: 1 символ.
В решении можно использовать метод "isaplha" , который проверяет, состоит ли строка из букв. Кроме того, метод isalpha может использоваться для удаления всех не алфавитных символов из строки.
string = input('Введите текст: ').split()
max_word = ''
for word in string:
if len(word) > len(max_word) and word.isalpha():
max_word = word
print('Самое длинное слово: "', max_word, '"')
if len(max_word) == 1:
print('Длина этого слова:', len(max_word), 'символ')
else:
print('Длина этого слова:', len(max_word), 'символов')
print("Самое длинное слово: «{0}».".format(l:=max(input("Введите строку:").split(), key=len)), f"Длина этого слова: {len(l)} символов.", sep="\n")