Python est un langage de programmation interprété.
Plusieurs logiciels permettent de l'éxecuter. En classe nous utilisons Pyzo ou eduPython.
Python manipule différents types d'objets, notamment:
int
qui est une abréviation de "integer" et qui désigne les nombres
entiers.float
qui désigne les nombres à virgule flottante c'est à dire une
partie des nombres décimaux.str
qui est une abréviation de "string" et qui désigne les chaînes
de caractères c'est à dire du texte.Dans Python, nous pouvons affecter des integers, des floats ou des strings à des variables.
Le symbole =
n'a pas la même signification en langage mathématiques et en langage Python.
x=3
en Python signifie qu'à partir de maintenant, x
prend la valeur de 3.
Copier le code ci-dessous dans la partie de gauche de Pyzo.
x=2
y=3
z=4.5+x+y
a=" "
b="ça"
w="coucou"
k="va"
ponctu="?"
phrase=w+a+b+a+k+ponctu
Une fois ceci fait, exécuter le code puis :
z
puis la touche "entrée".phrase
puis la touche "entrée".On remarque que lorsqu'on additionne deux strings, on obtient un string
unique formé des deux
chaînes de
caractères mis bout à bout. On appelle cela de la concaténation.
Que vaut x
après l'exécution de ces commandes?
x=3
y=x+3
x=6
x=x+1
x=y+1
Dans Python, nous pouvons faire afficher dans la console le contenu des variables avec l'instruction
print
.
Copier le code ci-dessous dans la partie de gauche de Pyzo.
x=2
y=3
z=4.5+x+y
a=" "
b="ça"
w="coucou"
k="va"
ponctu="?"
phrase=w+a+b+a+k+ponctu
print("La valeur de z est ",z,"et la phrase était :",phrase)
On considère le programme suivant:
x
prend la valeur 2.x
est multiplié par 2.x
.y
vaut la moitié de ce résultat.x
et de y
.On vous demande donc de :
x
est 10? Dans Python, nous effectuons l'opération puissance à l'aide de **
.
Dans votre cahier, écrire les résultats obtenus à l'aide de Python :
Sans exécuter le code, que vaut x+y
après l'exécution de ces lignes?
x=4
y=3
z=x**2
x=z+1
y=y+5
Sans importer de bibliothèques, Python dispose de fonctionnalités limitées afin qu'il soit léger et puisse s'exécuter rapidement.
Par exemple, Python ne peut pas faire de racine carrée sans que l'on importe la bibliothèque math
.
On peut ainsi faire des racines carrées avec la commande sqrt
en procédant ainsi:
from math import *
print(sqrt(2))
On considère le programme suivant :
from math import sqrt
AB=6
AC=8
print("Un côté mesure ",AB," cm et l'autre côté ",AC," cm.")
print("ABC est un triangle rectangle donc d'après le théorème de Pythagore ")
print("BC²=AB²+AC²")
print("BC²=",AB,"²+",AC,"²")
print("BC²=",AB**2,"+",AC**2)
BC_carre=AB**2+AC**2
print("BC²=",BC_carre)
BC=sqrt(BC_carre)
print("Donc BC = ",BC," cm.")
Il est parfois nécessaire de calculer le quotient et le reste d'une division euclidienne. Pour cela nous avons les outils suivants :
%
permet de connaitre le reste d'une division euclidienne.//
permet de connaitre le quotient d'une division euclidienne.Jean-Louis a préparé 1873 gâteaux. Il veut les distribuer à 12 clients et bien sûr, chacun en aura le même nombre.
A l'aide de Python, mettre les réponses suivantes dans vos cahiers:
Dans Python, nous pouvons créer des fonctions à l'aide de la commande def
.
La syntaxe ressemble à ceci:
Créer une fonction f
qui prend comme paramètre un nombre x
et qui
renvoie la valeur de
\(3x+5\).
Créer une fonction ajoute_22
qui prend comme paramètre un nombre x
et qui
renvoie la
somme de x
et de
22.
Créer une fonction carre
qui prend comme paramètre un nombre x
et qui
affiche la valeur
du périmètre d'un
carré de côté x
et affiche aussi la valeur de son aire.
Créer une fonction rectangle
qui prend comme paramètres un nombre a
et un nombre
b
et qui affiche la valeur du périmètre d'un rectangle de dimension a
et b
puis affiche aussi la valeur de
son aire.
Ecrire une fonction Python qui se nomme moyenne_trois_nombres(nb1,nb2,nb3)
qui prend en paramètres
trois nombres et qui renvoie la
moyenne de ces trois nombres.
Créer une fonction reduction_20_pourcents
qui prend comme paramètre un nombre x
qui
correspond au prix d'un article et qui retourne le prix de cet article après une réduction de 20% .
Ecrire une fonction augmentation_15_pourcents
qui prend en paramètre une valeur x
qui
correspond à un prix et qui renvoie un
float
qui
correspond à une augmentation de 15% de ce prix.
Dans une boulangerie, les pains au chocolat coûtent 1,30 euros l'unité et les croissants 1,10 euros.
Créer une fonction Python que l'on nomme boulangerie
, qui prend comme paramètres x
et
y
et qui retourne
le prix que l'on va payer si l'on achète x
pains au chocolat et y
croissants.
Dans Python, il y a un type d'objet que l'on appelle les booléens.
Un objet booléen vaut soit True
, soit False
.
On est capable ainsi de faire tester à Python des inégalités du type 2+3>4
.
On a ainsi des comparaisons du type :
... == ...
pour tester si deux valeurs sont égales.... != ...
pour tester si deux valeurs sont inégales.... < ...
pour tester "être inférieur strictement" .... > ...
pour tester "être supérieur strictement".... <= ...
pour tester "être inférieur ou égal à" .... >= ...
pour tester "être supérieur ou égal à".Taper 5+3>2
dans la console.
Dans Python, nous pouvons écrire des instructions se réalisant suivant des conditions.
Pour cela, nous utilisons les instructions if
, elif
et else
.
if
signifie "si".elif
est la contraction "else if" qui se traduit par "sinon si".else
est la traduction de "sinon".Il faut faire attention à ce qu'on appelle l'indentation. Cela consiste en l'espace qui est à gauche de ce qu'on écrit.
On considère le code suivant :
x=12
if x==3:
print(20)
elif x>5:
print(11)
elif x==0:
print(15)
else:
print(10)
x=0
?x=7
?x=5
?x=-2
?x=3
?x=3.0
?Compléter le code suivant :
def signe(x):
if ...........:
return ........
elif .........:
return .......
else:
return .......
Afin que :
"Ce nombre est égal à 0."
si l'argument x
est 0."Ce nombre est positif."
si l'argument x
est positif."Ce nombre est négatif."
si l'argument x
est négatif.Exemple d'utilisation :
>>> signe(5)
"Ce nombre est positif."
>>> signe(-100)
"Ce nombre est négatif."
Essayer les commandes suivantes dans la console pour la résolution de l'exercice :
3 % 2
100 % 2
121 % 2
1040 % 2
1123 % 2
1478 % 2
Que remarque-t-on?
Compléter le code suivant :
def parite(x):
if ...........:
return ........
else:
return .......
Afin que :
"Ce nombre est pair."
si l'argument x
est pair."Ce nombre est impair."
si l'argument x
est impair.
Exemple d'utilisation :
>>> parite(52)
"Ce nombre est pair."
>>> parite(7415)
"Ce nombre est impair."
Dans une boulangerie, les pains au chocolat coûtent 1,30 euros l'unité et les croissants 1,10 euros.
Paul possède uniquement un billet de 20 euros et souhaite acheter des pains au chocolat et des croissants.
Ecrire une fonction boulangerie
prenant en paramètres deux flottants x
et
y
.
x
correspond au nombre de pains au chocolat achetés et y
le nombre de croissants
achetés.
Cette fonction retourne soit "Paul peut le payer"
soit "Paul ne peut pas le payer"
suivant s'il peut le
payer ou non.
Lilya possède des gourdes de 800 mL qu'elle souhaite remplir entièrement.
Ecrire une fonction gourde(volume)
qui prend en paramètre un integer volume
représentant un certain volume de liquide.
volume
est un multiple de 800, la fonction retournera True
.False
si ce n'est pas le cas.On souhaite programmer la réciproque de Pythagore.
Programmer la fonction reciproque_pythagore(a,b,c)
avec a
,b
et
c
trois nombres flottants représentant les trois côtés et c
étant la longueur du côté
le plus long.
La fonction retournera soit le string "Le triangle est rectangle."
soit le
string "Le triangle n'est pas rectangle."
.
print(0)
...
...
...
L'exercice précédent pourrait être insupportable si les questions continuaient. L'informatique a justement pour but d'automatiser les choses.
Dans Python, il existe une instruction permettant de faire une boucle : la boucle for
.
Taper le code suivant et exécuter le:
for coucou in range(30):
print(coucou)
Compléter les instructions pour que Python affiche le résultat de \(0+1+2+3+4+...+52+53\) :
somme=0
for nombre in range(..........):
somme=somme+nombre
print(....)
a
est donné dans la commande range
, alors le nombre itéré
prendra les valeurs
entières de \(0\) à \(a-1\). a
et b
sont donnés dans la commande range
, alors
le nombre itéré prendra les
valeurs entières de \(a\) à \(b-1\).a
, b
et c
sont donnés dans la commande
range
, alors le nombre itéré prendra
les valeurs entières de \(a\) à \(b-1\) avec un pas d'incrémentation égal à \(c\).
Qu'affichent les instructions suivantes ?
for i in range(8):
print(i)
for i in range(5,32):
print(i)
for i in range(-2,22):
print(i)
for i in range(3,70,5):
print(i)
for i in range(10,0,-1):
print(i)
Un peu de mathématiques:
On considère la fonction \( f : x \longmapsto 47x-13\).
On demande de compléter le tableau de valeurs suivant à un élève :
\(x\) | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
\(f(x)\) |
Ce travail étant un peu ennuyeux, on décide de le rendre moins répétitif en le programmant en Python.
f
.Ecrire une fonction en Python repete(texte)
qui prend en paramètre un string texte
et
affiche 7 fois ce string.
Exemple :
>>> repete("cadeau")
cadeau
cadeau
cadeau
cadeau
cadeau
cadeau
cadeau
Ecrire une fonction en Python repete_2(texte)
qui prend en paramètre un string texte
et
affiche 10 fois un string composé de la
concaténation de 2 fois ce qui a été donné séparé par un espace.
Exemple :
>>> repete_2("cadeau")
cadeau cadeau
cadeau cadeau
cadeau cadeau
cadeau cadeau
cadeau cadeau
cadeau cadeau
cadeau cadeau
cadeau cadeau
cadeau cadeau
cadeau cadeau
En mathématiques, pour un entier naturel \(n\), \(n!\) (prononcé "factorielle n") est défini ainsi:
Compléter la fonction factorielle(n)
qui prend en paramètre un entier n
et renvoie le
nombre correspondant.
def factorielle(n):
produit=1
for nombre in range(....,....):
produit=.........*.......
return ..........
Dans Python, la boucle for
peut aussi être utilisée pour itérer sur les caractères d'une chaîne de
caractère.
Par exemple, le code :
texte="Bonjour!"
for coucou in texte:
print(coucou)
Donne :
B
o
n
j
o
u
r
!
Compléter la fonction compte_carac_a
qui prend en paramètre un string et qui renvoie le nombre de
fois le caractère
"a"
est présent.
def compte_carac_a(texte):
compteur=....
for caractere in texte :
if ........... :
...................
return ............
Ecrire la fonction compte_carac_a_ou_A
qui prend en paramètre un string et qui renvoie le nombre de
fois le caractère
"a"
est présent, qu'il soit en majuscule ou en minuscule.
Ecrire la fonction compte_voyelle
qui prend en paramètre un string et qui renvoie le nombre de
voyelle présent
dans ce string.
while
La boucle for
est utile mais peut s'avérer compliquée pour certaines utilisations, par exemple lors
d'évènements du type "continue de faire ceci tant que telle chose ne s'est pas produite".
Pour faire ce genre de choses, nous avons l'instruction while
.
Exécuter le programme suivant:
x=0
while x!=100:
print(x)
x=x+10
!=
?Exécuter le programme suivant:
x=0
while x!=100:
x=x+10
print(x)
Ecrire une fonction avance_3_en_3(depart,seuil_max)
qui prend en paramètres deux integers
depart
et seuil_max
et qui
affiche les nombres depart, depart+3, depart+6, depart+9,... qui sont inférieurs strictement à seuil_max. On
utilisera la boucle while
.
Ecrire une fonction puissance_de_deux(maximum)
qui prend en paramètre un integer maximum
et affiche toutes les puissances de 2 (1, 2, 4, 8, ...) inférieures ou égales à maximum
.
La fonction utilise une boucle while
.
Par exemple :
maximum = 10
, la fonction affiche 1, 2, 4, 8
.maximum = 20
, la fonction affiche 1, 2, 4, 8, 16
.Donner une appoximation de \( \sqrt{2} \) à l'aide d'une boucle while
à \(10^{-5}\) près sans
utiliser la commande sqrt
.