微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不带等号和不等号的 Python 模运算符

如何解决不带等号和不等号的 Python 模运算符

def even_or_odd(number):
    return 'Odd' if number % 2 else 'Even'

print(even_or_odd(2))

为什么这个 Python 代码打印 Even 而不是 Odd?

解决方法

表达式 number % 2,其中 number 是偶数,将得到零。这是 Python 中的错误值,因此 if 将失败并输出 Even。没有什么不同:

>>> if 0:
...     print('zero')
... else:
...     print('nonzero')
...
nonzero

如果您希望 if 语句对偶数成功,最好使用 number % 2 == 0,它会给您 True数字。该等效语句将写为:

return 'Even' if number % 2 == 0 else 'Odd'

但是,鉴于您对标题的限制(没有 ==!=),这是不允许的(a)。使用“反向”逻辑可以解决这个问题。


顺便说一句,其他方法可以包括(可能还有更多):

return 'Even' if not number % 2 else 'Odd'
return ['Even','Odd'][number % 2]

(a) 虽然我很不喜欢这种类型的人为限制,但教育工作者经常会偷偷溜进作业中。毕竟,什么时候才能真正要求开发人员在没有 = 键的情况下实现某些功能?也许如果他们的键盘坏了?但是,您更大的问题肯定是为一家不会为新键盘支付 5 美元的公司工作:-)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。