Уведомления

Группа в Telegram: @pythonsu

#1 Март 1, 2016 09:58:59

Leon0x1
Зарегистрирован: 2016-03-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в консоли

Здравствуйте. Я только начинаю изучать Phyton. Возникли трудности при выводе простеньких команд на консоль. В одной строке вылазят крякозябры, тогда как в остальных всё нормально. Работаю в Visual Studio 2015 Community, так как привык к этой IDE. Ниже сам код с проблемой:

# -*- coding: utf-8 -*-
a = 70;
b = int (input ('введите целое число:'))
if b == a:
print ('поздравляю, вы угадали!' , ‘Хотя и не получили никакого приза за это’)
elif b < a:
print ('Нет, введённое число больше')
elif b > a:
print ('Нет, введённое число меньше')

Собственно крякозябры выходят в строке ВВЕДИТЕ ЦЕЛОЕ ЧИСЛО, символы в ней кодируются непонятно в
чём. Я целых два дня искал решение этой проблемы в интернете, но так и не нашёл. Никакие .encode('utf-8') подставляемые в конце строки с разными кодировками не помогают, меняются только крякозябры, но русские буквы упорно не желают выдаваться консолью.
Есть ли вообще решение этой проблемы под Windows? Если кто знает, подскажите пожалуйста начинающему питонисту.

Офлайн

#2 Март 1, 2016 10:32:12

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

русский текст в консоли

Версия питона 3?
Сам файл с исходным кодом точно кодирован в заявленные UTF-8 ?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Март 1, 2016 10:55:43

Leon0x1
Зарегистрирован: 2016-03-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в консоли

JOHN_16
Версия питона 3?Сам файл с исходным кодом точно кодирован в заявленные UTF-8 ?
Питон 3.5
Файл с расширением .py автоматически создаётся при создании проекта в Visual Studio и программа к сожалению не указывает в какой кодировке она его создаёт. Я потом в файле в самом начале пишу вот это: # -*- coding: utf-8 -*- и перезапускаю проект. После этого все строки на русском уже в самом файле .py превращаются в крякозябры (значит кодировка меняется), я их удаляю и пишу заново. После этого и консоль все русские строки выводит нормально, кроме первой b = int (input ('введите целое число:'))
Как я понимаю, строка под input требует какой-то особой кодировки, а может и вообще невозможно её в Питоне 3.5 на русском вывести?

Офлайн

#4 Март 1, 2016 12:47:06

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

русский текст в консоли

Пока что делайте перед input отдельный print с приглашением ввести число. А я посмотрю попозже откуда такая проблема.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Март 1, 2016 18:04:37

Leon0x1
Зарегистрирован: 2016-03-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в консоли

JOHN_16
Пока что делайте перед input отдельный print с приглашением ввести число. А я посмотрю попозже откуда такая проблема.
К сожалению интерпретатор не позволяет этого сделать, выдаёт синтаксическую ошибку.

Отредактировано Leon0x1 (Март 1, 2016 18:05:41)

Офлайн

#6 Март 1, 2016 22:02:52

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

русский текст в консоли

ну так показывайте код и ошибку. Это же вы ошиблись, а не попытка сделать невозможное



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Март 1, 2016 22:05:16

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

русский текст в консоли

Leon0x1
К сожалению интерпретатор не позволяет этого сделать, выдаёт синтаксическую ошибку.
Приведите код и полученное сообщение об ошибке.
a = 70;
print ('введите целое число:')
b = int (input (''))



Отредактировано doza_and (Март 1, 2016 22:05:59)

Офлайн

#8 Март 3, 2016 11:23:07

Leon0x1
Зарегистрирован: 2016-03-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в консоли

doza_and
Ваш вариант сработал! Я по неопытности отступы неправильно делал, никак после С++ не могу привыкнуть к отступам и пока ещё не до конца соображаю где и сколько их делать.

Офлайн

#9 Март 3, 2016 20:20:56

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

русский текст в консоли

Leon0x1
где и сколько их делать.
Это за вас редактор должен делать. Если MSVC не делает, выкиньте его и пользуйтесь нормальным редактором. Мне казалось что он вольно обращается с табуляциями. Интересно MSVC в код на питоне вставляет табуляции или пробелы?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version