在 Python 中检查数字是奇数还是偶数

新手上路,请多包涵

我正在尝试制作一个程序来检查一个单词是否是回文,到目前为止我已经做到了并且它适用于具有偶数个数字的单词。如果字母的数量是奇数,我知道如何让它做某事,但我只是不知道如何找出数字是否是奇数。有什么简单的方法可以判断一个数是奇数还是偶数?

仅供参考,这是我的代码:

 a = 0

while a == 0:
    print("\n \n" * 100)
    print("Please enter a word to check if it is a palindrome: ")
    word = input("?: ")

    wordLength = int(len(word))
    finalWordLength = int(wordLength / 2)
    firstHalf = word[:finalWordLength]
    secondHalf = word[finalWordLength + 1:]
    secondHalf = secondHalf[::-1]
    print(firstHalf)
    print(secondHalf)

    if firstHalf == secondHalf:
        print("This is a palindrom")
    else:
        print("This is not a palindrom")

    print("Press enter to restart")
    input()

原文由 user3320350 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 579
2 个回答
if num % 2 == 0:
    pass # Even
else:
    pass # Odd

% 符号就像除法一样,只是它检查余数,所以如果数字除以 2 的余数为 0 否则为奇数。

或者将它们反转以提高一点速度,因为任何大于 0 的数字也被认为是“真”,您可以跳过需要进行任何相等性检查:

 if num % 2:
    pass # Odd
else:
    pass # Even

原文由 DeadChex 发布,翻译遵循 CC BY-SA 4.0 许可协议

与其他语言类似,最快的“模 2”(奇数/偶数)运算是使用 bitwise and 运算符完成的:

 if x & 1:
    return 'odd'
else:
    return 'even'

使用按位与运算符

  • 这个想法是检查 _数字的最后一位是否已设置_。如果 设置了最后一位,则数字为奇数,否则为偶数。
  • 如果一个数字是奇数 & 数字与 1 的(按位与)将为 1,因为最后一位已经设置。否则它将给出 0 作为输出。

原文由 lejlot 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题