如何避免Python中的语义错误?

时间:2019-06-24 15:03:17

标签: python

我的作业是关于费马的最后定理:

1)编写一个名为check_fermat的函数,该函数带有四个参数a,b,c和n,并检查费马定理是否成立。

2)编写一个函数,提示用户输入a,b,c和n的值,并将其转换为 整数,并使用check_fermat来检查它们是否违反了Fermat的定理。

这是我的代码,如下所示。有用。 但是,正确答案后总会有一个“无”,例如“正确!无”。

如果您能帮助我解决这个问题,将不胜感激。非常感谢。

def check_fermat(a,b,c,n):
    if n > 2:
        print("“Holy smokes, Fermat was wrong!")
    if n == 2  and a**n + b**n == c**n:
        print("Correct!")    
    else:
        print("No, that doesn’t work")


def check_number():
    a = int(input("Choose a number for a: "))
    b = int(input("Choose a number for b: "))
    c = int(input("Choose a number for c: "))
    n = int(input("Choose a number for n: "))
    print(check_fermat(a,b,c,n))

check_number()

1 个答案:

答案 0 :(得分:0)

print(check_fermat(a,b,c,n))

此行是打印None的行,这是因为check_fermat的返回值为None

解决方案是:

  • 仅在check_fermat中打印,从print(check_fermat(a,b,c,n))中删除打印
  • 或者,从check_fermat返回一个字符串(或其他有意义的返回值),并保留print(check_fermat(a,b,c,n))不变。