Python Forum
What are Palindromes in Python?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
What are Palindromes in Python?
#1
Can a Palindrome be implemented in Python?
Reply
#2
What exactly is your question/goal. Read what Palindrome is.
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#3
I don't know what is 'implement' is that case.
You can easily get the palindromes in the first 1000 numbers:
for p in range(1000):
	pa = list(str(p))
	pa.reverse()
	pn = int(''.join(pa))
	if pn == p:
		print(p,pn)
Reply
#4
Hi again,
I realize my answer was silly.
Of course, palindromes can be implemented as a python class.
For instance, a very basic sample :
'''The palindrome module is a very basic implementation of palindromes.
Provided as the palindrome.py file'''
class Palindrome():
	'''The Palindrome class provides three public members functions:
		Palindrome(n) : the instanciation member, where n is an integer
		isPalindrome() : this function returns True is the class was instantiated with a palindrome integer
		__str__() : provides a printable form of the palindrome
	'''
	def __init__(self,candidate):
		self.value = candidate
	def isPalindrome(self):
		pa = list(str(self.value))
		pa.reverse()
		pn = int(''.join(pa))
		if pn == self.value:
			return True
		return False
	def __str__(self):
		if self.isPalindrome:
			return '%s is a palindrome' % self.value
		else:
			return '%s is not a palindrome' % self.value
This can be used by the following:
import palindrome
for i in (10,11,12):
	obj = palindrome.Palindrome(i)
	if obj.isPalindrome():
		print(obj)
The result is :
$ python3 pldrm.py
11 is a palindrome

And the docstring is available by:
$python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import palindrome
>>> help(palindrome)
>>> help(palindrome.Palindrome)
You can invent more complex functions... probably not very useful, but so fun
Reply
#5
(Dec-09-2018, 04:16 PM)jeanMichelBain Wrote: Hi again,
I realize my answer was silly.
Of course, palindromes can be implemented as a python class.
I don't think he mean that "implemented" most be a class.
The answer to his question yes,then he should try something himself.

Your answer with reverse() is okay.
When first have started can also bring in [::-1],that's common to use with palindrome.
Eg:
def is_palindrome(n):
    n = str(n)
    return n == n[::-1]
Test:
>>> lst = [10, 11, 12, 99, 24, 44]
>>> filter(is_palindrome, lst)
[11, 99, 44]
Also a newer string formatting than old %s.
return f'{self.value} is a palindrome' 
Reply
#6
A palindrome is a phrase, a word, or a sequence that reads the same forward and backward. One such example will be pip! An example of such a phrase will be ‘nurses run’.
>>> def isPalindrome(string):
left,right=0,len(string)-1
while right>=left:
if not string[left]==string[right]:
return False
left+=1;right-=1
return True
>>> isPalindrome('redrum murder')
True

>>> isPalindrome('CC.')
False
Well, there are other ways to do this too. Let’s try using an iterator.

>>> def isPalindrome(string):
left,right=iter(string),iter(string[::-1])
i=0
while i<len(string)/2:
if next(left)!=next(right):
return False
i+=1
return True
>>> isPalindrome('redrum murder')
True

>>> isPalindrome('CC.')
False

>>> isPalindrome('CCC.')
False
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
Question Help with Python - Palindromes SantiagoPB 4 2,260 Apr-04-2021, 06:09 PM
Last Post: buran
  Palindromes in Python karansingh 2 2,265 May-08-2019, 07:17 AM
Last Post: DeaD_EyE

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020