In [ ]:
#Today we are going to review functions.
#We are going to go over how one function
#calls another function and we are going to review
#some functions from lab 2.
#In lab, you are going to have new
#exercises of writing simple functions

#input--->function--->output

In [ ]:
#Write a function called multiplyByTwo
#that takes in an int and
#returns the input * 2.

def multiplyByTwo(z):
return z*2

#what is the name of the function? multiplyByTwo
#what is the input? z
#what is the output z*2
#the function returns the output which is z*2

In [7]:
#Now we want to add 3 to a number and multiply it by 2
#i.e. We want to create a function called
#multiplyByTwoAddThree that takes in a number
#and returns the (number +3)*2.
return z+3

#One function can call another function.
#with the input 5, multiplyByTwoAddThree calls
#3 to its input and returns the output.

print y

16

In [52]:
#printing something is different from returning
#something. In this example, when we print y
#what does it print? why?
#what happens if we call
#y=multiplyByTwo(5)
#print y
#why?
def multiplyByTwo(z):
if type(z)==int:
return  z*2
else:
print 'I only want integer output'
return
y=multiplyByTwo(5)
print y

10

In [ ]:
#Having more than one function
if h>50:
print 'good'#True  <--Some people are confused by print Vs. return
return True
else:
return False
print y

In [59]:
#One function can call another function. What does this function do?
#what is printed?
return 'candy'
else:
return 'no_candy'
print y

good
candy

In [60]:
#Having more than one function
if h>50:
print 'good'#True  <--Some people are confused by print Vs. return
#return True
else:
return False
print y

#Now what is printed? why?

good
None

In [ ]:
#Can you give me a function called reverse, that takes in an input string
#And returns the reversed version of the string.
#For example, if the input is abcde it returns edcba.
#This will give you an exercise using len and range

In [30]:
'''
Lets say input_string='abcde'
Before you answer the question, you should try
to figure out how the function would work on paper.
what do we want to do?
-->go through all the characters in input_string
one by one. (for loop)
-->Start from e (last character) and go to
the first character.
--start here:
input_string[len(input_string)-1]
and also go to
input_string[len(input_string)-1-1]
input_string[len(input_string)-1-2]
.....
--do this until you get to
input_string[0]

--end here:
input_string[0]
For each of these characters,
add them to an output string
When you are done, return the output string.
'''

Out[30]:
[0, 1, 2, 3, 4]
In [41]:
input_string='abcde'
output_string=''
for x in range(len(input_string)):
output_string += input_string[len(input_string)-x-1]
print output_string

edcba

In [51]:
def reverse(x):
y=''
for n in range(len(x)):
y += x[len(x)-n-1]
return y
my_string=reverse('12345')
print my_string

54321

In [53]:
#what kind of error does this give me?
#how do I fix it?
abc='123456'
for x  range(len(abc)):
print x
print abc[x]
#Reading the error message that you get helps you figure out where you might
#have gone wrong in your code. So always read the error message you get.
#many times it points you to the line and exact word that is problematic.

  File "<ipython-input-53-0bc4d3491bad>", line 2
for x  range(len(abc)):
^
SyntaxError: invalid syntax

In [42]:
#when you print the string it does not print it with quotation marks.
x='timnit'
print x

timnit