Programmazione ad Alto livello in Python Homework 2

advertisement

Programmazione ad Alto livello con Python
Homework 2
Lezione 2: Costrutti iterativi e costrutti per il controllo di
flusso.
Rispondere in maniera sintetica alle seguenti domande ed esercizi. Le risposte
possono essere discusse in orario di ricevimento, da concordare con il docente.
Le domande/esercizi sono formulate in inglese per facilitare il riuso del materiale
didattico.
1
Questions
Question 1. What are the main functional differences between a while
and a for loop?
Question 2. What can a range be used for in a for loop?
2
Excercises
Exercise 1. Write a program that takes as input a list of integers and
prints the average value of them.
Exercise 2. Write a program that takes as input a string s and an integer
k and print a new string with all the chars of s each one separated by k blank
spaces.
Exercise 3. Write a program that takes as input two lists m and f (with
the same length) and print the elements of a new list which is the union
between the two lists, e.g. [1, 3, 5], [2, 4, 6] → [1, 2, 3, 4, 5, 6]
1
Exercise 4. Write a program that takes as input two dates each one expressed by three integers, i.e. g1, m1 and a1 (the same for the second date
g2, m2 and a2). The program print True if the first data is anterior or equal
to the second, False otherwise.
Exercise 5. Write a program that takes as input a list lst of number
from 0 to 9 expressed in letters (’one’, ’two’, ... ) print a new list whose elements are the translation of the number in digits (’1’, ’2’,...), e.g.
[0 nove0 ,0 due0 ,0 due0 ,0 tre0 ] → [9, 2, 2, 3].
Exercise 6. Write a program that takes as input a list of integers and
return a new list without duplicates. E.g. [3, 1, 3, 2, 6, 6] → [3, 1, 2, 6].
Exercise 7. The built-in function eval takes a string and evaluates it using
the Python interpreter. Write a program that iteratively prompts the user,
takes the resulting input and evaluates it using eval, and prints the result.
It should continue until the user enters done.
Excercise 8. Write code to build a new list containing the square roots of
all the numbers in this list: [2, 4, 9, 16, 25]. Code this as a for loop first, then
as a map call, and finally as a list comprehension. Use the sqrt function in
the built-in math module to do the calculation (i.e., import math and say
math.sqrt(x)). Of the three, which approach do you like best?
2