Python использование русского языка

Как заставить выводить русский текст Python?

Что нужно сделать что-бы в консоль выводилась кириллица?

Для англ. алфавита — работает, а для русского — нет.

__author__ = 'getlucky' # -*- coding: utf-8 -*- def cesarMethod(message): output = [] alphabet = 'abcdefghijklmnopqrstuvwxyz'#'абвгдеёжзийклмнопрстуфхцчшщъыьэюя' steps = int(raw_input('Введите Ваш ключ: ')) for i in message: if i == ' ': output.append(' ') else: pos = alphabet.index(i) + steps if pos >= 25: pos -= 26 output.append(alphabet[pos].decode('utf8')) print 'Зашифрованное сообщение: ', ''.join(output) message = raw_input('Введите Ваше сообщение: ').lower() cesarMethod(message)

Оценить 2 комментария

winordie

winordie

# -*- coding: utf-8 -*- message = 'ывпавыапавыпвпав' for i in message: print(i)
message = u'ывпавыапавыпвпав' for i in message: print(i)

разница всего в одном символе

# -*- coding: utf-8 -*- def cesarMethod(message): output = [] # alphabet = 'abcdefghijklmnopqrstuvwxyz'#'абвгдеёжзийклмнопрстуфхцчшщъыьэюя' alphabet = u'абвгдеёжзийклмнопрстуфхцчшщъыьэюя' # steps = int(raw_input('Введите Ваш ключ: ')) steps = 2 for i in message.decode('utf8'): if i == ' ': output.append(' ') else: pos = alphabet.index(i) + steps if pos >= 25: pos -= 26 output.append(alphabet[pos]) print 'Зашифрованное сообщение: ', ''.join(output) # message = raw_input('Введите Ваше сообщение: ').lower() message = 'специальнодлятостера' cesarMethod(message)

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Читайте также:  Java file find files in directory

belonesox/python-udaff-encoding

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

🐍 Udaff — русификация 🇷🇺 Питона 🐍 🐍

В русскоязычном пространстве наблюдается странный эффект изобретения «русскоязычных» языков программирования, и попыток навязать их обучающимся в Школе и ВУЗе

См. например Кумир, SLang (не путать с еще одной самоделкой — СЛанг)… множество их.

С одной стороны, вроде как основания есть — из-за специфики высшего образования в РФ (бесплатное образование, оплачивается ВУЗам МинОбром подушевым образом, отчислять невыгодно, и даже запрещено), в ВУЗы на околопрограммиские специальности попадает множество немотивированных и функционально необразованных кадров, не способных понимать даже текст с десятком ключевых слов на английском. С другой стороны, возможно успех таких платформ типа 1C именно этим и обусловлен, да и есть немало энтузиастов, которые считают, что русификация ЯП — полезна, и учить на русифицированных языках эффективно.

