Découverte du langage Python



Outils

Pour l'ensemble de ce travail, utilisez le logiciel Edupython.

Dans le cas où Edupython ne marcherait pas sur vos machines, vous pouvez réaliser l'ensemble des exercices ici :

Affectation en Python

En programmation, nous avons besoin de stocker des éléments , de les mettre en mémoire. Pour cela , on procède à l'affectation d'une variable par une donnée.

Affectation

En Python, l'affectation se réalise avec l'opérateur =

le script :

a=5
met en mémoire l'entier 5 dans la variable a

a="easy"
met en mémoire la chaine de caractère "easy" dans la variable a

Que vaut a à la fin de ce script :

a=1
b=-1
a=a*b
a=a+b
			

Affichage en python

Affichage

Pour afficher une chaine de caractère(= du texte) en python on utilise la fonction print()

Testez ces différents scripts :

  1. print("Vivement les vacances !")
  2. prenom="Bob"
    print("Mon prénom est :",prenom)

Réaliser un script qui contient trois variables : prenom, nom et age et qui doit afficher :

"Bonjour je m'appelle Luke Skywalker, j'ai 58 ans. "

Si vous n'êtes pas luke, vous pouvez indiquer vos coordonnées.

Dialogue avec l'utilisateur

input

La fonction input permet d'ouvrir une boite de dialogue et de récupérer une information.

prenom=input("quel est ton prénom?")
print(prenom)
		

Ecrire un script en Python qui demande à l'utilisateur, son prénom, son nom et son âge et qui réalise un affichage comme dans l'exercice 2.

Fonction en Python

Une fonction en informatique est un peu comme une fonction en maths. Elle prend un ensemble d'argument et renvoie quelque chose.

Définir une fonction en Python

La syntaxe pour définir une fonction en Python est celle ci :

def nomDeLaFonction(argument1,argument2...):
	instruction 1
	instruction 2
	.
	.
	.
	return retourDeLaFonction	

  1. Prenons la fonction f(x2).

    si vous voulez implémenter cette fonction en Python, il suffira d'écrire :

    def f(x):
    	return x**2	

    Pour calculer l'image de 1 , en maths vous feriez f(1) , en Python c'est pareil !

    testez :

    f(1)
    
  2. def somme(a,b):
    	return a+b

Ecrire une fonction multiplication(a,b) qui renvoie la multiplication de a par b.

Dans une fonction on peut faire appelle à d'autre fonction.

Boucle conditionnelle en Python

Les tests en Python

    Voila une liste d'opérateur pour tester deux éléments :
  • a==b renvoie True si a=b et False sinon
  • a!=b renvoie True si a est différent de b et False sinon
  • a<b renvoie True si a<b et False sinon.

La structure conditionnelle "if"

En Python, voici la structure :

if condition :
	instruction(s)
else :
	instruction(s)

Le bloc else n'est pas obligatoire

Vous remarquerez le symbole : très important en Python qui marque le début d'un bloc.

C'est l'indentation qui délimite le bloc d'instructions

Voici un exemple :

a=float(input("Entrer un nombre positif : "))
if a>=0 :
    print("Vous avez entré un nombre positif")
else :
    print("Vous avez entré un nombre négatif ?")
Qu'affiche ce programme avec a=-1 ? a=0? a=6? a="positif"?

La structure elif :

if condition1 :
	instruction(s)
elif condition2 :
	instruction(s)
elif condition3 :
	instruction(s)
else :
	instruction(s)

Un autre exemple :

a=float(input("Entrer un nombre : "))
if a>0 :
    print("Vous avez entré un nombre strictement positif.")  
elif a==0 :
    print("Vous avez entré un nombre nul.")
else :
    print("Vous avez entré un nombre strictement négatif.")

Ecrire une fonction signe_prod(a,b) qui reçoit deux entiers a et b relatifs et qui renvoie True si le produit de a par b est positif et False sinon. Attention : on ne doit pas calculer le produit des deux nombres.

Boucle itérative :pour/for

avec une variable

La structure "for" avec range

Voici la structure en Python d'une boucle for avec range

for i in range(n):
	instruction 1
	instruction 2
	...
	

Dans cette boucle i prendra les valeurs de 0 à n-1.

Toutes les instructions dans la boucle seront appliquées pour chaque valeur de i.

Dans cette structure, on connait à l'avance le nombre de répétitions. Dans notre cas, il est égal à n.

Cette boucle fait le calcul : 0+1+2+3+...+10

s=0
for i in range(11):
	s=s+i

Ecrire une fonction somme_carrée(n) où n est un entier qui renvoie la valeur de 12+22+...+n2

  • Rappel x2

    si vous voulez implémenter la puissance en Python, ilfaut écrire :

    
    	                               x**2	
  • sur un objet itérable

    La structure "for" avec in

    Voici la structure en Python d'une boucle for avec in

    for elt in variable:
    	instruction 1
    	instruction 2
    	...
    			

    Dans cette boucle, elt va parcourir les éléments de la variable.

    La variable peut être une liste, une chaine de caractères.

    Une liste en Python est une suite d'éléments entre [ et ] séparés par des ,.

    Cette boucle affiche chaque élément d'une liste

    liste=["un",2,3,8,"serpent"]
    for elt in liste:
    	print(elt)

    Tester le script ci-dessus et modifier la liste avec une liste contenant d'autres éléments.

    Un autre exemple avec une chaine de caractères. Le langage python transforme une chaine de caractères en une liste d'éléments.

    Tester le code suivant :

    
    citation="On ne saura plus rien, à l'époque où on croira tout savoir."
    for lettre in citation:
    	print(lettre)
    

    Que fait le code suivant :

    
    citation="On ne saura plus rien, à l'époque où on croira tout savoir."
    compteur=0
    for lettre in citation:
    	if lettre=="e":
    		compteur=compteur+1
    print(compteur)
    	

    Transformer le code pour qu'il compte le nombre de i.

    Boucle itérative : while

    La structure while

    Voici la structure en Python d'une boucle while

    while condition:
    	instruction 1
    	instruction 2
    	...
    

    Tant que la condition est vraie les instructions du bloc sont exécutées.

    Dans cette structure, on ne connait pas à l'avance le nombre de répétitions.

    Une balle part d'une hauteur de 2 mètres et perd 10% de sa hauteur à chaque rebond. On cherche le nombre de rebonds pour la balle atteigne un maximum de 1,5 mètre de hauteur. Ce problème (on parle de problème de seuil) peut être traité en python par le script suivant :

    hauteur=2
    rebond=0
    
    while hauteur>1.5:
        rebond=rebond+1
        hauteur=hauteur*0.9
    
    print(rebond)
    

    Tester ce script

    Modifier les valeurs pour que la balle démarre à une hauteur de 3 mètres et atteigne la hauteur de 2 m.

    Facultatif

    Une cuve d'eau à une contenance de 1000L. En moyenne la cuve d'eau se remplis de 3L d'eau par jours. Ecrire une fonction remplir() qui renvoie le nombre jours qu'il faudra pour remplir la cuve.