簡體   English   中英

如何接受函數作為輸入?

[英]How do I accept a function as an input?

我正在嘗試編寫一個程序來接受和評估一個簡單的函數,例如:

A=[]
v = input("Enter Function of x: "
o = input("Enter length of range: ")

for x in range (1,o+1):
    f = (v)
    A.append(f)

但這只是在列表中返回函數文本(輸入字符串)“ o”次。 我究竟做錯了什么?

編輯:感謝@tdelaney的答案:使用f = eval(v)

v僅僅是一個字符串。 在其周圍加上括號使它成為一個元素的元組-相同的字符串。 您沒有做任何事情將其轉換為功能-在任何編程語言中這都不是小菜一碟,因為您正試圖將新代碼注入已解析的程序中。

Python為此提供了eval函數。 但是要當心,因為eval非常強大且危險。

my_func = "x*x + 2*x - 3"
limit = 5
y_vals = []

for x in range (1,limit+1):
    y_vals.append(eval(my_func))

print(y_vals)

輸出:

[0, 5, 12, 21, 32]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM