Аналіз задачі. Функція decode() повинна приймати один аргумент текст, який повинен бути списком слів або якщо текст стрічка то його потрібно буде перетворити у список. Слова з тексту повинні переглядатися одне за одним і для слова визначається його гематрія (число). Серед довільного списку слів вибираються слова які мають таке саме значення гематрії і серед них на екран виводиться випадково вибране слово.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
# імпортуємо все що буде потрібно | |
import nltk | |
import random | |
# слова для заміни будемо брати з корпуса слів | |
from nltk.corpus.words import words | |
letter_vals = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':80, 'g':3, 'h':8,'i':10, 'j':10, 'k':20, 'l':30, 'm':40, 'n':50, 'o':70, 'p':80, 'q':100, 'r':200, 's':300, 't':400, 'u':6, 'v':6, 'w':800, 'x':60, 'y':10, 'z':7} | |
def gematr(word): | |
"""Функція для визначення значення гематрії довільного слова (стрічки символів) | |
""" | |
assert isinstance(word, basestring), "argument to gematr() must be a string" | |
return sum([letter_vals[char] for char in word.lower()]) | |
def decode(text): | |
"""Функція для заміни слів їх гематрія еквівалентами | |
""" | |
assert isinstance(word, basestring), "argument to decode() must be a string" | |
words_for_choice=words.words() | |
for word in text.split(): | |
if word.isalpha(): | |
print word, random.choice([w for w in words_for_choice if gematr(w)==gematr(word)]) | |
else: | |
print word | |
>>> decode('I love Sveta') | |
I ade | |
love Julien | |
Sveta irrenderable |
Немає коментарів:
Дописати коментар