In [6]:
from __future__ import division, print_function
In [7]:
from IPython.display import Image
Image('../NotesDeCours/images/bart_simpson.jpg')
Out[7]:
In [9]:
range(100, 109)
Out[9]:
In [11]:
for i in range(100, 109):
print(i, "I will not do this again")
In [12]:
for i in range(10):
print(i)
Syntaxe :
for ELEMENT in LISTE: # ligne d'en-tête se terminant par ":"
INSTRUCTION #1 # bloc d'instructions indenté de 4 espaces
INSTRUCTION #2
INSTRUCTION #3
In [14]:
s = 0
In [15]:
s = s + 1
In [16]:
s
Out[16]:
Calculer la somme des éléments d'une liste
In [17]:
L = range(10)
L
Out[17]:
In [18]:
sum(L)
Out[18]:
In [19]:
s = 0
for i in L:
s = s + i
In [22]:
t = 0
#t = t + 1
t += 1
t
Out[22]:
Écrivez un programme qui affiche les 20 premiers termes de la table de multiplication par 7.
In [28]:
for i in range(20):
print(7, 'x', i, '=', 7 * i)
Écrivez un programme qui affiche une suite de 12 nombres dont chaque terme soit égal au triple du terme précédent.
In [30]:
terme = 1
for _ in range(12):
print(terme)
terme *= 3
Écrivez un programme qui affiche la suite de symboles suivante :
*
**
***
****
*****
******
*******
In [32]:
a = 'cheval'
a * 10
Out[32]:
In [31]:
for i in range(1,8):
print('*'*i)
Écrivez un script qui recopie une chaîne (dans une nouvelle variable), en insérant des astérisques entre les caractères.
Ainsi par exemple, "gaston"
devra devenir "g*a*s*t*o*n"
In [34]:
'cheval' + 'gaston'
Out[34]:
In [38]:
s = 'gaston'
t = ''
for a in s:
t += a + '*'
print(t[:-1])
In [ ]:
La boucle while
peut être utile lorsqu'on ne sait pas combien d'itérations on doit faire.
Syntaxe :
while CONDITION: # ligne d'en-tête se terminant par ":"
INSTRUCTION #1 # bloc d'instructions indenté de 4 espaces
INSTRUCTION #2
INSTRUCTION #3
Écrire un programme qui affiche les puissances de deux inférieures à un milliard.
In [5]:
k = 1
while k < 10**9:
print(k)
k = k * 2
In [ ]:
Écrire un programme qui affiche les puissances de deux inférieures à un milliard et arrêter le programme si une puissance termine par 88.
In [ ]:
Écrivez un programme qui calcule les 50 premiers termes de la table de multiplication par 13, mais n’affiche que ceux qui sont des multiples de 7.
In [ ]:
Syntaxe :
if CONDITION_1: # ligne d'en-tête se terminant par ":"
INSTRUCTION #1 # bloc d'instructions indenté de 4 espaces
INSTRUCTION #2
INSTRUCTION #3
elif CONDITION_2:
INSTRUCTION #4 # bloc d'instructions indenté de 4 espaces
INSTRUCTION #5
INSTRUCTION #6
else:
INSTRUCTION #7 # bloc d'instructions indenté de 4 espaces
INSTRUCTION #8
INSTRUCTION #9
Tester si une variable x
est positive, négative ou nulle.
In [41]:
x = -3
if x > 0:
print('la variable x est positive')
else:
if x == 0:
print('x est zéro')
else:
print('la variable x est négative')
In [44]:
x = -3
if x > 0:
print('la variable x est positive')
elif x == 0:
print('x est zéro')
elif x < 0:
print('la variable x est négative')
In [45]:
x = -3
if x > 0:
print('la variable x est positive')
elif x >= 0:
print('x est zéro')
else:
print('la variable x est négative')
Écrivez un script qui compte le nombre d’occurrences du caractère « e » dans une chaîne de caractères.
In [48]:
s = 'asldfjhalskjfqwlkjqwteeeeeeeeeas fasdfafds'
n = 0
for lettre in s:
print("je lis la lettre", lettre, '. Nombre de e vu:', n, end=' ')
if lettre == 'e':
n += 1
print("nombre de e vu apres lecture:", n)
print(n)
Que fait le programme ci-dessous, dans les quatre cas où l’on aurait défini au préalable que la variable a
vaut 1, 2, 3 ou 15?
if a != 2:
print('perdu')
elif a == 3:
print('un instant, s.v.p.')
else:
print('gagné')
In [ ]:
Écrivez un programme qui affiche les 20 premiers termes de la table de multiplication par 7, en signalant au passage (à l’aide d’une astérisque) ceux qui sont des multiples de 3.
Exemple: 7 14 21* 28 35 42* 49...
In [53]:
nombre = 8
for i in range(20):
produit = nombre * i
if produit % 3 == 0:
print(nombre, 'x', i, '=', produit, '*')
else:
print(nombre, 'x', i, '=', produit)
Écrivez un programme qui analyse un par un tous les éléments d’une liste de nombres pour générer deux nouvelles listes. L’une contiendra seulement les nombres pairs de la liste initiale, et l’autre les nombres impairs.
In [ ]:
L = [123, 535, 74764, 14379, 56452546, 2356, 3, 4, 8]
In [ ]:
Syntaxe :
def FONCTION(PARAMETRES): # ligne d'en-tête se terminant par ":"
INSTRUCTION #1 # bloc d'instructions indenté de 4 espaces
INSTRUCTION #2
INSTRUCTION #3
Écrire une fonction qui affiche les 10 premiers multiples de 7.
In [57]:
def table_7():
nombre = 7
for i in range(20):
produit = nombre * i
if produit % 3 == 0:
print(nombre, 'x', i, '=', produit, '*')
else:
print(nombre, 'x', i, '=', produit)
table_7()
table_7()
In [64]:
def table(nombre, stop=20):
for i in range(stop):
produit = nombre * i
if produit % 3 == 0:
print(nombre, 'x', i, '=', produit, '*')
else:
print(nombre, 'x', i, '=', produit)
table(5)
In [ ]:
Écrire une fonction qui affiche les 10 premiers multiples d'un nombre choisi.
In [ ]:
Écrivez un programme qui calcule le volume d’un parallélépipède rectangle dont sont fournis au départ la largeur, la hauteur et la profondeur.
In [70]:
def volume_old(largeur, hauteur, profondeur):
print(largeur*hauteur*profondeur)
In [71]:
def volume(largeur, hauteur, profondeur):
return largeur*hauteur*profondeur
In [72]:
v = volume(2,3,4)
In [73]:
v + 1
Out[73]:
Écrivez un programme qui calcule le périmètre et l’aire d’un triangle quelconque dont l’utilisateur fournit les 3 côtés. (Rappel : l’aire d’un triangle quelconque se calcule à l’aide de la formule : $$ \sqrt{d(d-a)(d-b)(d-c)} $$ dans laquelle d désigne la longueur du demi-périmètre, et a, b, c celles des trois côtés.)
In [ ]:
Écrire un programme qui, étant données deux bornes entières a et b, additionne les nombres multiples de 3 et de 5 compris entre ces bornes. Prendre par exemple a = 0, b = 32 ; le résultat devrait être alors 0+15+30=45
.
In [78]:
def ff_and(a, b):
s = 0
for i in range(a, b):
if i % 3 == 0 and i % 5 == 0 :
s += i
return s
In [79]:
ff(0, 32)
Out[79]:
Modifier légèrement ce programme pour qu’il additionne les nombres multiples de 3 ou de 5 compris entre les bornes a et b. Avec les bornes 0 et 32 , le résultat devrait donc être : 0+3+ 5 +6+9+10+12+15+18+20+21+24+25+27+30=225
.
In [84]:
def ff_or(a, b):
s = 0
for i in range(a, b):
print('i=',i,' s=',s)
if i % 3 == 0 or i % 5 == 0 :
print('youpi pour i = ', i)
s += i
return s
In [85]:
ff_or(0, 32)
Out[85]:
Écrire une fonction est_premier(n)
qui renvoie True
si n
est premier et False
sinon.
In [ ]:
En mathématiques, on appelle suite de Syracuse une suite d'entiers naturels définie de la manière suivante :
On part d'un nombre entier plus grand que zéro ; s’il est pair, on le divise par 2 ; s’il est impair, on le multiplie par 3 et on ajoute 1. En répétant l’opération, on obtient une suite d'entiers positifs dont chacun ne dépend que de son prédécesseur.
Par exemple, à partir de 14, on construit la suite des nombres : 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2... C'est ce qu'on appelle la suite de Syracuse du nombre 14.
https://fr.wikipedia.org/wiki/Conjecture_de_Syracuse
Écrire une fonction qui calcule la suite de Syracuse d'un nombre et retourne ce résultat sous la forme d'une liste.
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]: