定义函数中的raw_input

时间:2014-03-04 10:47:17

标签: python

这是一个检查费马定理的程序。代码接受输入但不显示任何内容。

def bam(dam):
    x="enter first digit"
    a=raw_input(x)
    int(a)
    y="enter second digit"
    b=raw_input(y)
    int(b)
    z="enter third digit"
    a=raw_input(z)
    int(b)
    g="enter power"
    n=raw_input(g)
    int(n
    )
def check_fermat(a,b,c,n):
    if n>2 and a**n+b**n==c**n:
        print "Holy Smokes Fermat was wrong!"
    else:
        print "N0, that doesnt work"

bam(check_fermat)

1 个答案:

答案 0 :(得分:1)

你从不致电 check_fermat()。如果bam应该将输入应用于函数,则忘记添加该调用:

dam(int(a), int(b), int(c), int(n))

但您从未分配到c(您已分配给b两次)。

可以移除int()函数中的所有bam()次调用;他们没有做任何有用的事情,因为你忽略了他们的回报价值。

如果您使用了更有意义的名称,dam可能如下所示:

def take_input(func):
    a = int(raw_input("enter first digit"))
    b = int(raw_input("enter second digit"))
    c = int(raw_input("enter third digit"))
    n = int(raw_input("enter power"))
    return func(a, b, c, n)

并将其用作:

take_input(check_fermat)