TD 1 - Introduction à Python
I - Ouvrir Pyzo
Login : Les 7 premières lettres du nom + l'initiale du prénom Mot de passe : aaaammjj où aaaa=année, mm=mois, jj=jour
II - Raccourcis Pyzo : installation du logiciel→http://pyzo.org Ctrl + L Effacer la console
Ctrl + S Enregistrer le programme sur le disque dur (dans "Mes documents" ou votre clef USB) Shift + Ctrl + E Exécuter le programme (il doit avoir été sauvé avant)
Ctrl + K Arrêter un programme de force, et réinitialiser la console
III - Exercices Python à retenir pour ce TD
1. Calcul d'une somme Ecrire un programme qui ache la valeur de la somme sin(1) + sin(2) + ... + sin(100) 2. Calcul d'un produit Ecrire un programme qui ache la valeur du produit sin(1) * sin(2) * ... * sin(100) 3. Ecrire un programme qui ache les entierskde[[-20,20]]vériantsin(k)6cos(k).
4. Calcul d'une suite Ecrire un programme qui ache la valeur deu100, lorsqueu0= 1et pour tout entierk,uk+1= sin(uk). 5. Ecrire un programme qui fait subir au nombre 5912 la transformation suivante 100 fois de suite :
"si le nombre est pair, on le divise par 2, sinon on le multiplie par 3 et on lui ajoute 1", puis qui ache le nombre obtenu.
6. Ecrire un programme qui ache le plus petit entierk>0tel que sin(k)>0.99.
7. Ecrire un programme qui ache le plus petit entierntel queun>100, lorsqueun = sin2(1)+sin2(2)+sin2(3)+· · ·+sin2(n). 8. Ecrire un programme qui teste si 88183 est un nombre premier ou pas.
9. Double boucle for Ecrire un programme qui calcule la somme des 1/(i+j+ 1) lorsquei et j décrivent chacun tous les entiers naturels inférieurs ou égaux à 100.
10. Recherche de maximum Ecrire un programme qui ache le plus grand réel parmisin(1),sin(2), . . . ,sin(69).
IV - Exercices Python BONUS
11. Ecrire un programme qui ache le 2ème plus grand réel parmisin(1),sin(2), . . . ,sin(69). 12. Ecrire un programme qui calcule
10
X
n=0
2n
n!, en vous interdiant d'utiliser la puissance **.
13. Ecrire un programme qui ache le nombre de fois qu'il faut appliquer à21234 la transformation qui change un entier en la somme de ses chires pour obtenir nalement un nombre610.
14. Ecrire un programme qui ache les 30 premières décimales de 77 1212.
15. Ecrire un programme qui ache si oui ou non l'écriture du nombre21234 en base 10 possède une séquence de 3 chires se répétant 2 fois consécutivement.
(par exemple, si la séquence 168168 apparaît dans l'écriture en base 10, le programme pourra acher "True" car la séquence 168 apparaît 2 fois à la suite)
1
III - Exercices Python à retenir pour ce TD 1.---
from math import * s = 0
for k in range(1,101) : s += sin(k)
print(s)
2.--- from math import *
p = 1
for k in range(1,101) : p = p * sin(k) print(p)
3.--- from math import *
for k in range(-20,21) : if sin(k) <= cos(k) :
print(k)
4.--- from math import *
u = 1
for k in range(100) : u = sin(u)
print(u)
5.--- a = 5912
for k in range(100) : if a % 2 == 0 :
a = a // 2 else :
a = 3*a + 1 print(a) # 2
6.--- from math import *
k = 0
while sin(k)<=0.99 : k = k + 1
print(k) # 14
7.--- from math import *
n = 1 s = 0
while s <= 100 :
s += sin(n) * sin(n) n += 1
print(n-1) # 200
8.--- p = 88183
prem = True
for k in range(2,p) : if p % k == 0 :
prem = False print(prem) # False
9.--- s = 0
for i in range(101) : for j in range(101) :
s = s + 1 / (i+j+1) print(s) # 139.51696808170843
10.--- from math import *
ch = -10
for k in range(1,70) : if sin(k) > ch :
ch = sin(k)
print(ch) # 0.9999118601072672
IV - Exercices Python BONUS 11.--- from math import * ch = -10
for k in range(1,70) : if sin(k) > ch :
ch = sin(k) kch = k ch = -10
for k in range(1,70) : if sin(k)>ch and k!=kch:
ch = sin(k)
print(ch) # 0.999843308647..
12. ---
S = 0
puiss = 1 facto = 1
for k in range(11) : S = S + puiss / facto puiss *= 2
facto *= k+1
print(S) # 7.38905609..
13. --- from math import *
u = 2**1234
S = 20
NbTransf = 0 while S > 10 :
S = 0
while u>0 : S = S + u%10 u = u // 10 u = S
NbTransf += 1 print(NbTransf) # 3
14. --- p = 7**7
q = 12**12 s = "0."
for k in range(30) : p = p * 10 nbfois = p//q
s = s + str(nbfois) p = p % q
print(s) #0.0000000923658279512862..
15. --- from math import * u = 2**1234 v = u // 1000 NbId = 0
ok = False while v>0 :
if u%10 == v%10 : NbId += 1 else :
NbId = 0
ok = ok or (NbId == 3) u //= 10
v //= 10 print(ok)
2