如何要求用户在python3中输入函数

2024-10-03 02:34:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个程序来寻找函数的极限,但是,我找不到任何有效的方法来要求用户输入函数,或者将任何类型的用户输入转换成一个函数,我发现最好的方法是使用: f= lambda n: eval(input("")
但是,使用这种方法,每次我运行到一个循环中时,都会要求用户一遍又一遍地输入函数,在这种情况下,这会使函数无法使用。我非常感谢您的反馈 抱歉,如果我的英语不好,我道歉,我是新来的,不是英语母语,如果有帮助,这里是完整的代码(所有的东西都是法语)

from lycee import *
n= int
# Rang actuel
f= lambda n: eval(input("veuillez introduire la fonction avec pour variable n"))
# Fonction introduite par l´usager
m= int(input("veuillez introduire la puisance de la valeur aussi grande, petite, ou proche que l´on veut"))
# Valeur max
l= int(input("veuillez introduire une limite eventuelle de la suite"))
d= int
# Prend une valeur selon la limite trouvé ou non
p= int(input("veuillez intoduire le pas"))
# Pas introduit par l´usager
x=int
# Valeur actuelle de la suite
n=1
d=0
x=0
#La limite est elle −∞?
while l>-10^m and n<10^15+1:
    n=n+p
    x=f(n)
    if n==10^15+1:
        print ("Après le calcul d’un billiard de termes, la suite ne semble pas tendre vers −∞")
    else:
        d=1
n=1
x=0
#La limite est elle +∞?
while l<10^m and n<10^15+1:
    n=n+p
    x=f(n)
    if n==10^15+1:
        print ("Après le calcul d’un billiard de termes, la suite ne semble pas tendre vers +∞")
    else:
        d=2
n=1
x=0
#La limite est elle l?
if l>=0:
    while x+l>10^-m and n<10^15+1:
        n=n+p
        x=f(n)
        if n==10^15+1:
            print ("Après le calcul d’un billiard de termes, la suite ne semble pas tendre vers l")
        else:
           d=3
else:
    while x-l>10^-m and n<10^15+1:
        n=n+p
        x=f(n)
        if n==10^15+1:
            print ("Après le calcul d’un billiard de termes, la suite ne semble pas tendre vers l")
        else:
            d=3
if d==1:
    print ("Après le calcul d’un billiard de termes, la suite semble avoir pour limite −∞")
else:
    if d==2:
        print ("Après le calcul d’un billiard de termes, la suite semble avoir pour limite +∞")
    else:
        if d==3:
            print ("Après le calcul d’un billiard de termes, la suite semble avoir pour limitel")
        else:
            print ("Après le calcul d’un billiard de termes, la suite semble ne pas avoir de limite")

Tags: leifdeelselaaprsuiteint
1条回答
网友
1楼 · 发布于 2024-10-03 02:34:28

您可以使用^{}函数将用户的输入编译成AST对象,这样lambda函数就可以evalAST对象,而不是再次要求用户输入:

func = compile(input("veuillez introduire la fonction avec pour variable n"), '<input>', 'eval')
f = lambda n: eval(func)

相关问题 更多 >