Python поддержка русского языка

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

мне нужно, что бы строка просила ввести число 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 и смотрите версию.

Источник

Как заставить выводить русский текст 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)

Источник

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

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

ccfa8746d7a742d1bf77066a09875e07.jpg

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

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

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

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

67110686d7914ba5ac982a8e4d684502.jpg

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

34d1f4ac38fd47888e93d3d57f4cd19f.jpg

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

Источник

Python + кириллица?

Ситуация: есть консольное приложение на Python (версия 2.7). В ходе работы приложение должно выводить (считывать не нужно, уж не знаю, важно ли это) данные в консоль, в том числе текст на русском языке. Проблема

def __str__(self): return "%s |(%s)|" % (self.name, self.id)

вот self.name — строка, в которой могут быть русские символы.

Без каких либо преобразований вообще — вылетает ошибка:

UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-4: ordinal not in range(128)

def __str__(self): return "%s |(%s)|" % (repr(self.name.encode("UTF-8")), self.id)

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

‘\xd0\x95\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xb0 S.’ |(157927927)|

Как решать такую проблему? С латиницей проблем нет, тот же код выводит не байтовую репрезентацию, а нормальные латинские символы символы.

Что кстати можно почитать по этому поводу?

#!/usr/bin/env python # -*- coding: utf-8 -*- class Foo(object): def __init__(self, name): self.name = name def __str__(self): return 'str: %s' % self.name def __unicode__(self): return 'uni: %s' % self.name.decode('utf-8') def __repr__(self): return 'repr: %s' % self.name a = 'Елена S' b = Foo(a) print(str(b)) print(unicode(b)) print(repr(b)) 

Вы правы, такой код действительно работает, вот только я забыл уточнить, что информация и приходит в «байтовой репрезентации» от источника (twitter json).

Дорогой автор !
я долго размышлял в чём дело!
пока не прочел вашу статью
versin python 2
-*- coding: utf-8 -*-
слово=»слова»
print ‘слово’
увы он не поддерживал модулей поддержки языков !

а проблема моя была в том что работая с программой eclipse mars все слова выводимые программой он судорожно показывал обнародовал как ошибка и выдавал № код ячейки памяти в котором хранился этот непонятный интерпритатору обьект .
помогло вот что!
sudo apt-get install python 3
и естественно смена компилятора python 2 на более позднюю версию !

@python_2_unicode_compatible class AuthorModel(models.Model):

Войдите, чтобы написать ответ

Можно ли сделать перезагрузку телеграмм бота на aiogram?

Источник

Читайте также:  Multibyte string functions php
Оцените статью