Найти - Пользователи
Полная версия: Функция на строки
Начало » Python для новичков » Функция на строки
1
AmF
Всем привет!

Прошу помочь разобраться, как решить задачу (хочу понять алгоритм решения): в каком-то языке есть только 4 звука, назовем их А, В, C, D, а алфавит этого языка состоит из 10 букв: E, F, G, H, I, J, K, L, M, N. Система такая: каждым 3 звукам соответствует 1 буква согласно правилам. Вот эти правила: ABC -> G, ACD -> M, CAD -> J, CDA -> M, CCC -> A и т.д. (все правила не привожу - хочу просто общую схему алгоритма понять). Надо бы написать функцию, которая принимает строку звуков (3 символа), а возвращает букву (строка в 1 символ). Важное замечание: if, else использовать запрещается.

Спасибо за любую помощь.
Cleric
Насколько я понял задачу. Тебе нужно завести словарь (dict) соответствий, ключами к которому будут звуки а значениями буквы.
AmF
Ну, можно и словарь, но только как потом организовать поиск без иф-элс?
sp3
d = {'ABC':'G', 'ACD' :'M', 'CAD' : 'J', 'CDA' : 'M', 'CCC': 'A'}

slovo = 'F,ACD,CCC,ABC'

print ''.join([d.get(zvyk,'') for zvyk in slovo.split(',')])
AmF
У меня такая ситуация, что несколько комбинаций звуков может обозначать 1 букву, например: ATT -> I, ATC -> I, ATA -> I. Т.к. питон мы только начали проходить, то мне не совсем понятно, как тогда оформить поиск. Вот что получится:

d = {'I': ['ATT', 'ATC' , 'ATA'], и т.д.}
Как здесь тогда действовать?

Спасибо!
Vader
AmF
Как здесь тогда действовать?
Вот так:
d = {'ATT':'I', 'ATC':'I' , 'ATA':'I', и т.д.}
sp3
d = {'ABC':'G', ‘ACD’ :'M', ‘CAD’ : ‘J’, ‘CDA’ : ‘M’, ‘CCC’: ‘A’, ‘ATT’ : ‘I’, ‘ATC’ : ‘I’, ‘ATA’ :'I'}
и тот же самый код
AmF
А, ага, спасибо - буду пробовать.
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