Как буквы перевести в цифры питон
Перейти к содержимому

Как буквы перевести в цифры питон

  • автор:

Библиотека num2words — перевод чисел в слова

num2words — библиотека, которая переводит числа (например, 42) в слова (сорок два) или даже в порядковые числительные (сорок второй).

Очень проста в использовании:

from num2words import num2words print(num2words(42)) # Выведет forty-two print(num2words(42, to='ordinal')) # Выведет forty-second print(num2words(42, lang='fr')) # Выведет quarante-deux 

Помимо основного аргумента-числа есть необязательные, дополнительные аргументы:

  • Аргумент to может принимать следущие значения:
    • «cardinal» — просто перевод в число: 2019 —> two thousand and nineteen .
    • «ordinal» — перевод в порядковое числительное: 2019 —> two thousand and nineteenth .
    • «ordinal_num» — оставить числом: 2019 —> 2019th .
    • «year» — в год: 2019 —> twenty nineteen
    • «currency» — в евро: 2019 —> twenty euro, nineteen cents
    • «en» (English, default)
    • «ar» (Arabic)
    • «cz» (Czech)
    • «de» (German)
    • «dk» (Danish)
    • «en_GB» (English — Great Britain)
    • «en_IN» (English — India)
    • «es» (Spanish)
    • «es_CO» (Spanish — Colombia)
    • «es_VE» (Spanish — Venezuela)
    • «eu» (EURO)
    • «fi» (Finnish)
    • «fr» (French)
    • «fr_CH» (French — Switzerland)
    • «fr_BE» (French — Belgium)
    • «fr_DZ» (French — Algeria)
    • «he» (Hebrew)
    • «id» (Indonesian)
    • «it» (Italian)
    • «ja» (Japanese)
    • «ko» (Korean)
    • «lt» (Lithuanian)
    • «lv» (Latvian)
    • «no» (Norwegian)
    • «pl» (Polish)
    • «pt» (Portuguese)
    • «pt_BR» (Portuguese — Brazilian)
    • «sl» (Slovene)
    • «sr» (Serbian)
    • «ro» (Romanian)
    • «ru» (Russian)
    • «sl» (Slovene)
    • «tr» (Turkish)
    • «th» (Thai)
    • «vi» (Vietnamese)
    • «nl» (Dutch)
    • «uk» (Ukrainian)

    Некоторые коды состоят из языка и страны: fr_FR . Если страна не поддерживается, но поддерживается язык, то программа использует код языка: fr . Если вы используете язык не из этого списка, получите NotImplementedError .

    Попробуйте бесплатные уроки по Python

    Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

    Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

    ПРЕОБРАЗОВАНИЕ ТИПОВ ДАННЫХ В PYTHON

    С помощью функции complex() удобно формировать комплексные числа, указывая через запятую два аргумента: действительную часть и мнимую часть.

    a = complex(3.2, 1.5) print(a) 
    (3.2+1.5j) 

    Смешанная арифметика

    Python поддерживает смешанную арифметику в выражениях, состоящих из чисел разных типов. При этом целочисленный тип (int) при необходимости расширяется до дробного (float), а дробный — до комплексного (complex). То же самое происходит при сравнении чисел разного типа.

    Системы счисления

    Для преобразования чисел в двоичную, восьмиричную и шестнадцатиричную систему служат функции bin(), oct() и hex(). Эти функции возвращают строковые представления чисел, что необходимо учитывать при работе с ними.

    a = hex(38) print(a) 
    0x26 

    Преобразовать строковое представление недесятичного числа в десятичную систему можно с помощью функции int(), указав вторым аргументом основание системы счисления (от 2 до 36 включительно).

    a = '0x26' b = int(a, base=16) print(b) 

    Округление

    Для округления чисел с плавающей точкой используется функция round(). Функция использует банковское округление (по Гауссу) до ближайшего чётного целого, чтобы избежать серийного накопления погрешности. Например, round(1.5) + round(2.5) будет равен 4. При обычном математическом округлении сумма округленных чисел будет равна 5.

    С помощью второго аргумента функции round() можно округлить число до заданного количества знаков после запятой. Если воторой аргумент не задан, то число округляется до целого.

    a = round(1.5) print(a) b = round(2.5) print(b) c = round(6.4567, 2) print(c) d = round(4.35, 1) print(d) e = round(4.45, 1) print(e) 
    2 2 6.46 4.7 4.5 

    Преобразование в строку

    Для преобразования в строку используется функция str(). Аргументом функции str() может выступать число, строка, кортеж, список, множество, словарь, логическое значение, None.

    Любой объект, преобразованный в строку, становится просто набором символов.

    a = 5.3 x = str(a) print(x, type(a), type(x)) 

    Преобразование в список

    Для преобразования в список используется функция list(). Аргументом функции list() может выступать любой итерируемый тип данных (строка, кортеж, список, множество, словарь).

    При преобразовании строки в список, мы получаем список, состоящий из символов строки.

    Стоит обратить внимание на то, что при преобразовании словаря в список, в списке оказываются только ключи.

    b = 'Python' x = list(b) print(x) c = (3, 4) x = list(c) print(x) d = [5, 6] x = list(d) print(x) e = x = list(e) print(x) f = x = list(f) print(x) 
    ['P', 'y', 't', 'h', 'o', 'n'] [3, 4] [5, 6] [8, 7] [1, 2] 

    Преобразование в кортеж

    Для преобразования в кортеж используется функция tuple(). Аргументом функции tuple() может выступать любой итерируемый тип данных (строка, кортеж, список, множество, словарь).

    Преобразование в кортеж происходит по тому же принципу, по которому происходит преобразование в список.

    Преобразование в множество

    Для преобразования в множество используется функция set(). Аргументом функции set() может выступать любой итерируемый тип данных (строка, кортеж, список, множество, словарь).

    Преобразование в множество происходит по тому же принципу, по которому происходит преобразование в список, но следует учитывать, что повторяющиеся элементы в множестве будут представлены только один раз.

    a = [5, 6, 5, 6, 7] x = set(a) print(x) 

    С помощью последовательного преобразования числа в строку, а затем в множество, можно найти набор символов, которые встречаются в числе.

    a = 227 x = set(str(a)) print(x) 

    Преобразование в словарь

    Для преобразования в словарь используется функция dict().

    Для преобразования в словарь каждый элемент преобразуемой последовательности должен быть парой. Первым элементом в паре может быть любой неизменяемый тип данных (число, строка, кортеж), а вторым — любой тип данных.

    f = [[1, 'яблоко'], [2, 'тыква']] x = dict(f) print(x) 

    Преобразование в логический тип

    Для преобразования в логический тип используется функция bool().

    Функция bool() вернет False, если в качестве аргумента выступает пустая строка, нулевое число, None, пустой список, пустой кортеж или пустое множество. Непустая строка, ненулевое число, даже если оно отрицательное, вернут True. Непустое множество, непустой список или непустой кортеж, даже если они содержат один пустой элемент, вернут True.

    a = -7 x = bool(a) print(x) b = '' x = bool(b) print(x) c = x = bool(c) print(x) 
    True False True 

    Перевод строки в числа побуквенно

    Соответственно если буква заглавная то ее номер по порядку=ord(«Заглавная буква»)-64
    Пример для «A»: ord(«A»)=65. Соответственно 65-64=1.

    Тоже самое для строчных номер строчной буквы по порядку = ord(«Строчная буква»)-96
    Пример для «а»: ord(«а»)=97. Соответственно 97-96=1.

    Можно думать про это как про то, что номера всех заглавных букв смещенны относительно их порядка в алфавите на 64 симлова
    А номера строчных на 96

    Номера строчных букв

    for i in 'abcdefghijklmnopqrstuvwxyz': print(i,ord(i)) 

    Номера заглавных букв

    for i in 'abcdefghijklmnopqrstuvwxyz': print(i.upper(),ord(i.upper())) 

    Нужно заменить числа на буквы из алфавита, соответствующие этим числам. Разный результат в программе, как исправить?

    Здравствуйте проблема такая, никак не пойму.
    Вот задание:
    Вам необходимо в строке, полученной со стандартного ввода найти все цифры и заменить их на букву латинского алфавита, располагающуюся по данному индексу (все символы в строке вводятся в нижнем регистре).
    Примечание: две цифры не могут располагаться рядом. Те если у вас есть строка «19у» это значит что у вас одна цифра 19, а не 1 и 9. Как результат вы должны получить «sy»
    Sample Input:
    Hel12o 16e15ple
    Sample Output:
    Hello people

    latin="abcdefghijklmnopqrstuvwxyz" text = input("Введите строку: ") i = 0 s = "" while i < len(text): a = text[i] while "0" 

    По заданию фразу "Hel12o 16e15ple" выводит так "Hello pe1eple" - правильно меняет буквы из алфавита до пробела, но после пробела почему-то не правильно.
    Если же к примеру ввести фразу "12ghj3jhh23" (просто произвольная) - то здесь выдает "lghjcjhhbc" - последние две цифры не воспринимает как число 23 и выводит по буквам "b" и "c".
    Если же к примеру поменять 23 на 24: "12ghj3jhh24" - то тут выводит всё как положено "lghjcjhhx" - все правильно заменяет.
    В чем может быть проблема? почему не приязнь у программы к числу 23 и пробелам.
    Можно как-то подправить именно этот код, без "наворотов", а то я только учусь и еще не вcе понимаю.

    • Вопрос задан более двух лет назад
    • 4518 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *