Форум сайта python.su
Выделить в строке-предложении s все слова, разделенные символами-
разделителями «_.,;:\n\t!?». Обработать выделенные слова в соответствии с
заданием.
Подсчитать количество слов, содержащих хотя бы одну согласную
латинскую букву и хотя бы одну цифру. Напечатать все слова,
состоящие только из четных цифр, и подсчитать сумму этих цифр.
Пример входных данных: Time56Min15 946! Hello81! 23f_ floor9; lets66 man8right:
Офлайн
jozzyi1 а в чем проблема то?
[code python][/code]
Офлайн
PEHDOM халява прийди!!! не приходит. вот в чем проблема
Офлайн
Конечно халява .
Помогите доправить код.
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, ))))
Офлайн
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 >>>
Отредактировано py.user.next (Дек. 19, 2020 01:05:39)
Офлайн