Cours en Devlopement Informatique

  • Python Basic

Les bases du langage Python



Les bases du langage

Syntaxe du langage

- 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

 

Instructions et délimiteurs

- 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 )

 

 
Les blocs

- 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"

 

Structure d’un programme

- 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")

 

Structure d’un programme

- 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

-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

- 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 dynamique fort

-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

 

Les fonctions de conversion

- 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 )

 

Littéraux numériques

-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

 

Les constantes

- 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

 

 

Les opérateurs

- 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

 

Opérateurs : Arithmétiques & Logiques

 

Opérateurs : Assignation

 

Opérateurs : Comparaison & Identité

 

Opérateurs : Inclusion

Les chaines de caractères

- 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 )

 

Manipulation des chaines de caractères

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

-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"]))

 

Formatage des chaines de caractères

- 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))

 

Formatage des chaines de caractères (3.6)


- 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")

 

Les chaines de caractères

- 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’.

 

Gestion des chaînes de caractères

- 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))

 

Autres types de données

-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))

 

Les listes (list) : création & déclaration

-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)

 

['un', 'deux', 'trois', 'quatre', 'cinq']
un
deux
DEUX
cinq

** Process exited - Return Code: 0 **
Press Enter to exit terminal

 

Le type énuméré (Python 3.4) 

- 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

 

Manipulation d’un type énuméré

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"])
Carte.Coeur Coeur 2
<enum 'Carte'>
Pique
Coeur
Carreau
Treffle

** Process exited - Return Code: 0 **
Press Enter to exit terminal

 

Entrée et sortie standards

- 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.