Python 08
Python Exercises
For loop practice
It is time to practice our skills. By far, we have learned many things like functions
, lists
, dictionaries
, etc.
Here are the exercises for maintain and develope the skills.
Exercise 1. double()
Create a function double
which takes a list and returns with values with doubled values.
'''
>>> double([1, 2, 3, 4, 5])
[2, 4, 6, 8, 10]
'''
Toggle Answer π
def double(numbers: list) -> list:
result = []
for number in numbers:
result.append(number * 2)
return result
print(double([1, 2, 3, 4, 5]))
Loop pattern
As you practice more of these loops, you will notice that there is a pattern for loops. The pattern is following:
# create empty list
result = []
# loop through & append to that list
for item in list:
# return that list
return result
# β Watch out for indentation β
Exercise 2. count_words()
Create a function that takes a string and returns a number of words.
'''
count words if given a string, should count and return the number of words
phrase: str
count_words('Hi my name is Smith')
5
'''
Here are some helpful functions to make this function.
method
.split()
it splits a string into alist
, you can specify the separator in()
,and default is whitespaceexample:
my_string = "apple, banana, orange, strawberry" my_string.split(", ") # returns ['apple', 'banana', 'orange', 'strawberry']
function
len()
returns the number of items in an objectexample:
fruits = ['π', 'π', 'π', 'π', 'π', 'πͺ'] len(fruits) # returns 6
Toggle Answer π
def count_words(phrase: str) -> int:
words = phrase.split()
return len(words)
# or return len(phrase.split())
print(count_words('Hi my name is Smith'))
Exercise 3. sum_list()
Create a function that takes a list of numbers and returns their sum.
'''
Create a function that given a list of numbers, it can return their sum
>>> sum_list([1, 2, 3])
6
'''
Toggle Answer π
def sum_list(numbers: list) -> int:
count = 0
for number in numbers:
count += number
return count
print(sum_list([1, 2, 3]))
Exercise 4. find_max()
Create a function that take a list of numbers and returns the biggest number.
'''
>>> find_max([1, 5, 10 ,3, 20])
20
'''
Toggle Answer π
def find_max(numbers: list) -> int:
current_max = numbers[0]
for number in numbers:
if current_max < number:
current_max = number
return current_max
print(find_max([1, 5, 10 ,3, 20]))
Pseudocode for find_max()
To write complex code, you need to write a pseudocode that helps your logic clear.
This is an example of a pseudocode for find_max()
'''
numbers = [1, 5, 10 ,3, 20]
current_max = 1 # numbers[0]
is 1 > current_max? no
is 5 > current_max? yes
current_max = 5
is 10 > current_max? yes
current_max = 10
is 3 > current_max? no
is 20 > cuurent_max? yes
current_max = 20
end the loop
'''
Dictionary Practice
Exercise 5. word_frequency()
Create function that take a string and returns a dictionary that contains the words as a key
and the number of words as a value
.
'''
word_frequency('I love Batman because I am Batman')
{'I': 2, 'love': 1, 'Batman': 2, 'am': 1 ..}
'''
'''
PSEUDOCODE
# Split the phrase into a list
# Create empty result dictionary
# loop 1
is "I" in result? no
create a new key value pair
set the key to "I" and value to 1
# loop 2
is "love" in result? no
create a new key value pair
set the key to "love" and value to 1
...
# loop 5
is "I" in result? YesΓ
increment the value of "I" by 1
...
'''
Toggle Answer π
def word_frequency(phrase: str) -> dict:
result = {}
words = phrase.split()
for word in words:
if word not in result:
result[word] = 1
else:
result[word] += 1
return result
print(word_frequency('I love Batman because I am Batman'))
Comments