On 23/08/2012 16:33, Victoria Homsy wrote:




Dear All - sorry to bother you. I just tried to run this program:


def isPalindrome(s):
if len(s) <= 1: return True
else: return s[0] == s[-1] and isPalindrome (s[1:-1])
isPalindrome('aba')


However when I run it in terminal it doesn't give me any answer - True or 
False. (I want the program to tell me whether the input string is True or 
False). In order to get an answer, I assume I would need to tell the program to 
print something. However I'm not sure where in the program I would do this. I 
tried this:

def isPalindrome(s):
if len(s) <= 1: return True and print "True"
else: return s[0] == s[-1] and isPalindrome (s[1:-1])
isPalindrome('aba')

However, this does not work - I get another error message.

Could somebody advise what I'm doing wrong here? Thank you.

You're not spending enough time thinking, seriously. In your original attempt you've got isPalindrome which returns True or False. You call the function but don't do anything with the return value, so it's simply discarded. Then you mess around with a perfectly good function instead of fixing the real problem. You've two options. The simplest is :-

print 'isPalindrome returned', isPalindrome('aba')

The alternative which is used when you want to keep using a return value is :-

status = isPalindrome('aba')
print 'isPalindrome returned', status




_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Whoops might have helped if I'd hit "Send".

--
Cheers.

Mark Lawrence.

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to