В настоящее время я изучаю Python с помощью вводного текста Zelle, и я пытаюсь воссоздать одну из примеров программ, в которой используется прилагаемый файл graphics.py. Поскольку я использую Python 3.1, и текст был написан для 2.x, я использую файл GraphicsPy3.py, найденный по адресу http://mcsp.wartburg.edu/zelle/python и переименовав его на моем компьютере.Начальная графическая программа в Python, дающая ошибку «из пространства стека»
файл с именем futval_graph.py выглядит следующим образом:
from graphics import *
def main():
print("This program plots the growth of a 10-year investment.")
principal = eval(input("Enter the initial principal: "))
apr = eval(input("Enter the annualized interest rate: "))
win = GraphWin("Investment Grown Chart", 320, 420)
win.setBackground("white")
Text(Point(20, 230), ' 0.0K').draw(win)
Text(Point(20, 180), ' 2.5K').draw(win)
Text(Point(20, 130), ' 5.0K').draw(win)
Text(Point(20, 80), ' 7.5K').draw(win)
Text(Point(20, 30), '10.0K').draw(win)
# Rest of code is here but I've commented it out to isolate the problem.
main()
Когда я бег «импорт futval_graph» на свежую сессии IDLE программа просто работает, а затем вешает после inputing «» апр без открытия новой графики окно. При запуске программы из командной строки я получаю следующий результат:
C: \ Python31> futval_graph.py
Эта программа показывает зависимость роста инвестиций в 10 лет.
Введите начальный принципала: ошибка в фоновом режиме обработчика ошибок:
из стека (? Бесконечный цикл)
при выполнении
«:: TCL :: Bgerror {(? Бесконечная петля) из стека} {- код 1 -уровень 0 -errorco де NONE -errorinfo {из стека (бесконечный цикл?)
в то время как execu ...»
Особенно расстраивает тот факт, что эта последовательность команд работает при вводе в свежая сессия IDLE. А затем при запуске 'import futval_graph' из IDLE после того, как все команды были запущены самостоятельно, futval_graph работает правильно.
Итак, мой вопрос: как я могу получить futval_graph.py для правильной работы как из командной строки, так и из IDLE? Извините, если мое объяснение проблемы немного разбросано. Дайте мне знать, если какая-либо дополнительная информация поможет уточнить.
Что вы туда вводите? на первой строке ввода? вторая линия никогда не появляется. – SilentGhost
Обычно я просто вводил номер 2000, хотя теоретически любой номер должен работать. – IanWhalen
только точка стиля: используйте «int» not «eval» –