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