嗨,我对编码还很陌生,我坚持否定以及如何正确实施它。我一直在阅读一本教自己的教科书,但我被困在“写一个否定 n 的 if 语句,当且仅当它小于 0 时”
我已经尝试过并且失败了,任何提示或帮助将不胜感激。
if -n > 0:
n = 1
嗨,我对编码还很陌生,我坚持否定以及如何正确实施它。我一直在阅读一本教自己的教科书,但我被困在“写一个否定 n 的 if 语句,当且仅当它小于 0 时”
我已经尝试过并且失败了,任何提示或帮助将不胜感激。
if -n > 0:
n = 1
像这样?
if n < 0:
n = -n
该if
语句检查是否n
小于零。如果是这种情况,它分配-n
给n
,有效地否定n
。
如果您替换n
为实际数字,您将看到它是如何工作的:
n = -10
if n < 0: # test if -10 is less than 0, yes this is the case
n = -n # n now becomes -(-10), so 10
n = 10
if n < 0: # test if 10 is less than 0, no this is not the case
n = -n # this is not executed, n is still 10
求反需要给 n 赋值。“当且仅当”需要一个 if 语句。
if n < 0:
n = -n
if n < 0:
n = n * -1
print n
我认为这对于初学者来说很简单。
尝试这个。
n = abs(n)
是一样的..如果是负数就是正数,如果是正数..还是正数
通常 Python 程序员使用not
关键字来否定条件:
if not -n > 0:
n = 1
(虽然,这个例子有点复杂,可能会更容易维护if n < 0: ...
)。
Python 条件表达式的一个好处是not
可以以一种对讲英语的人来说很自然的方式来使用。例如,我可以说它if 'a' not in 'someword': ...
(语义上)与我将其编码为相同(语义上)if not 'a' in 'someword': ...
这在使用...测试对象身份时特别方便is
,例如:(if not a is b: ...
测试“a”和“b”是否是对同一对象的引用)也可以写if a is not b: ...