« Les bases de Python » : différence entre les versions
mAucun résumé des modifications |
mAucun résumé des modifications |
||
Ligne 109 : | Ligne 109 : | ||
|[[Fichier:Attention.png|gauche|57x57px|sans_cadre]]ATTENTION: On doit avoir le même nombre de variables devant le "=" que d'éléments dans le tuple! En revanche len(tuple) donne bien le nombre de valeurs dans le tuple. | |[[Fichier:Attention.png|gauche|57x57px|sans_cadre]]ATTENTION: On doit avoir le même nombre de variables devant le "=" que d'éléments dans le tuple! En revanche len(tuple) donne bien le nombre de valeurs dans le tuple. | ||
|} | |} | ||
En revanche les éléments d'un tuple n'ont pas forcément le même type.<syntaxhighlight lang="python3"> | |||
label=(3,4,"Strat") | |||
# pourrait être une étiquette "Start" disposée à la position x=3 y=4 à l'écran. | |||
# mieux! | |||
label=[(0,0,"message")]*3 | |||
label[0]=(0,10,"begin") | |||
label[1]=(5,20,"middle") | |||
label[2]=(10,30,"end") | |||
# Un objet du type [(0, 10, 'begin'), (5, 20, 'middle'), (10, 30, 'end')] | |||
</syntaxhighlight>Je n'aime pas trop Python mais là on à une structure assez élégante... j'avoue. | |||
== Les boucle == | == Les boucle == |
Version du 3 novembre 2023 à 19:28
Je ne sais pas vous mais moi je switche souvent d'un langage à l'autre. C, C++, perl, python, javascript, bash.....
Quand je passe un moment sur l'un j'oublie l'autre donc je vais faire une petite page de rafraichissement pour chacun.
Généralités
ATTENTION: Tout ce qui va suivre concerne Python3. Si je parles d'une syntaxe Python2 ce sera précisé. La syntaxe Python2 est très moche. Je ne l'utilise que quand je suis obligé (module écrit en python2 seulement) |
Python est un langage de script qui vient après des langages comme perl. Il est plus structuré que ce dernier. Il est de nos jours utilisé partout. Vraiment partout! Même si on n'en est pas fan il faut y passer.
Python est un langage "WISIWIG" dit on. En gros la structure se voit a l'écran en lisant le code. On est OBLIGE de bien écrire le code.
Ce qui en "C" s'écrirait :
#include <stdio.h>
int min(int a, int b) {
if (a<b)
return a;
else
return b;
}
void main (){
printf (min(3,2));
}
ou bien :
#include <stdio.h>
int min(int a, int b) {(a<b)?a:b;}
void main (){printf (min(3,2));}
Finalement on ferait pluôt :
void main(){
printf (3<2:3;2);
}
Mais ça n'a aucun sens! En Python:
def min(a,b):
if (a<b):
return a
else:
return b
print (min(1,5))
ATTENTION |
|
Les listes et le tuples
C'est un truc qui trouble beaucoup. En python il y a deux types de structures... les listes (des tableaux) et les tuples.
Listes
Une liste est ce que l'on appelle tableau (array) dans la majorités des langages (en C par exemple). La syntaxe est une liste de valeurs séparées par des "," et encadrées par des "[ ]".
# Classiquement (oui un commentaire c'est #)
a=[1,2,3,4,5]
b=["un","deux","trois","quatre","cinq"]
# Ou même
c=["un",1,"quatorze",22,"vla les flics"]
print (c[1])
# écrira 1
print (c[2])
# écrira quatorze
# C'est très "objet" Python :)
a=[0]*5
# Un tableau de 5 entiers à 0: [0, 0, 0, 0, 0]
a=[0.0]*5
# Un tableau de 5 flottants à 0: [0.0, 0.0, 0.0, 0.0, 0.0]
La fonction len() donnera la taille de la liste (son nombre d'éléments).
a=[1,2,3,4]
print (len(a))
Nous donnera la valeur 4
ATTENTION : Le premier index est 0 donc le dernier est len() - 1 |
Tuples
C'est une structure de plus bas niveau. Un exemple
# Exemple de tuple
tuple=(1,2,3)
print (tuple)
La on imprime l'objet tuple. La sortie est :
(1, 2, 3)
Les valeurs ne sont pas indexées on ne peut par écrire
tuple=(1,2,3)
print (tuple[0]) ### Erreur de syntaxe pas d'index sur un tuple
Pour accéder aux valeurs on fait:
tuple=(1,2,3)
x,y,z=tuple
print (x)
Là on écris bien la valeur du premier élément d'un tuple.
On ne peut pas, simplement, changer une seule valeur du tuple. C'est une donnée a part entière.
ATTENTION: On doit avoir le même nombre de variables devant le "=" que d'éléments dans le tuple! En revanche len(tuple) donne bien le nombre de valeurs dans le tuple. |
En revanche les éléments d'un tuple n'ont pas forcément le même type.
label=(3,4,"Strat")
# pourrait être une étiquette "Start" disposée à la position x=3 y=4 à l'écran.
# mieux!
label=[(0,0,"message")]*3
label[0]=(0,10,"begin")
label[1]=(5,20,"middle")
label[2]=(10,30,"end")
# Un objet du type [(0, 10, 'begin'), (5, 20, 'middle'), (10, 30, 'end')]
Je n'aime pas trop Python mais là on à une structure assez élégante... j'avoue.
Les boucle
Il y a beaucoup de façons de faire des boucles en Python.
Itération sur un objet liste
Pour faire une itération sur les éléments de la liste:
a=[1,2,3,4,5]
for i in a:
print (i)
Pour le coup c'est simple et élégant.
Itération sur un dictionaire
Le dictionnaire est une variable déclarée :
mondic={"nom":"Volfoni", "prenom":"Raoul", "age": 45}
on boucle sur les clés par :
mondic={"nom":"Volfoni", "prenom":"Raoul", "age": 45}
for key in mondic:
print (key)
Donne:
nom
prenom
age
Bon c'est pas très utile... En revanche:
mondic={"nom":"Volfoni", "prenom":"Raoul", "age": 45}
for key in mondic:
nom=key
valeur=mondic[key]
print (nom,"\t",valeur)
Nous donne :
nom Volfoni
prenom Raoul
age 45
Ça sembles plus utile. Si on combines les deux (liste et dictionnaires):
o=[{"a":1,"b":23},{"a":34,"b":2}]
i=0
for d in o:
print ("Element ",i)
i+=1
for k in d:
print ("\t",k,"=",d[k])
On boucle sur la liste et, dans chacun des éléments, on boucle sur les attributs du dictionnaire.
Element 0
a = 1
b = 23
Element 1
a = 34
b = 2
While
Qu'on se rassure le while est toujours là.
i = 1
while i < 6:
print(i)
i += 1
En revanche adieux le i++ on est obligé d'utiliser le moche i+=1.