Как использовать оператор exec () для математической функции с использованием Tkinter-Canvas для создания графа? - PullRequest
0 голосов
/ 08 февраля 2019

Я делаю математический график, используя Tkinter-Canvas.Вот как это работает: сначала пользователь вводит математическую функцию, например: y = 5 * x + 3. Затем программа создает график на Tkinter-Canvas, чтобы показать нам эту функцию.Моя проблема заключается в том, что я не могу получить значение y функции.

До сих пор я пытался создать диапазон и установить для функции 'x' значение ocject диапазона.Это выглядит так:

yPre=input('Enter function: y = ')
for i in range(-100, 100, 1):
    x=i

Я проверил, что:

func='3*5+6'
exec('print('+func+')')

выводит: 21. Итак, я просто подумал: «Теперь я должен импортировать модуль повторно, замените 'x' на строку i, а это y. Но exec (что-то) возвращает None, а не строку. И я не могу распечатать элемент как переменную. Однако это должен быть мой код:

import tkinter as tk, re
# … Canvas, Buttons, Widgets, … 

yPre=input('Enter function: y = ')
for i in range(-100, 100, 1):
    x=i
    yPre=re.sub('x', str(i), yPre)
    y=exec(yPre) # (Or whatever it should be)
...