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

时间:2018-11-02 22:48:36

标签: python python-3.x function limit

我正在尝试制作一个程序来查找功能的限制,但是,我找不到任何有效的方法来要求用户输入功能,或者将任何类型的用户输入转换为一个最好的我发现使用的方式: 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")

1 个答案:

答案 0 :(得分:0)

您可以使用compile函数将用户的输入编译为AST对象,以便您的lambda函数可以eval的AST对象,而无需再次询问用户输入: / p>

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