Однако проблема всех этих самоделок в том, что язык — это не только синтаксис грамматики в BNF на полстраницы, а это инфраструктура:

  • Редакторы, IDE, поддерживающие 100500 удобных фич, не говоря уже о обязательной «построчной» отладке.
    • Разработчики «Русских ЯП» пытаются делать некие подобия IDE, благо сейчас это можно слепить из каких-нибудь готовых компонентов (модуль текстового редактора с подсветкой, MDI интерфейс с менюшками) — но все что получается, это скажем прямо, уровень 90х, и сравнивая это с бесплатным и open-source «швейцарским ножем» Visual Studio Code, (не говоря уже о коммерческих IDE) хочеться только плакать от жалости.

    Но если «показать что-то про программирование на русском», на уровне «операторы-ветвление-цикл-функция-рекурсия» для совершенно левых людей (которым максимум в 1C в жизни придется что-то подправить) — допустимо, то совращать «девственно» чистых школьников кривыми поделиями, отрубая им прямой выход к реальной разработке и отбивая желание программировать («пробовал ваше программирование на К… » — ничего не работает, тормозит, криво, неудобно, долбайтесь сами), как минимум неэтично, хотя к сожалению, уголовно ненаказуемо.

    Кстати, иногда изобретают «еще одну платформу для обучения» даже не для русификации языка, а для, скажем так, «реанимации стюардессы», типа паскаля, но проблемы остаются те же — какое-то свое подмножество языка, унылые среды разработки, все сбоку от майнстрима и сообщества.

    Возникает дилемма — как бы убить двух зайцев — пользуясь одной платформой дать возможность неодаренным и негодным студентам и школьникам «попробовать программирование», а продвинутым, тут же, в том же классе, на том же софте, дать возможность уйти в отрыв и стать настоящими профессионалами.

    Итак, уже есть Python, идеальный язык для обучения, рожденный как язык для обучения, десятилетиями использующийся от везде — от уровня младших школьников, до профессионалов, как в программировании, так и в куче научных областей — будь то астрономия, биоинформатика, статистика… везде.

    Знание его полезно, если не сказать необходимо, даже тем, кто не программист, если деятельность хоть как-то интеллектуальна (да, даже если экономист-юрист уровня выше чем «за рубль покупаем, за три продаем, на эти два процента и живем»).

    К нему есть куча IDE, включая прекрасную поддержку даже в бесплатном и свободном Visual Studio Code (не нужно изобретать страшные велосипеды), есть 100500 пакетов, платформы для написания всего — игр, десктоп и вебприложений, даже мобильной и IOT разработки… Впрочем, все это банально и очевидно.

    Наша идея — добавить еще «маленькую лесенку» снизу, разрешив писать ключевые слова и базовые функции на русском, для тех, кто вот только стартует, не потеряв никаких возможностей Python.

    Для этого можно воспользоваться идеей «пользовательских кодировок», перекодирующих файл с программным кодом при открытии. В результате, несколько десятков ключевых слов Python приводятся к каноническому английскому виду, их понимает и язык, и отладчики и т.п. А обучающийся имеет полную возможность, по мере изучения, постепенно заменить «русские аналоги» их оригинальными ключевыми словами, и с улыбкой (но без ненависти) забыть свои самые первые программы.

    Пример отладки «факториала

    Английский Русский
    and и
    as как
    assert проверить
    break прервать
    class класс
    continue продолжить
    def функция
    del удалить
    elif ежели
    else иначе
    except случись
    exec выполни
    finally наконец
    for перебор
    from из
    global глобальное
    if если
    import подключить
    in в
    is суть
    lambda лямбда
    not не
    or или
    pass ничего
    print печать
    raise паника
    return вернуть
    try пробовать
    while повторять
    with пусть
    yield вернуть
    range интервал

    Лично я (Стас Фомин), не считаю, что это необходимо. На мой взгляд лучше таки выучить эти пару десятков ключевых слов Python на английском, и отсеять «электорат» с уровнем IQ меньше веса.
    Но идя путем «выбора меньшего зла» (toss a coin to…), я уверен, что этот подход лучше изобретения кривых велосипедов 🚲 🚵‍♀ 🚵‍♀ от скучающих преподавателей, которые будут калечить поколения школьников 👨‍🎓 👨‍🎓 👨‍🎓 и студентов 👩‍🎓 👩‍🎓 👩‍🎓 . Т.е. я был бы рад, если все это не пригодилось при обучении, но при встрече с изобретателем 🤡 очередного «национального языка» 📜 , у меня будет куда его конструктивно послать 🤦‍♂ .

    С другой стороны, может это пригодится где-то, где Python 🐍 используется как DSL для какой-нибудь бизнес-логики 🧮 🗠 📊 — короткие функции, которых должны править и вычитывать специалисты 🧙‍♂️ 🧙‍♂️ в предметной области, может это пригодится и там.

    Более того, можно привлечь к программированию, совсем, так сказать, правополушарных людей 👽 👽 👽 , и использовать вместо идентификаторов функций и переменных значки emoji:

    # -*- coding: udaff -*- функция 📢(✉️): печать(✉️) 📢("✋ 🌏")

    (собственно идея и код взяты из проекта https://github.com/suda/python-emoji-encoding, спасибо его автору!)

    Ну а название «udaff», отсылает к популярному времен начала Рунета ресурсу 🐍 ╰⋃╯ 🐍 , который прекрасно иллюстрировал идею, что буквоедство и грамотность не так важны, как суть и контент, а иногда такое «грязное языковое хакерство», как кстати, в предложенном решении, даже весело. Кстати, тут несложно сделать и поддержку разных версий «падонкоффского языга».

    Поддерживается только 3 питон, ибо нет смысла поддерживать второй.

    sudo pip3 install udaff-encoding 

    (в pip еще не зарегистрировал, но с гитхаба можно поставить)

    После инсталляции, ставьте первой (или второй, если первая shebang-строка) строчкой спецификатор кодировки:

    # -*- coding: udaff -*- функция 📢(✉️): печать(✉️) 📢("✋ 🌏")

    Как обычный python-пакет, но возможно надо руками выкинуть udaff.pth из каталога site-packages . Это конечно надо автоматизировать.

    Сейчас нельзя напрямую запустить отлаживать файл с такой кодировкой. Будет ругаццо:

    SyntaxError: encoding problem: udaff 

    Пока есть воркараунт, сделать промежуточный файл-прокси, который включит как модуль нужный файл

    Его уже можно чем угодно запускать.

    Но кстати, отладке под Visual Studio Code это не мешает — можно запускать и отлаживать прямо из редактора.

    Еще что-то как-то глючит под Anaconda в Windows, нет времени разбираться.

    Источник

    как заставить питон писать по русски .

    мне нужно, что бы строка просила ввести число a= input(«ввод «) вот так не получается, a= input(«input «) а так все верно и нормально работает. как мне осуществить первый вариант .

    1. Какая трассировочная информация (какая именно ошибка) ? Думаю проблема с кодировкой.. .

    Видимо python версии 2.7 либо ниже.. .
    Если я прав, то есть еще raw_input()
    Код где конкретно не работает, при запуске модуля или в интерактивном режиме?

    В начале модуля указывали это?
    # -*- coding: utf-8 -*-

    Вот Вам пару строк для работы с кодировками:

    import sys
    print sys.getdefaultencoding() # в python 3.х print() — функция
    # Выведет кодировку, используемую по-умолчанию.
    # дело в том, что в питоне 3.х — используется utf8, а в 2.х — ansii
    # основным изменением в python 3.2 является отсутствие разделение на строки
    # юникода и строки байтов. Вместо этого был введен тип bytes.

    import sys
    reload(sys)
    sys.setdefaultencoding(‘utf-8’)
    # изменит кодировку по-умолчанию

    Но в этом нет необходимости, обычно достаточно простого # -*- coding: utf-8 -*- в начале модуля, либо можно указать кодировку в настройках текстового редактора.

    я не знаю какая ошибка, просто создал .py файл и пишу в нём код, потом двойным кликом запускаю. и в консоли все обрабатывается. так вот если по русский писать, то консоль открывается и сразу закрывается. а если на английском, то всё работает

    forgotten Профи (703) Ну для начала попробуйте вначале файла .py указать вот это # -*- coding: utf-8 -*-

    # -*- coding: utf-8 -*-
    вот это не указывал. да и к тому же, это вроде комментарий. сейчас указал. писать стал по русски, но вместо слова «ввод» пишет «ттюф». значит нужна какая то другая

    forgotten Профи (703) Какая версия питона? WIN+R вписываете cmd — открывается командная строка, вписываете python и смотрите версию.

    Источник

    VS + Python + кириллица, ошибка в консоли, как решить?

    Всем привет!
    Ради интереса поставил Python 3.5.1 -(решил посмотреть что это за язык, много слышал про него)
    Так вот, когда выводишь программу в консоли у меня возникает ошибка, как я понял из-за русского языка и из-за кодировки. Когда пишешь на инглише все норм — конечно можно писать все на нем! и забить на проблему. Но, все-таки мы же русские ) и хочется сообщения писать на своем родном языке.
    Погуглил данную тему, у многих людей на многих языках программирования возникает проблема именно из-за русских букв, все решают данную проблему по разному.

    ccfa8746d7a742d1bf77066a09875e07.jpg

    Господа! вопрос как решить мою проблему ?
    Спасибо.

    Что удалось нарыть.
    А.
    если поставить в начале кода такую конструкцию:
    # -*- coding: cp1251 -*-
    То начинает все работать, как я понял это принудительное перекодирование файла — (буду благодарен если точнее объясните господа)

    Б.
    (как я понял)
    Файл нужно создавать в нужной кодировке utf8
    По умолчанию Visual Studio создает файлы в другой кодировки, надо понять где это поменять / проверить / потестить.

    Да, все верно! в Visual Studio идем Файл — Дополнительные параметры сохранения
    и ставим так(скрин) все начинает работать..
    358d87fdaff645d1b289cdadb3266239.jpg8bf2e7537e0e4572aedcc5395f625dd5.jpg

    67110686d7914ba5ac982a8e4d684502.jpg

    Но это не спасает от такой записи. (скрин) вопрос остается что делать ?

    34d1f4ac38fd47888e93d3d57f4cd19f.jpg

    Ради теста, напрямую запустил консоль python — а ввел там нужную команду все норм отобразилось!
    Да что не так с этой чертовой VS ?

    Источник

Оцените статью