Leon0x1
Март 1, 2016 09:58:59
Здравствуйте. Я только начинаю изучать 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? Если кто знает, подскажите пожалуйста начинающему питонисту.
JOHN_16
Март 1, 2016 10:32:12
Версия питона 3?
Сам файл с исходным кодом точно кодирован в заявленные UTF-8 ?
Leon0x1
Март 1, 2016 10:55:43
JOHN_16
Версия питона 3?Сам файл с исходным кодом точно кодирован в заявленные UTF-8 ?
Питон 3.5
Файл с расширением .py автоматически создаётся при создании проекта в Visual Studio и программа к сожалению не указывает в какой кодировке она его создаёт. Я потом в файле в самом начале пишу вот это: # -*- coding: utf-8 -*- и перезапускаю проект. После этого все строки на русском уже в самом файле .py превращаются в крякозябры (значит кодировка меняется), я их удаляю и пишу заново. После этого и консоль все русские строки выводит нормально, кроме первой b = int (input ('введите целое число:'))
Как я понимаю, строка под input требует какой-то особой кодировки, а может и вообще невозможно её в Питоне 3.5 на русском вывести?
JOHN_16
Март 1, 2016 12:47:06
Пока что делайте перед input отдельный print с приглашением ввести число. А я посмотрю попозже откуда такая проблема.
Leon0x1
Март 1, 2016 18:04:37
JOHN_16
Пока что делайте перед input отдельный print с приглашением ввести число. А я посмотрю попозже откуда такая проблема.
К сожалению интерпретатор не позволяет этого сделать, выдаёт синтаксическую ошибку.
JOHN_16
Март 1, 2016 22:02:52
ну так показывайте код и ошибку. Это же вы ошиблись, а не попытка сделать невозможное
doza_and
Март 1, 2016 22:05:16
Leon0x1
К сожалению интерпретатор не позволяет этого сделать, выдаёт синтаксическую ошибку.
Приведите код и полученное сообщение об ошибке.
a = 70;
print ('введите целое число:')
b = int (input (''))
Leon0x1
Март 3, 2016 11:23:07
doza_and
Ваш вариант сработал! Я по неопытности отступы неправильно делал, никак после С++ не могу привыкнуть к отступам и пока ещё не до конца соображаю где и сколько их делать.
doza_and
Март 3, 2016 20:20:56
Leon0x1
где и сколько их делать.
Это за вас редактор должен делать. Если MSVC не делает, выкиньте его и пользуйтесь нормальным редактором. Мне казалось что он вольно обращается с табуляциями. Интересно MSVC в код на питоне вставляет табуляции или пробелы?