- Voici quelques principes énoncés par Guido van Rossum :
- Simple et intuitif
- Compréhensible, aussi simple à comprendre que de lire l’anglais
- Approprié pour les tâches quotidiennes
- Permettant des temps de développement courts
- A la différence d’autres langages, Python n’utilise pas de caractère spécifique pour délimiter les instructions de code.
- Une instruction étant un ordre simple que le langage doit exécuter
- Le saut de ligne suffit à terminer l’instruction courante
- Pas d’usage du « ; » comme en C, C++, Java, …
- Il est parfois nécessaire, par soucis de lisibilité, d’écrire des instructions surplusieurs lignes. Dans ce cas, on utilisera le « \ » pour indiquer que l’instruction courante se poursuit sur la ligne suivante.
print ("hello world")
chaine = "Une instruction de code vraiment beaucoup trop longue" \
"pour être lisible si elle est écrite sur une seule et" \
"unique ligne !"
print ( chaine )
- En algorithmie, les blocs servent à délimiter une séquence d’instructions.
- L’objectif étant d’exprimer un périmètre de validité à ces instructions.
- En Python, l’usage du « : » permet de démarrer un bloc, ensuite, il est nécessaire d’utiliser une tabulation supplémentaire par rapport au niveau de tabulation courant, pour exprimer le contenu du bloc.
- Les tabulations ne sont donc pas cosmétiques en Python !
- Exemple :
def simple_methode(valeur):
if valeur < 0 :
res = "negatif"
- La réalisation d’un script python peut se réaliser de plusieurs façons :
- Ecriture depuis la console Python qui est un outil interactif permettant d’exécuter à la volée des instructions de code
- Ecriture dans un fichier qui a une extension *.py
print ("hello world")
- Python ne propose pas de point d’entrée d’application :
- Pas de main comme dans certains langages
- L’ensemble des instructions est exécutée
- Aucune fonction n’est appelée automatiquement.
- Ce manque de structure fait partie intégrante de la philosophie mais peut être perturbant dans des projets pour la relecture de code.
- Il est donc possible de définir un point d’entrée :
if __name__ == '__main__':
print ("hello world")
print (repr (__name__))
- Un module __name__est défini égal à '__main__ ’ lorsqu'il est lu à partir d'une entrée standard, d'un script ou d'une invite interactive.
- __name__est stocké dans l'espace de noms global du module
-Les types de données simples
- Entiers (int)
- Réels (float)
- Chaines de caractères (str )
o Entre " ou ‘
-Booléens (bool)
o Mots clés True et False
if __name__ == '__main__':
un_entier = 12
print (type (un_entier))
un_reel = 3.1415
print(type(un_reel))
un_booleen = True
print(type(un_booleen))
une_chaine = "hello world"
print ( type (une_chaine))
- Typage dynamique
- Le typage d’une variable est réalisé lors de son affectation.
- Le type peut changer au cours du déroulement du programme
un_entier = 12
print ("valeur de un entier ",un_entier,"type : " , type ( un_entier))
un_entier = "121"
print("valeur de un entier ", un_entier, " type : ", type(un_entier))
-Typage fort
- Pas de conversion implicite par commodité !
- Un entier reste un entier
un_entier = "121"
print("valeur de un entier ", un_entier, " type : ", type(un_entier))
resultat = un_entier + 3
- Chaque type de données simple possède une fonction de conversion permettant de convertir une données vers ce type.
str(), int(), float()
un_entier = "121"
print("valeur de un entier ", un_entier, " type : ", type(un_entier))
resultat = int( un_entier) + 3
print("resultat : " , resultat )
-But :
-Augmenter la lisibilité de certains nombres
- Se rapprocher de leur présentation dans la vie courante
- Moyens :
- Inclusion du caractère « _ »
- Autant de fois que nécessaire
- Exemple
milleMilliards= 1_000_000_000_000
- Python ne permet pas de déclarer des constantes ( pas de mot clé ).
- La réalisation de constante est basé sur des conventions :
- Déclaration globale
- Identifiant représenté en lettres majuscules
- C’est un moyen d’avertir le programmeur que cette donnée ne doit pas être modifiée :
PI = 3.14159
- Un opérateur est un caractère ou une suite de caractères à laquelle la grammaire de Python donne une signification particulière.
- Les opérateurs Python sont regroupés dans les familles suivantes :
- Opérateurs arithmétiques
- Opérateurs logiques
- Opérateurs d'assignation
- Opérateurs de comparaison
- Opérateurs d'identité
- Opérateurs d'inclusion
- Les chaines de caractères, comme tous les types de données, sont des objets. A ce titre, une chaine de caractères possède un certain nombre de méthodes internes permettant leur manipulation.
- Les chaines de caractères s’écrivent entre guillemets ou apostrophe.
message = "My name is Bond"
langage ='Mon langage favori Python'
print ( message )
print ( langage )
Le langage fournit un ensemble de fonctions permettant de manipuler les chaîne de caractères :
- Longueur d’une chaine
- len(chaine)
- Gestion de la casse
- chaine.lower()
- chaine.upper()
- Appartenance
- mot in chaine
- Remplacement
- chaine.replace("a", "A")
- Découpage
- chaine.split()
-La classe Str est immuable :
- Une chaîne de caractères ne peut pas être modifiée
message = "langage Python"
messageMaj = message.upper()
print (f"{message} {messageMaj}")
print ( message.find ( "Python"))
print ( "Python" in message )
print (message.split())
print ('join')
print("-".join(["James" , "Bond"]))
- Le formatage des chaines de caractères se fait en utilisant l’opérateur modulo (%). Voici quelques possibilités :
langage = 'Python'
duree = 4
print("Bienvenue à la formation %s de %d jours" % (langage , duree) )
- Python pousse à l’usage d’une autre approche, utilisant la méthode format() des chaines de caractères :
langage = 'Python'
duree = 5
print("Bienvenue à la formation {0} de {1} jours".format(langage, duree) )
print("Bienvenue à la formation {langage} de {duree} jours" \
.format(langage=langage, duree=duree))
- Python propose un nouveau mécanisme pour le formatage de chaîne de caractères : les f-string.
f"{valeur:formatage}"
- Il est possible de spécifier des options de formatage avancées directement à l'intérieur des accolades. cf. https://realpython.com/python-f-strings/
langage = 'Python'
duree = 4
print(f"Bienvenue à la formation {langage} de {duree} jours")
print(f"Bienvenue à la formation {langage} de {duree*6} heures")
- La gestion des chaîne de caractères a évolué entre Python et python 3:
- en 2.7, les chaînes sont par défaut des arrays d’octets, et il faut les décoder pour obtenir de l’unicode.
- en 3, les chaînes sont par défaut de type ‘unicode’, et il faut les encoder pour obtenir de un array d’octets.
- La version 3 prend plusieurs mesures pour éviter les bugs
- L’encodage par défaut du code est UTF8.
- L’encodage par défaut de lecture et d’écriture est UTF8.
- On ne peut plus mélanger ‘bytes’ et ‘unicode’.
- La création d’un tableau d’octet demande de préfixer une chaîne avec ‘b’ :
langage = b"Bienvenue en Python"
print ( langage, type(langage))
str = langage.decode ( "utf8")
print ( str , type(str))
-Les types évolués
- Listes (list)
- Mutables
- Liste non modifiable (tuple)
- Immutables !
- Dictionnaires (dict)
- Tableaux associatifs
- Le type spécial
- None
- Par exemple un retour nul de fonction
liste = ["un", "deux", "trois"]
print("type", type(liste))
ensemble = ("un" , "deux" , "trois")
print ( "type" , type (ensemble))
dico = {"un":1, "deux":2, "trois":3}
print("type", type(dico))
-La classe list fournit un ensemble de méthodes :
- Les listes sont modifiables. Il est possible d’ajouter, de modifier, de supprimer un élément ou bien d’étendre la liste avec une autre.
iste = ["un", "deux", "trois" , "quatre"]
liste.append("cinq")
print (liste)
liste[2] = "DEUX"
liste.remove ("quatre")
for elem in liste:
print (elem)
- Permet de restreindre les valeurs d'une variable
from enum import Enum
class Carte(Enum):
Pique = 1
Coeur = 2
Carreau = 3
Treffle = 4
-La classe Carte est une énumération (ou un enum).
- Les attributs Carte.Pique,Carte.Coeur, sont des membres de l'énumération et sont fonctionnellement des constantes.
- Les membres de l'enum ont chacun un nom et une valeur:
- le nom de Carte.Pique est Pique,
- la valeur de Carte.Coeur est 2
Exemple :
carte = Carte.Coeur
print ( carte , carte.name , carte.value)
print ( type (carte))
for c in Carte:
print (c.name)
- Il est possible d’accéder dynamiquement au champ d’un enum ;
print ( Carte(2))
print ( Carte["Coeur"])
- Les notions d’entrée et de sorties d’un système d’exploitation sont historiquement liées aux systèmes Unix et à la ligne de commande.
- On considère que pour interagir avec une commande en utilisant unterminal, on utilisera :
- L’entrée standard (STDIN)
- Associée au clavier, elle permet à l’utilisateur d’envoyer des données à la commande.
- La sortie standard (STDOUT)
- Associée à l’écran, elle offre le résultat nominal de l’exécution de la commande.
- La sortie d’erreur (STDERR)
- Associée également à l’écran, elle permet l’affiche des problématiques rencontrées lors de l’exécution de la commande.
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.
Pas encore de commentaires.