Дополнительно
Преобразование букв алфавита в числа в Python
Как можно завершить следующее?
characters = ['a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''t''u''v''w''x''y''z']
numbers = ['1''2''3''4''5''6''7''8''9''10''11''12''13''14''15''16''17''18''19''20''21''22''23''24']
text = raw_input(' Write text: ')
Я'пытался решить ее многими способами, но не смог'дойти до финта. Я хочу сделать exc. Если я набираю "hello", то вывод должен быть в виде чисел, выстроенных как в алфавите. Пример a = 1 < в алфавите.
50
14
Как насчет чего-то подобного:
ord понимание списка коды символов ASCII
EDIT Поскольку вы попросили меня объяснить, я объясню... хотя это уже было довольно хорошо объяснено в комментариях [?].
Давайте сделаем это в нескольких строках для начала.
Это делает то же самое, но более читабельно. Убедитесь, что вы можете понять, что здесь происходит, прежде чем пытаться понять мой первый ответ. Здесь все довольно стандартно, простой Python. Единственное, что следует отметить, это функция
ord
. ord означает порядковый номер, и практически в каждом языке высокого уровня есть такая функция. Она дает вам отображение числового представления любого символа. Обратная функция ord называется chr.Если вы проверите сами, то порядковый номер буквы a равен 97 (третья ссылка, которую я разместил выше, показывает полный набор символов ASCII). Каждая строчная буква находится в диапазоне 97-122 (26 символов). Таким образом, если вы просто вычтете 96 из порядкового номера любой строчной буквы, вы получите ее положение в алфавите, принимая 'a' == 1. Так, порядковый номер 'b' == 98, 'c' == 99 и т.д. При вычитании 96, 'b' == 2, 'c' == 3 и т.д.
Остальная часть первоначального решения, которое я опубликовал, это просто некоторые трюки Python, которые вы можете изучить под названием "понимание списка". Но я бы сосредоточился не столько на этом, сколько на том, чтобы научиться решать эту проблему на любом языке, где ord - ваш друг. Надеюсь, это поможет.
Вы можете использовать chr() и ord() для преобразования между букв и чисел int.
Вот простой пример.
Если вы собираетесь использовать это преобразование много, рассмотрим только расчет и ввод результатов в словарь:
Преимущество словарям очень быстро против прохода по списку при каждом вызове.
Не слишком простой, но это:
очень отличается от этого:
Первый, без запятых и что у вас есть в вашем вопросе, находится в одном списке элемент с 26 строковый элемент. Второй-26 список каждый элемент одного символа в длину.
Если вы печатаете каждый:
Становится очевидным, что он принимает дополнительный шаг, чтобы превратить отдельные символы
char1
в итератор.Если у вас есть последовательность символов 'Это' и#39;з' и/или 'Это' и#39;з' вы сможете легко вернуть номер символа, с список постижение:
Для типа структуры данных, вам нужно открыть первую строку:
Так что если ваш код такой же, как и в вашем вопросе, что может быть ваш вопрос.
Разумная альтернатива-это:
[ОГА(х.ниже())-96 для X в char1[0]]
Вы можете увидеть, что ваши персонажи=['Это''б''с'...]
, Без запятых, все равно как печатать все символы в строке в список такой
['Азбука']`.Так что теперь попробовать:
Вот функция, которую я использовал для этой цели. Работает как для прописных, так и для строчных букв.
Что-то вроде это
здесь, индекса функции (X) возвращает значение позиции х, если список содержит X.
Здесь's что-то я использую, чтобы преобразовать буквы столбца Excel в числа (так ограничение в 3 буквы, но это'ы довольно легко продлить, если вам нужно больше). Вероятно, не лучший способ, но он работает за то, что мне нужно.
Используйте эту функцию. Она преобразует строку алфавита в эквивалентное цифровое значение:
Если цель состоит в том, чтобы преобразовать только буквы АБВГД....XYZ и АБВГД....АБВ , я хотел бы использовать функции:
Я написал [0:52] потому что мой Python версии 2.7 отображает значение
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
для строки.аргумент букв.
Поскольку параметр д получает значение по умолчанию аргумента, вычисление этой величины осуществляется только один раз, в момент определения функции выполняется, чтобы произвести функцию объекта. Таким образом, функция затем может быть использована без это значение, чтобы быть рассчитан заново, даже если функция обжаловано в три тысячи раз.
Кстати, меньше() больше не использовалось для каждой апелляции функции. В случае верхнего письма были обработаны при строительстве аргумент по умолчанию.
.
Одним из примеров использования:
результат:
С. пэ..а....АГ...св. е.С. а..д.....с
.
Он может быть использован с картой() тоже :
результат:
[9, 13, 13, 21, 14, 15, 5, 12, 5, 3, 20, 18, 15, 16, 8, 15, 18, 5, 19, 9, 19]
Если вы просто хотите отобразить номер на письмо, то просто делай что-то простое, вроде этого:
Конечно, если вы хотите, чтобы она запускалась на 1, тогда просто добавьте (я+1 для меня, ... и т. д.
Если вы ищете противоположной как 1 = а , 2 = Б и т. д., Вы можете использовать следующий код. Обратите внимание, что я прошел только до 2 уровня как мне пришлось перевести подразделений в класс А, B, С и т. д.
Вот мое решение проблемы, где вы хотите, чтобы преобразовать все буквы в строке с позиции этих букв в английском алфавите и возвращать строку из тех "нет".
https://gist.github.com/bondnotanymore/e0f1dcaacfb782348e74fac8b224769e
Дайте мне знать, если вы хотите разобраться в деталях.Я использовал следующие понятия