在python中检查一个数字是奇数还是偶数[重复]

问题描述 投票:35回答:6

这个问题在这里已有答案:

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

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

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()

谢谢

python
6个回答
113
投票
if num % 2 == 0:
    pass # Even 
else:
    pass # Odd

%标志就像分裂只检查余数,所以如果数字除以2有一个0的余数,它甚至是奇数。


39
投票

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

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

7
投票

如果这个词有一个偶数或奇数的字母应该无关紧要:

def is_palindrome(word):
    if word == word[::-1]:
        return True
    else:
        return False

3
投票

使用modulo operator

if wordLength % 2 == 0:
    print "wordLength is even"
else:
    print "wordLength is odd"

对于你的问题,最简单的方法是检查这个词是否等于其反转的兄弟。你可以用word[::-1]做到这一点,worddef is_palindrome(word): return word == word[::-1] 创建列表,从结尾到开头都是每个角色:

secondHalf = word[finalWordLength + 1:]

2
投票

最简单的方法之一是使用de modulus operator%。如果n%2 == 0,那么你的数字是偶数。

希望能帮助到你,


0
投票

奇数长度字的中间字母与确定该字是否为回文无关。只是忽略它。

提示:您需要的是对以下行稍作调整,以使其适用于所有字长:

if len(word) % 2: ...

附:如果你坚持单独处理这两个案例,qazxswpoi会告诉你这个词有奇数个字符。

© www.soinside.com 2019 - 2024. All rights reserved.