#As we have seen before,
#one function can call another function.
#What does this function do?
#what is printed?
#Having more than one function
def passing_grade(h):
if h>50:
#print 'good'#True <--Some people are confused by print Vs. return
return True
else:
#print 'bad'#False
return False
def candy_for_grade(g):
if passing_grade(g):
return 'candy'
else:
return 'no_candy'
y=candy_for_grade(51)
#print y
#what is the value of y?
#As we have seen before, one function can call another function.
#What does this function do?
#what is printed?
#Having more than one function
def passing_grade(h):
if h>50:
print 'good'#True <--Some people are confused by print Vs. return
return True
else:
print 'bad'#False
return False
def candy_for_grade(g):
if passing_grade(g):
return 'candy'
else:
return 'no_candy'
y=candy_for_grade(51)
print y
#what is the value of y? Now? Rembmer
#whether or not we print something, this
#does not change
#the value of y.
good candy
#In lab, you have looked at the function
#isPalindrome which
#returns True if a given string is a palindrome.
#I.e., isPalindrome('abcde') returns False and isPalindrome('abcba')
#returns True.
#I give you a function called reverse. It takes in
#a string, and returns the reversed version of
#the string. So reverse('abcba') returns abcba.
#reverse('12345') returns '54321'.
#reverse(12345) gives an error.
#can you think of a way to create the function
#isPalindrom by using the function reverse?
#First try to write down in English how the function would work.
def Reverse(x):
y=''
for n in range(len(x)):
y += x[len(x)-n-1]
print y
return y
#def isPalindrome(x):
# if Reverse(x)==x: #I am saying if None==x:
# return True
# else:
# return False
#isPalindrome('abcba')
def isPalindrome(x):
return Reverse(x)==x
isPalindrome('abcba')
abcba
True
def isPalindrome(x):
if x==reverse(x):
return True
else:
return False
isPalindrome('123210')
#Another way
def isPalindrome(x):
x=str(x)
return x==reverse(x)
#this does the same thing as the function
#isPalindrome above.
#why?
#if I give isPalindrome('12345') I want False
#if I give isPalindrome(12345) I want False
#if I give isPalindrome('abcba') I want True
#if I give isPalindrome(12321) I want True
#isPalindrome('12345')
#Ok so now we want to have a function isPalindrome.
#However, we want it
#to be able to have a string or an int as an input.
#the function we wrote above can only take a string.
#what is the output of the code below?
def reverse(x):
y=''
for n in range(len(x)):
y += x[len(x)-n-1]
return y
def isPalindrome(x):
#x=str(x) #add this to use ints.
if x==reverse(x):
return True
else:
return False
isPalindrome(123210)
#One way to do this is to have 2 functions.
#One checks if a string is
#a palindrome. Another one checks if an int is
#a palindrome.
def reverse(x):
'''
This function takes a string. And returns
the reversed version of the string.
'''
y=''
for n in range(len(x)):
y += x[len(x)-n-1]
return y
def isStrPalindrome(x):
'''
This function takes a string and returns
True if the string is a palindrome. It returns
False otherwise.
'''
#return x==reverse(x)
#same as
if x==reverse(x):
return True
else:
return False
def isIntPalindrome(x):
'''
This function takes an int. And returns
True if the int is a plandrome. It returns
False otherwise.
'''
#what is x==reverse(x)
#return str(x)==reverse(str(x))
if str(x)==reverse(str(x)):
return True
else:
return False
def isPalindrome(x):
if type(x)==str:
#isStrPalindrome takes a string
#and returns True if the string is
#a palindrome. False if not.
return isStrPalindrome(x)
elif type(x)==int:
#isStrPalindrome takes a int
#and returns True if the int is
#a palindrome. False if not.
return isIntPalindrome(x)
else:
print 'Wrong data type'
return
y=isPalindrome(12.56)
print y