Найти - Пользователи
Полная версия: Построчный вывод из введенного текста каждого слова и строки значения каждой буквы в этом слове
Начало » Python для новичков » Построчный вывод из введенного текста каждого слова и строки значения каждой буквы в этом слове
1
Oleg1975Spb
Листинг ниже показывает, как можно выводить текст и значения букв под каждой буквой текста. Просьба модифицировать код с тем, чтобы построчно выводились в одной строке каждое слово из введенного текста и значения букв этого слова, взятые из словаря в начале кода.

 import itertools
from itertools import chain
mydict= {' ': '0','а': '1', 'б': '2', 'в': '3','г': '4', 'д': '5','е': '6', 'ё': '7', 'ж': '8', 'з': '9', 'и': '1', 'й': '2', 'к': '3', 'л': '4', 'м': '5', 'н': '6', 'о': '7', 'п': '8', 'р': '9', 'с': '1', 'т': '2', 'у': '3', 'ф': '4','х': '5', 'ц': '6', 'ч': '7', 'ш': '8', 'щ': '9', 'ъ': '1', 'ы': '2', 'ь': '3', 'э': '4', 'ю': '5', 'я': '6', 'a': '1', 'b': '2', 'c': '3', 'd': '4', 'e': '5', 'f': '6', 'g': '7', 'h': '8', 'i': '9', 'j': '1', 'k': '2', 'l': '3', 'm': '4', 'n': '5', 'o': '6', 'p': '7', 'q': '8', 'r': '9', 's': '1', 't': '2', 'u': '3', 'v': '4', 'w': '5', 'x': '6', 'y': '7', 'z': '8', 'А': '1', 'Б': '2', 'В': '3', 'Г': '4', 'Д': '5', 'Е': '6', 'Ё': '7', 'Ж': '8', 'З': '9', 'И': '1', 'Й': '2', 'К': '3', 'Л': '4', 'М': '5', 'Н': '6', 'О': '7', 'П': '8', 'Р': '9', 'С': '1', 'Т': '2', 'У': '3', 'Ф': '4', 'Х': '5', 'Ц': '6', 'Ч': '7', 'Ш': '8', 'Щ': '9', 'Ъ': '1', 'Ы': '2', 'Ь': '3', 'Э': '4', 'Ю': '5', 'Я': '6', 'A': '1', 'B': '2', 'C': '3','D': '4', 'E': '5', 'F': '6', 'G': '7', 'H': '8', 'I': '9', ' J': '1', 'K': '2', 'L': '3',  'M': '4', 'N': '5', 'O': '6', 'P': '7', 'Q': '8', 'R': '9', 'S': '1', 'T': '2', 'U': '3', 'V': '4', 'W': '5', 'X': '6', 'Y': '7', 'Z': '8'}
while True:
    a = input("Введите текст: ")
    b = list(map(str,a))
    с = list(chain.from_iterable(b)) 
    d = list(map(lambda x: mydict.get(x), с))
    e = list(chain.from_iterable(d))
    f = list(map(lambda x: int(x), e))
    
    spis = []
    spis_0 = []
    spis_1 = []
    spis_2 = []
    spis_3 = []
    spis_4 = []
    spis_5 = []
    spis_6 = []
    spis_7 = []
    spis_8 = []
    spis_9 = []
    for number in f:
        if number == 0 in f:
            spis.append(number)
            spis_0.append(number)
        elif number == 1 in f:
            spis.append(number)
            spis_1.append(number)
        elif number == 2 in f:
            spis.append(number)
            spis_2.append(number)
        elif number == 3 in f:
            spis.append(number)
            spis_3.append(number)
        elif number == 4 in f:
            spis.append(number)
            spis_4.append(number)
        elif number == 5 in f:
            spis.append(number)
            spis_5.append(number)
        elif number == 6 in f:
            spis.append(number)
            spis_6.append(number)
        elif number == 7 in f:
            spis.append(number)
            spis_7.append(number)
        elif number == 8 in f:
            spis.append(number)
            spis_8.append(number)
        else:
            spis.append(number)
            spis_9.append(number)
        
    print()
    print("Буквы введенного текста: ",' '.join(a))
    print("Значения букв текста:    ",' '.join(map(str,spis)))
py.user.next
Oleg1975Spb
Просьба модифицировать код с тем, чтобы построчно выводились в одной строке каждое слово из введенного текста и значения букв этого слова, взятые из словаря в начале кода.
Ты должен сделать функцию, которая обрабатывает один текст, который в неё подаётся (не вводится из консоли). Потом надо ввести текст из консоли, разбить его на слова и потом в цикле для каждого слова вызвать эту функцию, передавая в неё очередное слово введённого текста.
Oleg1975Spb
py.user.next
Спасибо, только я в своем обучении Питону до функций ещё не дошёл, а код нужен срочно - друг попросил сделать такую программу.
py.user.next
Oleg1975Spb
только я в своем обучении Питону до функций ещё не дошёл
Ну, вот пришло время, значит. Сделай функцию, которая увеличивает буквы в слове. Затем введи строку, разбей её на слова, передай каждое слово в свою функцию, получи из функции новое слово и выведи это полученное слово на отдельной строке.

Oleg1975Spb
друг попросил сделать такую программу
Но ты же не можешь её сделать. Надо учиться сначала.
Oleg1975Spb
py.user.next
Новое слово - полдела, надо ещё вывести буквенные значения слова вместе с этим словом, вот в чём проблема, а каждое слово необязательно функцию делать, можно через for, просто for нужен вложенный, я на этом моменте и застопорился.
Вот примерный код, не знаю, как тут буквенные значения слова сделать:

 # Исходный текст:
txt=input("Введите текст: ")
# Все буквы маленькие:
txt=txt.lower()
# Результат преобразования:
print(txt)
# Разбивка текста на подстроки:
L=txt.split(" ")
# Результат разбивки:
print(L)
# Переменные:
n=0
# Перебор элементов списка:
for k in range(len(L)):
    # Отбрасываем небуквенные символы:
    w=L[k].strip(".,:;-!?")
    # Если текст непустой:
    if len(w)!=0:
        # Отображение слова и его длины:
        print(w.ljust(12),"-", len(w))
        # Количество слов:
        n+=1
py.user.next
Oleg1975Spb
Новое слово - полдела, надо ещё вывести буквенные значения слова вместе с этим словом
Ну, ты даже слово само вывести не можешь. Я тебе об этом и говорю: тебе надо подучиться просто какую-то элементарную хрень делать.

Вот так это делается:
  
>>> def translate_text(text):
...     return text.upper()
... 
>>> def process_all():
...     text = input('Введи текст: ')
...     for word in text.split():
...         old_word = word
...         new_word = translate_text(word)
...         print('старое слово: <{}>'
...               ' новое слово: <{}>'.format(old_word, new_word))
... 
>>> process_all()
Введи текст: Просто какой-то текст.
старое слово: <Просто> новое слово: <ПРОСТО>
старое слово: <какой-то> новое слово: <КАКОЙ-ТО>
старое слово: <текст.> новое слово: <ТЕКСТ.>
>>>
Сделав простую трансляцию, ты можешь её усложнять внутри транслирующей функции - вводить там словари и тому подобное.
Oleg1975Spb
-
Oleg1975Spb
py.user.next
Спасибо, мне Ваш совет очень помог!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB