Palindrome is a word or phrase such as ‘deed’ or ‘level’, which is the same when you spell it backwards. The following program determines whether a word is palindrome.
# 02Loops example_05 Palindromes1.py
# determine whether a word input is a palimdrome
word = raw_input("Enter a word: ")
revWord = "" #start reversed word as blank
x = len(word) - 1 #find the length of the input word
for i in range(x,-1,-1): #start at end of word & move backwards
letter = word[i] #get the letter
revWord = revWord + letter #add it to end of revWord
print "The original word was",word
print "The reversed word is",revWord
if (word == revWord): #check if the original word is same as reversed word
print word,"is a palindrome"
else:
print word,"is not a palindrome"
For example, when we input “apple”, the output is:
Enter a word: apple The original word was apple The reversed word is elppa apple is not a palindrome
When we input “level”, the output is:
Enter a word: level The original word was level The reversed word is level level is a palindrome
In Python, there exists another way to reverse a string. Try the following
>>> ‘foobar'[::-1]
‘raboof’
Hence, we can write the following program:
# 02Loops example_05 Palindromes2.py
# determine whether a word input is a palimdrome
word = raw_input("Enter a word: ")
revWord = word[::-1] # generate the reversed string using slicing
print "The original word was",word
print "The reversed word is",revWord
if (word == revWord):
print word,"is a palindrome"
else:
print word,"is not a palindrome"
In many languages, including Python, one task can be accomplished in a number of ways. Program Palindromes1 is the program that teaches students the logic needed to reverse a string in an iterative way. Program Palindromes2 uses what Python calls “slicing” of strings. An introductory course would not teach slicing, but a few students are likely to find it. When giving students an assignment, it can be a good idea to state what libraries and features the students can and cannot use in their program.
