http: // docs. python. org/ 2/ tutorial/ datastructures. html puis

publicité
PROGRAMMATION
LES BASES
RAPPEL :
une fonction resemble à
def func_name(args):
code
code
return result
func_name(valeur)
Pour executer un programme dans un chier test.py" python
test.py
Exo 1. Lire : 5.1.3. sur la page
http: // docs. python. org/ 2/ tutorial/ datastructures. html
puis
écrire une fonction pour calculer
(1) la somme des entiers
(2) la somme de
k5
des entiers
(3) les carrées des entier
Exo 2.
k = 1, . . . n
k = 1, . . . n
k = 1, . . . 16
modulo
17
(1) Ecrire une fonction pour calculer la distance entre 2 points
a = (x, y), b = (u, v)
d(a, b) = k(x, y) − (u, v)k =
p
(x − u)2 + (y − v)2
INDICATION :
from math import sqrt
def d(a,b):
return <resultat>
(2) Utiliser une boucle
for i in range(num):
print d(x,y)
pour acher la distance entres les points avec
1
2
PROGRAMMATION
x = y = 0, u = 1, v = 0, . . . 5
x = y = 0, u = 0, . . . 5, v = 0, . . . 5
x = 0, u = 5, y = 0, . . . 5, v = 0, . . . 5
(3) (a) Utiliser la fonction dir() sur le module math pour trouver
toutes les fonctions. Est-ce qu'il y a une façon plus simple
à faire la question (1) ?
(4) Comparer les résultats de :
(5)
dir(1)
dir(1.1)
dir(1J)
PROGRAMMATION
3
Exo 3. Lire :
http: // www. openbookproject. net/ thinkcs/ python/ english2e/
ch04. html
puis utiliser une boucle for" et la commande print" pour realiser les
gures :
for i in range(num):
print <string>
pour écrire une fonction dont le résultat est :
(1)
(2)
(3)
(4)
.*.*.*.*.*
*.*.*.*.*.
.*.*.*.*.*
*.*.*.*.*.
.*.*.*.*.*
*.*.*.*.*.
*
**
***
****
*****
**
****
******
********
**********
..........
..........
...*****..
..***.***.
..**...**.
..*.....*.
..**...**.
..***.***.
...*****..
..........
[Pour le (4) on pourra utiliser 2 boucles imbriquées et la fonction
de l'exo precedent.]
d(x, y)
4
PROGRAMMATION
Exo 4. Ecrire un programme qui demande à l'utilisateur les coordon-
nées les coordonées d'un 'points dans le plan et qui calcule ses coordonées polaires.
INDICATION :Pour saisir les valeurs :
val = input("Enter x:")
Penser à charger les fonctions mathématiques avec :
from
math
import *
Exo 5. Ecrire un programme qui renverse tous les mots dans un texte
(sans ponctuation) :
EXAMPLE : "Hello world"
7→
"olleH dlrow"
INDICATION :
(1) Pour separer en mots :
txt.split()
(2) Pour renverser une liste L :
reversed(L)
(3) Tester :
print dir("greg")
print reversed("greg")
print [x for x in reversed("greg")]
Exo 6. Ecrire un programme qui enchire un texte (en lettres minis-
cules, sans accent, avec ponctuation) utilisant le chire de César [voir
http: // fr. wikipedia. org/ wiki/ Chiffre_ de_ César)
EXAMPLE : "hello world !" 7→ "uryyb jbeyq !"
].
INDICATION :
(1) Pour avoir une liste des lettres miniscule :
import string
print string.lowercase, type(string.lowercase) #non
print "GREG",type("GREG")
print dir("GREG") s
print "GREG".lower #non plus, fonction en memoire
print "GREG".lower()
PROGRAMMATION
5
(2) Pour convertir une caractère en code ascii :
ord()
Pour un code ascii en caractère :
chr()
Exo 7. Ecrire un programe qui enchire un texte (en lettres miniscules,
sans accent, avec ponctuation) en utilisant une permutation aléatoire
des lettres stockée dans un dictionnaire :
EXAMPLE :
{'a':
'f':
'l':
'r':
'x':
'y',
'q',
'z',
'a',
'h',
'c':
'i':
'o':
'u':
'z':
'v',
'n',
'i',
'd',
'm'}
'b':
'h':
'n':
't':
'g',
'b',
'u',
'l',
'e':
'k':
'q':
'w':
'o',
'p',
't',
'w',
INDICATION :Pour permuter une liste L :
from random import shuffle
shuffle(L)
'd':
'j':
'p':
'v':
'x',
'k',
'j',
'f',
'g':
'm':
's':
'y':
'c',
's',
'e',
'r',
Téléchargement