【发布时间】:2021-04-16 07:06:33
【问题描述】:
当我在函数“my_abs()”中输入 True 或 False 时,我希望结果打印 1 或 0 但此函数返回 True 和 False。
def my_abs (a):
if isinstance(a,int) or isinstance(a,float):
if a>=0:
b=a
else:
b=-a
elif isinstance(a, bool):
if a == True:
b="1"
else:
b="0"
elif isinstance(a, complex):
r=a.real
i=a.imag
b=((r**2)+(i**2))**(0.5)
else:
b="only a number can be handled!"
return b
print(my_abs(True))
print(my_abs(False))
【问题讨论】:
-
布尔在 Python 中是整数。
-
试试
isinstance(True, int) -
尝试将第二个 elif 放在第一个 if (bool) (int, float) 的位置。因为布尔值是整数,但整数并不总是布尔值。
标签: python python-3.x function