我正在做作业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()
答案 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)