Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 1
Регистрация: 17.11.2016
Сообщений: 25

Вернуть самое длинное слово, Вернуть словарь-статистику встречаемости букв

03.01.2017, 11:56. Показов 4097. Ответов 8

Студворк — интернет-сервис помощи студентам
Всем добрый день ! Написал 2 функции:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def longest_word(text):
    """Вернуть самое длинное слово в 'text'."""
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    text_main = words(text)
    symb = []
    for i in text_main:
        symb.append(len(i))
    if len(symb) != 0:
        return text_main[symb.index(max(symb))]
    """Исключения:
      - TypeError: text - любой тип кроме str.
 
    Пример: longest_word("Это, конечно, неправда!?") == "неправда"
    """
 
def char_stats(text):
    """Вернуть словарь-статистику встречаемости букв в 'text'."""
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    text_str = ''.join(x for x in text if x.isalpha() or x == " ")
    text_main = ''.join(text_str.split())
    print(text_main)
    symb = {}
    for i in text_main:
        if i not in symb:
            symb[i] = dict(text_main.count(i))
    return symb
    """Исключения:
      - TypeError: text - любой тип кроме str.
    Пример: char_stats("папка") == {'а': 2, 'п': 2, 'к': 1}
    """
Но есть ошибки:

Как их исправить ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.01.2017, 11:56
Ответы с готовыми решениями:

Машина Тьюринга. Вернуть самое короткое слово, в котором нет двух букв a подряд
Реализовать машину Тьюринга со стандартной заключительной конфигурацией для выполнения следующей задачи. На вход подаётся несколько слов в...

Найти самое большое слово в строке и вернуть длинну
Здравствуйте, помогите исправить ошибку в коде заранее спасибо public class LongestWord { public static int findLongest(String...

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

8
20 / 20 / 17
Регистрация: 12.12.2015
Сообщений: 71
03.01.2017, 13:34
Python
1
2
3
4
5
6
7
8
9
10
11
def char_stats(text):
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    text_str = ''.join(x for x in text if x.isalpha() or x == " ")
    text_main = ''.join(text_str.split())
    print(text_main)
    symb = {}
    for i in text_main:
        if i not in symb:
            symb[i] = text_main.count(i)###
    return symb
А в первом скажи откуда ты взял words в строке
Python
1
text_main = words(text)
1
0 / 0 / 1
Регистрация: 17.11.2016
Сообщений: 25
03.01.2017, 14:08  [ТС]
Извиняюсь words
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def clean(text):
    """Вернуть строку 'text' без знаков препинания.
    Исключения:
      - TypeError: text - любой тип кроме str."""
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    return ''.join(x for x in text if x.isalpha() or x == " ")
 
    """Пример: clean("Это, конечно, неправда!?") == "Это конечно неправда"
    """
def words(text):
    """Вернуть слова из 'text' в виде кортежа."""
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    new_text = clean(text)
    return tuple(new_text.split())
    """Исключения:
      - TypeError: text - любой тип кроме str.
 
    Пример: words("Это, конечно, неправда!?") == ('Это', 'конечно', 'неправда')
    """
Добавлено через 4 минуты
Ответ чуть выше
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
03.01.2017, 15:51
Лучший ответ Сообщение было отмечено user20167 как решение

Решение

words:

Python
1
2
3
4
def words(text):
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    return (*(clean(text).split()),)
1
20 / 20 / 17
Регистрация: 12.12.2015
Сообщений: 71
03.01.2017, 21:18
Функция longest_word рабочая
Python
1
2
3
4
5
6
7
8
9
def longest_word(text):
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    text_main = words(text)
    symb = []
    for i in text_main:
        symb.append(len(i))
    if len(symb) != 0:
        return text_main[symb.index(max(symb))]
Python
1
2
3
>>> longest_word("Это, конечно, неправда!?")
'неправда'
>>>
если есть ошибки, то проблема не в функции
1
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
03.01.2017, 22:13
Кажется, longest_word должна возвращать строку влюбом случае, даже если len(symb) == 0, - возвращаемая строка должна быть пустой
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
03.01.2017, 23:07
Python
1
2
3
4
5
6
def longest_word(text):
    """Отстортировать слова по длине и вернуть наибольшее"""
    w = sorted(words(text),key=len, reverse=True)
    result = ""
    if w: result = w[0]
    return result
Добавлено через 1 минуту
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def stats_letters(text):
    """Вернуть словарь с частотой употребления букв в тексте,
       предварительно очистив его от знаков пунктуации.
    """
    from collections import defaultdict
    text = clean(text.lower())
    d = defaultdict(int)
    for x in text:
         if x.isalpha():
            d[x]+=1
    return d
 
#P.S. С Counter будет еще проще.
1
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
03.01.2017, 23:46
Цитата Сообщение от Garry Galler Посмотреть сообщение
def longest_word(text):
* * """Отстортировать слова по длине и вернуть наибольшее"""
или

Python
1
2
3
def longest_word(text):
    """Отстортировать слова по длине и вернуть наибольшее"""
    return max(words(text), key=len)
2
0 / 0 / 1
Регистрация: 17.11.2016
Сообщений: 25
05.01.2017, 04:02  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def clean(text):
    """Вернуть строку 'text' без знаков препинания.
    Исключения:
      - TypeError: text - любой тип кроме str."""
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    return ''.join(x for x in text if x.isalpha() or x == " ")
 
 
def words(text):
    """Вернуть слова из 'text' в виде кортежа."""
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    new_text = clean(text)
    return tuple(new_text.split())
 
 
def longest_word(text):
    """Вернуть самое длинное слово в 'text'."""
    if not isinstance(text, str):
        raise TypeError('text должен быть str')
    text_main = words(text)
    symb = []
    for i in text_main:
        symb.append(len(i))
    if len(symb) != 0:
        return text_main[symb.index(max(symb))]
    else:
        return ""
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.01.2017, 04:02
Помогаю со студенческими работами здесь

Строки. В заданном тексте найти самое длинное слово и самое длинное предложение.
Задача: В заданном тексте найти самое длинное слово и самое длинное предложение. Помогите решить На СИ++ в Visual Studio.

В массиве выбрать самое длинное слово без повторяющихся букв
char* blockhead (char *xs, int n); Среди заданного массива слов xs, длинной n, выбрать самое длинное слово, в котором нет...

Найти самое длинное слово в тексте и подсчитать количество гласных букв
Найдите самое длинное слово в тексте и подсчитайте количество гласных букв в нем.

Найти в файле самое длинное слово и вывести количество его букв
Дано условие: В файле записаны слова. Указать какое слово самое длинное и написать количество букв в этом слове. (Сделать задачу...

Подсчитать статистику встречаемости букв в тексте
нужно написать программу. Не знаю как... Кто что подскажет ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru