Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Центр помощи
  • » Подсчитать количество слов, содержащих хотя бы одну согласную латинскую букву и хотя бы одну цифру. Напечатать все слова, состоящие только из четных цифр, и подсчитать сумму этих цифр. [RSS Feed]

#1 Дек. 18, 2020 01:24:37

jozzyi1
Зарегистрирован: 2020-12-18
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Подсчитать количество слов, содержащих хотя бы одну согласную латинскую букву и хотя бы одну цифру. Напечатать все слова, состоящие только из четных цифр, и подсчитать сумму этих цифр.

Выделить в строке-предложении s все слова, разделенные символами-
разделителями «_.,;:\n\t!?». Обработать выделенные слова в соответствии с
заданием.

Подсчитать количество слов, содержащих хотя бы одну согласную
латинскую букву и хотя бы одну цифру. Напечатать все слова,
состоящие только из четных цифр, и подсчитать сумму этих цифр.


Пример входных данных: Time56Min15 946! Hello81! 23f_ floor9; lets66 man8right:

Офлайн

#2 Дек. 18, 2020 14:05:13

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Подсчитать количество слов, содержащих хотя бы одну согласную латинскую букву и хотя бы одну цифру. Напечатать все слова, состоящие только из четных цифр, и подсчитать сумму этих цифр.

jozzyi1 а в чем проблема то?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Дек. 18, 2020 17:22:05

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Подсчитать количество слов, содержащих хотя бы одну согласную латинскую букву и хотя бы одну цифру. Напечатать все слова, состоящие только из четных цифр, и подсчитать сумму этих цифр.

PEHDOM халява прийди!!! не приходит. вот в чем проблема

Офлайн

#4 Дек. 18, 2020 18:41:58

jozzyi1
Зарегистрирован: 2020-12-18
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Подсчитать количество слов, содержащих хотя бы одну согласную латинскую букву и хотя бы одну цифру. Напечатать все слова, состоящие только из четных цифр, и подсчитать сумму этих цифр.

Конечно халява .
Помогите доправить код.

import re

s = ‘Time56Min15 946! Hello81! 23f_ floor9; lets66 man8right’
st = re.split(r"", s)

lst = )(?=.*)", word)]
print(*lst)
print(len(lst))

ss = [re.findall(r'\d+', word) for word in lst if not re.search(r'', word)]
print(sum(map(int, sum(ss, ))))

Офлайн

#5 Дек. 19, 2020 00:45:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Подсчитать количество слов, содержащих хотя бы одну согласную латинскую букву и хотя бы одну цифру. Напечатать все слова, состоящие только из четных цифр, и подсчитать сумму этих цифр.

jozzyi1
Конечно халява .
Никто не хочет делать.

Так что я сделаю
jozzyi1
Выделить в строке-предложении s все слова, разделенные символами-
разделителями «_.,;:\n\t!?». Обработать выделенные слова в соответствии с
заданием.

Подсчитать количество слов, содержащих хотя бы одну согласную
латинскую букву и хотя бы одну цифру. Напечатать все слова,
состоящие только из четных цифр, и подсчитать сумму этих цифр.

  
>>> import re
>>> 
>>> def get_words(text):
...     sep_list = r'[_.,;:\n\t!?]'
...     out = list(filter(None, re.split(sep_list, text)))
...     return out
... 
>>> def count_words_letters_digits(words):
...     letters = set('bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ')
...     digits = set('0123456789')
...     out = 0
...     for w in words:
...         word_chars = set(w)
...         out += bool((word_chars & letters) and (word_chars & digits))
...     return out
... 
>>> def print_words_digits_digsum(words):
...     digits = set('02468')
...     out = 0
...     for w in words:
...         word_chars = set(w)
...         if word_chars - digits == set():
...             print(w)
...             out += sum(map(int, w))
...     return out
... 
>>> def f(text):
...     words = get_words(text)
...     counted_words = count_words_letters_digits(words)
...     print('counted words', counted_words)
...     counted_digits_sum = print_words_digits_digsum(words)
...     print('counted digits sum', counted_digits_sum)
... 
>>> f('Time56Min15 946! Hello81! 23f_ floor9; lets66 man8right:')
counted words 5
counted digits sum 0
>>> f('abcd,abcd123,444,456,222,345')
counted words 1
444
222
counted digits sum 18
>>>

После этого можешь оптимизировать. Если у тебя получится это на regexp'ы перевести - отлично! А может и не получится. Всякое может быть. Поэтому твой подход к этому сразу на regexp'ах может сыграть с тобой злую шутку. Ты можешь так проработать потом неделю (ну, в каком-нибудь реальном проекте, где время что-то значит), а в оконцовке окажется, что regexp'ы тут не подходят.



Отредактировано py.user.next (Дек. 19, 2020 01:05:39)

Офлайн

  • Начало
  • » Центр помощи
  • » Подсчитать количество слов, содержащих хотя бы одну согласную латинскую букву и хотя бы одну цифру. Напечатать все слова, состоящие только из четных цифр, и подсчитать сумму этих цифр.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version