Python函数什么都不返回

时间:2018-09-24 23:22:19

标签: python python-3.x

我正在做作业rn,但出现了一些问题,我想在函数中返回true或false,但是最后什么也没显示。

import math
import decimal

#1
def pythagorean_pair():
    a = input("Type a number A(Must be an integer): ")
    if a.isdigit():
        a=int(a)
        b = input("Type a number B(Must be an integer): ")
        if b.isdigit():
            b = int(b)
            c = a**2 + b**2
            ans = c**(1/2)
            ans = ans - int(ans)
            if ans == 0:
                return (True)
                print ("True, they are pythagorean pair!")
            else:
                return (False)
                print ("False, they are not pythagorean pair!")
        else:
            print ("Please input an integer!!")
    else:
        print ("Please input an integer!!")
pythagorean_pair()

3 个答案:

答案 0 :(得分:0)

我测试了您的功能,正如其他人所说,如果您要打印某些内容,请确保在返回之前将其打印出来。因为 return 所做的只是返回输出并退出函数调用(我的意思是: return 以下的任何内容都不会运行)。您可以执行以下操作来测试代码:

def test(a):
    if a:
        return True
    return False

a = None
if test(a):
    print("True, input is not null")
else:
    print("False, input is null!")

返回:

False, input is null!

答案 1 :(得分:0)

除非您使用函数的输出作为示例中未显示的某些代码的输入

例如

boolean_value = pythagorean_pair() 

不存在必须具有return语句的规则。换句话说,您只需让函数打印您的字符串就可以了。

def check_answer(boolean_answer):
    print("The answer is", boolean_answer)

check_answer(answer)

答案 2 :(得分:0)

有回报,您必须print()

print(pythagorean_pair())

您似乎要问 为什么函数只打印Ture/False 。由于在打印之前返回,所以函数在返回时完成。因此print()将不会执行。

更改为:

if ans == 0:
    print ("True, they are pythagorean pair!")
    return (True)
else:       
    print ("False, they are not pythagorean pair!")
    return (False)