在这种情况下,我是否可以使用not运算符,并使用not运算符将else输出为false
# NEW TO PYTHON
def is_positive(number):
if number > 0:
return bool(number)
else:
return not bool(number)
是。你可以。bool
函数将返回除零以外的任何数字的true
(即使是负一(。但是这个代码不好。你可以用很多更好的方法来做。最好的办法就是这样做。
def is_positive(number):
return (number > 0)
如果是一个这样做的语句:如果条件为真,那么做这个,否则做那个。在代码中,情况是这样的:如果条件为true,则返回true,否则返回false。所以你可以简单地说return条件的答案,而不是说它是否为true return true。如果数字为正,则number > 0
的答案将变为真,所以它就像说return true,如果不是,则条件的答案将变成false,所以它像说return false。实际上,当您调用此方法时,它会首先检查条件。如果它是真的,它将被替换为真,如果不是,它将替换为假。
可以。
但一个更好的代码看起来是这样的:
def is_positive(number):
return (number > 0)
如果number == 0
,则代码返回True
,即使它进入else
部分,因为如果number != 0
,bool(number)
总是返回True
。如果需要,请使用>=
而不是>
。
在代码中,您要计算两个布尔值,而一个就足够了。您正在计算一个布尔值number > 0
,如果它是True
,您将计算一个新的布尔值,如果第一个条件有效,它将始终是True
,对于else
语句也是如此,所以这就像写:
def is_positive(number):
if number > 0:
return True
else:
return False
现在您可以更清楚地看到,如果number > 0
是True
,它将返回True
;如果number > 0
是False
,则返回False
。但number > 0
本身就是一个布尔语句,其求值结果为True
和False
。例如,如果您知道number > 0
,那么您的代码等效于:
def is_positive(number):
if True:
return True
else:
return False
如果不是:
def is_positive(number):
if False:
return True
else:
return False
如您所见,您可以直接返回number > 0
。
您不能!从语法上讲,你可以:程序将被编译。然而,它的工作方式与你想象的不同。
除了一个零转换成CCD_ 27之外的每个数字都给出CCD_。