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

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

03.01.2017, 11:56. Показов 4156. Ответов 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
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru