как заставить питон писать по русски .
мне нужно, что бы строка просила ввести число 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 комментария
# -*- 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 -(решил посмотреть что это за язык, много слышал про него)
Так вот, когда выводишь программу в консоли у меня возникает ошибка, как я понял из-за русского языка и из-за кодировки. Когда пишешь на инглише все норм — конечно можно писать все на нем! и забить на проблему. Но, все-таки мы же русские ) и хочется сообщения писать на своем родном языке.
Погуглил данную тему, у многих людей на многих языках программирования возникает проблема именно из-за русских букв, все решают данную проблему по разному.
Господа! вопрос как решить мою проблему ?
Спасибо.
Что удалось нарыть.
А.
если поставить в начале кода такую конструкцию:
# -*- coding: cp1251 -*-
То начинает все работать, как я понял это принудительное перекодирование файла — (буду благодарен если точнее объясните господа)
Б.
(как я понял)
Файл нужно создавать в нужной кодировке utf8
По умолчанию Visual Studio создает файлы в другой кодировки, надо понять где это поменять / проверить / потестить.
Да, все верно! в Visual Studio идем Файл — Дополнительные параметры сохранения
и ставим так(скрин) все начинает работать..
Но это не спасает от такой записи. (скрин) вопрос остается что делать ?
Ради теста, напрямую запустил консоль 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):