I'm trying to make a program which checks if a word is a palindrome and I've gotten so far and it works with words that have an even amount of numbers. I know how to make it do something if the amount of letters is odd but I just don't know how to find out if a number is odd. Is there any simple way to find if a number is odd or even?
Just for reference, this is my code:
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()
Thanks
The required code is provided below. num = int (input (“Enter any number to test whether it is odd or even: “) if (num % 2) == 0: print (“The number is even”) else: print (“The provided number is odd”) Output: Enter any number to test whether it is odd or even: 887 887 is odd.
If a number is evenly divisible by 2 with no remainder, then it is even. You can calculate the remainder with the modulo operator % like this num % 2 == 0 . If a number divided by 2 leaves a remainder of 1, then the number is odd. You can check for this using num % 2 == 1 .
Check Even / Odd without using modulus or bitwise operator:number=int(input("Please Enter a Number : ")); x=int(number/2)*2; if(x==number): print("This Number is Even")
The == operator compares the value or equality of two objects, whereas the Python is operator checks whether two variables point to the same object in memory. In the vast majority of cases, this means you should use the equality operators == and !=
if num % 2 == 0: pass # Even else: pass # Odd
The %
sign is like division only it checks for the remainder, so if the number divided by 2
has a remainder of 0
it's even otherwise odd.
Or reverse them for a little speed improvement, since any number above 0 is also considered "True" you can skip needing to do any equality check:
if num % 2: pass # Odd else: pass # Even
Similarly to other languages, the fastest "modulo 2" (odd/even) operation is done using the bitwise and
operator:
if x & 1: return 'odd' else: return 'even'
&
(bitwise AND) of the Number by 1 will be 1, because the last bit would already be set. Otherwise it will give 0 as output.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With