Podanie funkcji matematycznej przez użytkownika w Pythonie

0

Witam.
Mam problem z odczytaniem funkcji z klawiatury użytkownika i pracowaniu na niej. Chodzi o to, zeby użytkownik mógł podać jakąś funkcję (np. x + 2), a potem, zebym mogla bez problemów wyświetlać f(zadanej liczby), albo porównywać f(a) z f(b), gdzie a i b także podaje użytkownik.
Udało mi się znależć coś takiego:
fx = input("Podaj funkcje : ")
funkcja = lambda x: eval(fx)
Niestety dalej nie moge wysiwetlic tej funkcji ani porównywać jej wartości od zadanych liczb.

1

https://en.m.wikipedia.org/wiki/Shunting-yard_algorithm

Edit: no mozna eval ale to chyba srednio bezpieczne

0

Jeśli Masz wyrażenia całkowicie znawiasowane, to gotowiec w Javie jest tutaj:
https://algs4.cs.princeton.edu/13stacks/Evaluate.java.html

0

Jak najbardziej mozesz wyswietlac funkcje w ten sposob:
print(fx)
Mozesz rowniez podstawiac tam dowolne wartosci oraz je porownywac:

a = input("Podaj wartosc a: ")
b = input("Podaj wartosc b: ")
x = int(a)
fa = eval(fx)
print("Wartosc funkcji fx dla x = a : ",fa)
x = int(b)
fb = eval(fx)
print("Wartosc funkcji fx dla x = b : ",fb)
if fa > fb:
#dzialanie
    pass
else:
#dzialanie
    pass

1 użytkowników online, w tym zalogowanych: 0, gości: 1