我正在尝试制作一个程序来检查一个单词是否是回文并且我已经到目前为止它可以使用具有偶数数字的单词。我知道如果字母数量是奇数,如何使它做某事但我只是不知道如何找出一个数字是奇数。有没有简单的方法来查找数字是奇数还是偶数?
仅供参考,这是我的代码:
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()
由于
答案 0 :(得分:113)
if num % 2 == 0:
pass # Even
else:
pass # Odd
%
符号就像除了它只检查余数一样,所以如果除以2
的数字的余数为0
,那么它甚至是奇数。
答案 1 :(得分:39)
与其他语言类似,使用bitwise and
运算符完成最快的“模2”(奇数/偶数)运算:
if x & 1:
return 'odd'
else:
return 'even'
答案 2 :(得分:7)
如果这个词有一个偶数或奇数的字母应该无关紧要:
def is_palindrome(word):
if word == word[::-1]:
return True
else:
return False
答案 3 :(得分:3)
if wordLength % 2 == 0:
print "wordLength is even"
else:
print "wordLength is odd"
对于你的问题,最简单的方法是检查这个词是否等于其反转的兄弟。您可以使用word[::-1]
来执行此操作,word
通过从结尾到开头的每个字符创建def is_palindrome(word):
return word == word[::-1]
的列表:
{{1}}
答案 4 :(得分:2)
最简单的方法之一是使用de modulus operator%。如果n%2 == 0,那么你的数字是偶数。
希望它有所帮助,
答案 5 :(得分:0)
奇数长度字的中间字母与确定该字是否为回文无关。只是忽略它。
提示:您只需稍微调整以下行即可使其适用于所有字长:
secondHalf = word[finalWordLength + 1:]
P.S。如果您坚持单独处理这两种情况,if len(word) % 2: ...
会告诉您该单词的字符数为奇数。