LANGAGE PYTHON
Les variables
- 1. Type d'une variable
Notions cours:
Python est un langage à "typage" dynamique ce qui veut dire qu'il applique automatiquement le codage numérique ( choix des 0 et des 1), réserve automatiquement la quantité de mémoire aux objets.
Si on écrit a=36 ( voir ci-dessous) , python attribue crée un objet nombre de type int « nombre entier » et l'associe au nom a.
On peut connaître le type d'une donnée associé à une variable avec l'instruction type (nom de la variable) , ci-dessous type(a) affiche <class 'int'>
Une classe ( class en Anglias) est une famille de données, ici a est de la class ( famille) int
Ci-dessous, la variable b est associé à un objet nombre à virgule ce qui est codé avec le type "float" ( nombre à virgule flottante dont le codage sera vu plus tard ).
Remarque: en python, la virgule se représente par un point 2,3 se code 2.3.
Pour les caractères, il existe plusieurs codages, Python 3 utilise par défaut le codage utf-8 pour les caractères ce qui correspond au type str.
Voici les types courants de données numériques simples:
Integer ( type int) : nombres entiers naturels et relatifs: -1; 40...
floating point number ( type float): nombre réels: -9.2; 5.612457896; √2....
boolean (type bool): donnée logique (un seul bit): True; False
String ( type str): pour les caractères et les chaînes de caractères ( les textes ): 'e'; "Salut"
Nom des variables
Le nom donné à une variable peut être quelconque mais ne doit pas être un mot clé (mot réservé du langage), comme if, while, for, print(), bin(), ni commencer par un caractère spécial ( #, ', ", =) ou un chiffre. Il est souhaitable de donner aux variables des noms parlants plutôt que des lettres comme a ou b dans les exemples précédents.
- 2 Transformation de caractères en nombres et l'inverse
L'ajout de la valeur d'un objet nombre à un autre s'appelle une addition.
Ci dessous l'addition des valeurs d'objets nombres en utilisant les variables associés (ou directement en citant les valeurs des objets nombres):
L'ajout de la valeur d'un objet chaîne de caractères à une autre s'appelle une concaténation.
La concaténation crée un nouvel objet "chaîne de caractères" constitué de l'assemblage de la valeur de chaque objet impliqué dans l'opération:
Si vous devez utiliser un caractère qui représente un chiffre dans un calcul, vous devez d'abord le convertir en nombre avec la fonction de conversion
eval (nom de variable).
A ce stade vous pouvez vous demander à quoi ça sert? Si des nombres sont stockés dans un fichier ils sont forcément codés comme des caractères ( ce sera le cas des fiches de paies par exemple) , pour les utiliser dans des calculs, il faut ouvrir le fichier, récupérer les caractères, les convertir avec eval(...) puis faire les calculs. Ce sont des actions qui arrivent très souvent en informatique.
Vous pouvez vouloir faire l'inverse c'est à dire transformer un nombre en caractère pour le copier dans un fichier par exemple.
La fonction str(nom de variable) convertit un objet nombre en objet chaîne de caractères.
- 3. Récupération d'une valeur saisie au clavier
L'instruction input(....) permet de récupérer des informations auprès de l'utilisateur, elle affiche un message à l'écran qui doit être placé dans ses parenthèses entre apostrophes, le \n permet de sauter une ligne à la fin de l'affichage sur l'écran.
Techniquement, l'instruction input(....) construit un objet chaîne de caractères à partir de la saisie de l'utilisateur et renvoie cet objet qui doit être associé à une variable ( age ci-dessous) pour ne pas être perdu et pouvoir être utilisé.
L'instruction eval(...) ci-dessous convertit l'objet chaîne associé à la variable age en objet nombre pour pouvoir l'utiliser dans un calcul.
En passant par une variable associée intermédiaire:
Dans les deux cas le résultat de l'affichage sera:
- 4. Les objets chaînes de caractères:
Un caractère est une lettre comme y, u, etc.. ou un symbole quelconque de clavier comme: 1,2,3, /, *,+, \, {, #, etc.
Les objets chaînes de caractères ont pour valeur un caractère ou l’association de caractères soit des suites de caractères ( des mots, des phrases ).
On peut associer une variable à un objet chaîne de caractères:
Pour que python ne confonde pas les objets chaînes caractères et les noms de variable associés dans les lignes de code, les objets chaînes sont toujours délimitées par apostrophes simples ou doubles, c'est une des règles du langage, exemples: "l'arbre " ou 'bonjour'
Sachant que l'utilisateur du programme n'est pas forcément un informaticien les apostrophes n'apparaissent pas lors de l'affichage à l'écran du résultat de l'exécution d'un programme qui donne une chaîne de caractères ; de même, l'utilisateur d'un programme n'étant pas forcément un informaticien, s'il doit saisir une chaîne de caractères suite à une instruction comme input("entrez votre nom"), il n'a pas à mettre les apostrophes.
On ne peut pas modifier un objet chaine, on dit qu'il est immuable
- Manipulation de chaîne de caractères
Il existe des fonctions prêtes à l'emploi ( des instructions) qui permettent de manipuler les chaînes de caractères, par exemple l'instruction len(...) permet de compter le nombre de caractères de la chaîne.
Chaque caractère d'une chaîne est accessible avec un indice, le premier caractère a toujours l'indice 0, pour afficher le premier caractère de la chaîne associée à la variable chaine_bonjour on doit demander print (chaine_bonjour[0]).
Demander print( chaine_bonjour[1] ) affichera le deuxième caractère:
Exemples: soit une objet chaîne associé à la variable chaine_bonjour:
- Extraction de caractères d'une chaîne de caractères
On peut extraire les caractères d'un objet chaîne pour créer un autre objet chaîne par exemple:
chaine_1 = "M groson"
chaine_2 = "ç"
Chaine_3 = " est l'inventeur de la cédille"
chaine_4 = chaine_1[:5] + chaine_2 + chaine_1[6:] + chaine_3
print(chaine_4)
donnera:
chaine_1[:5] : du début de chaine_1 jusqu'au caractère 5 exclus, équivalent à chaine_1[0:5]
chaine_1[6:]: du 6eme caractère inclus jusqu'à la fin de la chaine_1
chaine_1[2:6] => le caractère en position 2 est inclus dans l'extraction et le caractère en position 6 est exclus <=> gros
- Chaîne multi-ligne
Pour associer une variable à un objet « chaîne multi-ligne » , il faut encadrer l'objet de trois apostrophes ( ''' ),
Les listes
Sous Python on peut définir une liste comme une collection d'éléments séparés par des virgules, l'ensemble
étant délimité dans des crochets.
Les listes peuvent contenir des objets de types différents:
jours = ['lundi', 'mardi', 'mercredi', 1025, 'jeudi', 'vendredi']
La fonction " del (.....)" permet de supprimer un élément de la liste à partir de son index.
L'instruction print(jours) affichera:
Vous pouvez remarquer que le 4ème élément de la liste a été effacé, cela vient du fait que le premier élément possède l'indice 0 et le 4eme élément est a l'indice 3. Ainsi jour[0] = 'lundi', jour[1]='mardi', etc.. L'instruction del(jour[3])a effacé l'élément d'indice 3 soit 1025 dans la liste.
Les divers éléments qui constituent une liste sont toujours dans le même ordre, on peut accéder à chacun d'eux si on connaît son index dans la liste, il faut retenir que la numérotation des index commence à partir de zéro et non à partir de un.
Affichera:
La fonction len(nom de variable associée à la liste) renvoie le nombre d'éléments présents dans la liste :
Résultat:
Il est possible d'ajouter un élément à la fin d'une liste, il faut savoir que la liste est un objet conteneur de type "list", on peut utiliser les méthodes de ce type d'objet, en utilisant l'écriture nom_variable_associée.methode()
On peut ajouter un élément en fin de liste avec la méthode "append(....)" appliquée à l'objet liste associé à la variable jours
Affichera:
La méthode sort () permet de trier une liste constituée de nombres dans l'ordre croissant:
affiche:
Les instruction de test
En programmation, il arrive souvent de devoir poser des questions auxquelles on répond par oui ou non, pour décider ensuite de faire quelque chose de particulier en fonction de la réponse. Par exemple, nous pourrions demander à l'utilisateur d'un programme « as-tu plus de 30 ans ? » et, si la réponse est oui, lui répondre « Dommage ! ».
- Le test si: if
On codera ça avec un test " if " ainsi:
age = eval(input ("entrer votre âge \n"))
if (age > 30):
print( "Dommage!")
L’instruction est constituée du mot-clé if , puis d’une condition de test suivie de deux-points ( : ), la condition peut être entourée de parenthèses pour plus de clarté, mais ce n'est pas obligatoire. Une condition est une instruction de programme qui compare des choses, le critère de la comparaison est vrai ( True ) ou faux ( False ), si la condition est vraie alors les instructions du bloc associé au if sont exécutées.
- Les blocs:
Maintenant, voyons comment écrire des blocs:
Un bloc de code est un ensemble regroupé d’instructions de programmation. Lorsque la condition if "age > 30: " est vraie, on peut vouloir afficher plusieurs phrases en sautant une ligne après chacune, comme ceci :
age = eval( input ("entrer votre âge \n"))
if (age > 30):
print( 'Tu es trop vieux !')
print( 'Que fais-tu là ?')
print( 'Pourquoi ne vas-tu pas tondre la pelouse ?')
Ce bloc de code est formé de trois instructions print qui ne seront exécutées que si la condition " age > 30 " est vraie. Chacune des lignes du bloc est décalée de quatre espaces vers la droite par rapport à l’instruction " if ".
En Python, les caractères d’espacement ont un sens bien déterminé. Les lignes dont le code débute au même emplacement (en retrait du même nombre d’espaces par rapport à la marge gauche) sont regroupées en un bloc ; chaque fois qu'on débute une nouvelle ligne par plus d’espaces que la précédente, on démarre un nouveau sous-bloc.
- Test si... alors.... sinon: if else
L’instruction " if " fait quelque chose lorsqu’une condition est vraie ( True ), dans certains cas, on vouloir faire autre chose quand la condition n’est pas vraie, on utilise dans ce cas l'instruction " else:"
Voici un programme qui vous dit si un nombre entré au clavier est pair:
saisie = input ("entrer un nombre entier \n")
nombre = eval(saisie)
# l'opérateur % donne le reste d'une division, 5%3 veut dire "reste de 5 divisé par 3"
if ( nombre % 2 == 0 ):
print( "c'est un nombre pair")
else:
print( "c'est un nombre impair")
- Test si ...alors... sinon si... : if..... elif (l’abréviation de else - if , « sinon-si ») else
L'instruction elif permet de gérer des cas multiples, d'autre pour convertir des caractères en nombre décimal, on peut utiliser la fonction float() à la place d'eval().
Exemple:
age = float( input ("entrer votre âge \n"))
if (age <= 10):
print ("tu es bien jeune")
elif (age > 10 and age <= 20):
print("tu es jeune")
elif (age >= 30):
print("tu n'est pas tout jeune")
else:
print( "désolé je n'ai pas prévu ton cas")
Remarque: les opérateurs logiques dans les tests
Vous pouvez voir ci-dessus dans la condition " elif (age > 10 and age <= 20):" l'opérateur logique "and" qui permet de créer un test avec deux conditions qui doivent être vraies toutes les deux pour que le test soit vrai. De même il existe l'opérateur "or" qui permet de créer un test avec deux conditions où l'une ou l'autre doit être vraie ainsi que l'opérateur not qui permet de créer un test en demandant d'évaluer l'inverse d'une condition ( not True <=> False, not < 90 <=> > 90 )
- Vérification de la présence d'une donnée avec un if ..... in
Il est possible de vérifier si une donnée est présente dans une liste avec un if... in... , par exemple, imaginez un programme qui recherche si une personne est dans une classe. Les membres de la classe sont dans une liste:
Premiere_A = [ "Adémar Aucardetour", "Yann Amar", "Sophie Fonfec", "Nordine Ozor", ....]
Premiere_B = [ "Paul Auchon", "Camille Aunette", "Théo Top", ....]
# la variable a_chercher va contenir le nom de la personne recherchée
a_chercher = input("entrer la personne que vous recherchez \n")
# si le contenu de la variable a_chercher est dans la liste Premiere_A
if a_chercher in Premiere_A:
print( " cette personne est en première A")
# sinon si le contenu de la variable a_chercher est dans la liste Premiere_B
elif a_chercher in Premiere_B:
print( " cette personne est en première B")
# sinon
else:
print( "cette personne n'est pas en première")
Créé avec HelpNDoc Personal Edition: Produire des aides en ligne pour les applications Qt