Проверьте, является ли число нечетным или даже в python - программирование
Подтвердить что ты не робот

Проверьте, является ли число нечетным или даже в 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()

Спасибо

4b9b3361

Ответ 1

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

Знак % подобен делению только для проверки остатка, поэтому, если число, деленное на 2, имеет остаток от 0, оно даже в противном случае нечетно.

Ответ 2

Аналогично другим языкам, самая быстрая операция "по модулю 2" (нечетная/четная) выполняется с помощью оператора bitwise and:

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

Ответ 3

Не имеет значения, имеет ли слово четное или нечетное количество букв:

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

Ответ 4

Используйте оператор modulo:

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

Для вашей проблемы самым простым является проверка того, соответствует ли слово его брату с обратным знаком. Вы можете сделать это с помощью word[::-1], которые создадут список из word, взяв каждый символ от конца до начала:

def is_palindrome(word):
    return word == word[::-1]

Ответ 5

Один из самых простых способов - использовать оператор модуля модуля%. Если n% 2 == 0, то ваш номер четный.

Надеюсь, что это поможет,

Ответ 6

Средняя буква слова нечетной длины не имеет значения при определении того, является ли слово палиндром. Просто проигнорируйте это.

Подсказка: все, что вам нужно, - это небольшая подстройка к следующей строке, чтобы сделать эту работу для всех длин слов:

secondHalf = word[finalWordLength + 1:]

P.S. Если вы настаиваете на обработке двух случаев отдельно, if len(word) % 2: ... сообщит вам, что слово имеет нечетное число символов.