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