Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

python - How to use sin(x) and cos(x) functions with eval

I need a program which can make graphs by matplotlib with functions I write in the console. But it doesn't work with trigonometric functions. The code I already wrote is:

from numpy import linspace
import matplotlib.pyplot as plt
from math import sin, cos, tan

print("input a:")
a = float(input())
print("input b:")
b = float(input())
x = linspace(a, b, 1001)
y = eval(input())

plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I Don't exactly understand what you want to do but that might help:

from numpy import linspace, sin, cos, tan
import matplotlib.pyplot as plt

a = float(input('Enter x0: '))
b = float(input('Enter x1: '))
x = linspace(a, b, 1001)

for trig_func in [sin, cos]:
    y = trig_func(x)
    plt.title(f'{trig_func.__name__}(x)')
    plt.plot(x, y)
    plt.xlabel('x')
    plt.ylabel('y')
    plt.show()

Please explain how you try to implement eval function..


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...