Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 16, 2017 15:50:06

dreamer1cc
Зарегистрирован: 2017-02-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Пользовательский ввод буквы "К"

Добрый день.

Столкнулся с необъяснимой проблемой. Большая букава К введенная с помощью комманды input() в python версии 3.5.2 сразу же вызывает исключение. Такая проблема только с этой буквой. Маленькая к, любая другая большая или маленькая - порядок.

Вот как выглядит код:

 interview = {}
active = True
while active:
    names = input("Ваше имя? ")
    vacation = input("\nГде бы вы хотели провести отпуск? ")
    interview[names] = vacation
    message = input("\nХотите продолжить опрос? Да\Нет. ").lower()
    if message == "нет":
        active = False
print("\nРезультаты интервью пользователей: ")
for name, vacation in interview.items():
    print(name.title() + " хотел бы побывать во время отпуска в " + vacation.title())

вот его результат:
 Ваше имя? К
---------------------------------------------------------------------------
EOFError                                  Traceback (most recent call last)
<ipython-input-10-02fd86843ac1> in <module>()
      2 active = True
      3 while active:
----> 4     names = input("Ваше имя? ").lower()
      5     vacation = input("\nГде бы вы хотели провести отпуск? ").lower()
      6     interview[names] = vacation
EOFError:

Что я сделал не так? Не могу понять или как-либо обработать эту ситуацию корректно. Не ловить же в конце концов исключение, меняя при этом на латинскую K…

Повторяется даже при :
 message = input("напиши тут ")
print(message)

Офлайн

#2 Фев. 16, 2017 16:38:10

dreamer1cc
Зарегистрирован: 2017-02-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Пользовательский ввод буквы "К"

Опытным путём удалось выяснить, что если первым будет введен любой символ, а потом в тексте будет присутствовать К - проблемы не возникнет, т.е. даже банально первым ставим пробел, и дальше пишем - ошибки нет.

Но присвоить переменной пробел + пользовательский ввод нелья, ошибка именно в input, при вводе текста.

Офлайн

#3 Фев. 16, 2017 16:55:55

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Пользовательский ввод буквы "К"

странно но все без проблем

 Ваше имя? К
Где бы вы хотели провести отпуск? багамы
Хотите продолжить опрос? Да\Нет. да
Ваше имя? к
Где бы вы хотели провести отпуск? там же
Хотите продолжить опрос? Да\Нет. нет
Результаты интервью пользователей: 
К хотел бы побывать во время отпуска в Багамы
К хотел бы побывать во время отпуска в Там Же

Офлайн

#4 Фев. 16, 2017 16:59:54

dreamer1cc
Зарегистрирован: 2017-02-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Пользовательский ввод буквы "К"

Ещё более опытным путём пришел к выводу, что это косяк оболочки IPython, напрямую запущенный python с переданным параметром - моим файлом со скриптом - так же отрабатывает без ошибок.

Т.е. виноват интепритатор. Посоветуете безпроблемный на Windows?

Офлайн

#5 Фев. 16, 2017 18:21:22

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

Пользовательский ввод буквы "К"

дело не совсем в питоне или даже в ipython, тут дело видимо в окружении, нужно исследовать проблему:

(env) vagrant@local:$ ipython3
Python 3.4.3 (default, Nov 17 2016, 01:08:31)
Type “copyright”, “credits” or “license” for more information.

IPython 5.1.0 – An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about ‘object’, use ‘object??’ for extra details.

In : input()
К
Out: ‘К’

In : exit()


(env) $ pshell settings/vagrant.ini
Python 3.4.3 (default, Nov 17 2016, 01:08:31)
Type “copyright”, “credits” or “license” for more information.

IPython 5.1.0 – An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about ‘object’, use ‘object??’ for extra details.

In : input()
К
—————————————————————————
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-1-25ede6ea20bf> in <module>()
—-> 1 input()

UnicodeDecodeError: ‘utf-8’ codec can't decode byte 0xd0 in position 0: invalid continuation byte



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

Отредактировано JOHN_16 (Фев. 16, 2017 18:22:19)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version