Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

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 склеивает слова в одно без пробела.

Аватар пользователя
Высший разум

Тут эта задача постоянно публикуется.

12
 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), 'символов')

Аватар пользователя
Мудрец
12
 print("Самое длинное слово: «{0}».".format(l:=max(input("Введите строку:").split(), key=len)), f"Длина этого слова: {len(l)} символов.", sep="\n")