Если последняя версия Eclipse / Pydev не устранила проблему, я бы порекомендовал вам добавить пару строк отладки / отображения, чтобы показать вам, что Eclipse думает, что он получил как ввод.
Между этими двумяlines:
while choice != 'q':
if choice == 'c':
Добавьте следующее, с отступом на том же уровне, что и выбор if == 'c': line:
print ('debug1\tchoice =', choice) # what you typed
print ('debug2\tlen(choice)=', len(choice)) # should be length of 1,
print ('debug3\tsame?', choice == choice.strip()) # should be True
Если debug2 не равен 1 или debug3 нетПравда, есть хитрая ошибка с пробелами, которую, вероятно, можно решить, изменив это:
while choice != 'q':
на следующее:
while choice.strip() != 'q':
Кроме того, мне любопытно описание.Вы сказали, что код работает --- где он работал?Вы сказали, что IDLE потерпел крах, и Eclipse не работает.
Если вы используете другой редактор (например, Notepad ++, PyScripter) или другую IDE (например, PyCharm или WingIDE), выполните Show Whitespace для примера кода в обоихинструменты и убедитесь, что код действительно идентичен тому, что работает в Eclipse / PyDev.
В Python определенно имеет значение whitepsace (табуляции, пробелы), и некоторые инструменты интерпретируют их немного по-другому - особенно в тех случаях, когда вы отказоввзад и вперед между ними.
Приветствия, Роб