About

Swaroop C H is 27 years of age. He is currently a Product Leader at Infibeam, one of the largest ecommerce companies in India. He has previously worked at Yahoo!, Adobe and his own startup.

Read more about him

Page
Personal tools
COLLECTION
Collection

Python fr:Les Bases

From Notes

Jump to: navigation, search

Afficher seulement 'Hello World' n'est pas assez, n'est-ce pas ? Vous voulez faire plus que cela - vous voulez prendre des choses en entrée, les manipuler et en sortir quelque chose. Nous pouvons réussir cela avec Python en utilisant des constantes et des variables.

Contents

[edit] Constantes Littérales

Un exemple d'une constante littérale est un nombre comme 5, 1.23, 9.25e-3 ou une chaîne de caractères comme 'This is a string' ou "It's a string!". Cela s'appelle un littéral parce que c'est littéral - vous pouvez utiliser la valeur littéralement. Le nombre 2 représente toujours lui-même et rien d'autre - c'est une constante parce que sa valeur ne peut être changée. Donc, on se réfère à toutes ces valeurs en tant que constantes littérales.

[edit] Nombres

Les nombres dans Python sont de trois types - entiers, nombres en virgule flottante et nombres complexes.

  • Un exemple d'un entier est 2 qui est juste un nombre entier.
  • Des exemples de nombres en virgule flottante (ou floats en abrégé) sont 3.23 et 52.3E-4. La notation E indique des puissances de 10. Dans ce cas, 52.3E-4 signifie 52.3 * 10-4.
  • Des exemples de nombres complexes sont (-5+4j) et (2.3 - 4.6j)
Note pour les programmeurs expérimentés
Il n'y a pas de type 'long int' à part. Le type entier par défaut peut être une valeur de n'importe quelle longueur.

[edit] Chaînes De Caractères

Une chaîne de caractères est une suite de caractères. Les chaînes de caractères sont juste un groupe de mots. Les mots peuvent être en anglais ou n'importe quelle autre langue supportée par le standard Unicode, ce qui veut dire pratiquement n'importe quelle langue sur Terre.

Note pour les programmeurs expérimentés
Il n'y a pas de chaîne de caractère "ASCII-only" parce que Unicode est une surcouche à ASCII. En cas de besoin d'un byte-stream strictement ASCII-encoded, alors utilisez str.encode("ascii"). Pour plus de détails, voyez la discussion sur ce sujet à StackOverflow.
Par défaut, toutes les chaînes de caractères sont Unicode.

Je peux vous garantir que vous utiliserez des chaînes de caractères dans pratiquement chaque programme que vous écrirez, donc soyez attentifs à ce qui suit, sur la manière d'utiliser les chaînes de caractères dans Python.

[edit] Simple Quotes

Vous pouvez définir des chaînes de caractères en utilisant des simples quotes comme 'Quote me on this'. Tous les whitespaces, par exemple les espaces et des tabulations, sont gardés tels quels.

[edit] Double Quotes

Les chaînes de caractères entre double quotes fonctionnent exactement de la même manière qu'avec les simples quotes. Un exemple est "What's your name?"

[edit] Triple Quotes

Vous pouvez déclarer les chaînes de caractères sur plusieurs lignes en utilisant des triples quotes - (""" ou '''). Vous pouvez utiliser des simples quotes et des double quotes librement à l'intérieur des triple quotes. Un exemple est :

   '''This is a multi-line string. This is the first line.
    This is the second line.
    "What's your name?," I asked.
    He said "Bond, James Bond."
    '''

[edit] Escape Sequences

Supposons, vous voulez avoir une chaîne de caractères contenant une simple quote ('), comment faire ? Par exemple, la chaîne de caractères What's your name?. Vous ne pouvez pas déclarer 'What's your name?' parce que Python sera perdu, où commence et se termine la chaîne de caractères ? Donc, il vous faut indiquer que cette simple quote n'indique pas la fin de la chaîne. Cela peut être fait avec l'aide de ce qu'on appelle une escape sequence. Vous indiquez la simple quote comme \' - notez le backslash. Maintenant, vous pouvez indiquer la chaîne de caractères comme 'What\'s your name?'.

Une autre façon de faire serait "What's your name?" c'est à dire utiliser des double quotes. De la même manière, vous devez utiliser une escape sequence pour utiliser une double quote elle-même dans une chaîne de caractères définie par des double quotes. Pour indiquer le backslash, vous devez utiliser le backslash lui-même \\.

Comment faire pour indiquer une chaîne de caractère sur deux lignes ? Une façon est d'utiliser une chaîne de caractère entre des triple quotes comme montré précédemment ou vous pouvez utiliser une escape sequence pour le caractère - \n pour indiquer le début d'une nouvelle ligne. Un exemple est This is the first line\nThis is the second line. Un autre escape sequence utile à connaître est la tabulation - \t. Il y a beaucoup d'autres escape sequences mais j'ai seulement mentionné les plus utiles ici.

Une chose à noter est que, dans une chaîne de caractères, un backslash unique à la fin de la ligne indique que la chaîne de caractères continue à la ligne suivante, mais une nouvelle ligne n'est pas ajoutée, par exemple :

   "This is the first sentence.\
   This is the second sentence."

est équivalent à "This is the first sentence. This is the second sentence.".

[edit] Raw Strings

Vous indiquez une raw string en préfixant par r ou R la chaîne de caractères. Un exemple est r"Newlines are indicated by \n".

[edit] Les Chaînes De caractères Sont Immuables

Cela signifie que quand vous avez créé une chaîne, vous ne pouvez pas la changer. Bien que cela semble être une mauvaise chose, ce n'est pas le cas. Nous verrons pourquoi cela n'est pas une limitation dans les différents programmes à venir.

[edit] Concaténation De Chaînes De Caractères

Si vous placez deux chaînes de caractères littérales côte à côte, elles sont automatiquement concaténées par Python. Par exemple, 'What\'s ' 'your name?' est automatiquement converti en "What's your name?".

Note pour les programmeurs C/C++
Il n'y a pas de type de donnée char à part dans Python. Il n'y a pas de véritable besoin et je suis sûr que cela ne vous manquera pas.
Note pour les programmeurs Perl/PHP
Souvenez-vous que les chaînes de caractères entre simple quotes et entre double quotes sont les mêmes, elles sont complètement identiques.
Note pour les utilisateurs des expressions régulières
Utilisez toujours des raw strings quand vous travaillez avec des expressions régulières. Sinon, vous aurez besoin de beaucoup de contorsions. Par exemple, on se réfère aux backreferences en tant que '\\1' ou r'\1'.

[edit] La Méthode format

Nous avons parfois besoin de fabriquer des chaînes de caractères à partir d'autres informations. Dans ce cas la méthode format() est utile.

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
# Nom de fichier : str_format.py
 
age = 25
name = 'Swaroop'
 
print('{0} est âgé de {1} ans'.format(name, age))
print('Pourquoi {0} joue avec ce python?'.format(name))

Output:

   $ python str_format.py
   Swaroop est âgé de 25 ans
   Pourquoi Swaroop joue avec ce python?

Comment cela marche :

Une chaîne de caractères peut utiliser certaines spécifications et par la suite, la méthode format peut être appelée pour remplacer ces spécifications avec les arguments correspondants à la méthode format.

Observez le premier usage dans lequel nous utilisons {0} et cela correspond à la variable name qui est le premier argument de la méthode format. De la même manière, la deuxième spécification est {1} qui correspond à age qui est le deuxième argument de la méthode format.

Notez que nous pouvons arriver au même résultat en utilisant la concaténation de chaînes de caractères : name + ' is ' + str(age) + ' years old' mais notez comme c'est plus laid et sujet à l'erreur. Ensuite, la conversion vers string serait faite automatiquement par la méthode format au lieu de la conversion explicite ici. Troisièmement, en utilisant la méthode format , nous pouvons changer le message sans devoir s'occuper des variables utilisées et vice-versa.

Dans la méthode format Python substitue chaque valeur d'argument. Il peut y avoir des spécifications détaillées comme :

>>> '{0:.3}'.format(1/3) # décimal (.) avec une précision de 3 pour float
'0.333'
>>> '{0:_^11}'.format('hello') # compléter avec des underscores (_) le texte centré (^) avec une largeur de 11 
'___hello___'
>>> '{name} wrote {book}'.format(name='Swaroop', book='A Byte of Python') # basé sur un mot-clé
'Swaroop wrote A Byte of Python'

Les détails de la spécification du formattage sont expliqués dans Python Enhancement Proposal No. 3101.

[edit] Variables

Utiliser seulement des constantes littérales peut rapidement devenir ennuyeux - nous avons besoin de solutions pour ranger n'importe quelles informations et les manipuler. C'est là que les variables interviennent. Les variables sont exactement ce que leur nom implique - leur valeur peut changer, vous pouvez stocker n'importe quoi avec une variable. Les variables sont juste des endroits où vous rangez de l'information dans la mémoire de l'ordinateur. Contrairement aux constantes littérales, vous avez besoin d'une méthode pour accéder à ces variables et donc vous leur donnez des noms.

[edit] Nommage D'Identifiants (Identifier Naming)

Les variables sont des exemples d'identifiers. Les Identifiers sont des noms donnés pour identifier quelque chose. Vous devez respecter quelques règles pour donner un nom aux identifiers:

  • Le premier caractère de l'identifier doit être une lettre de l'alphabet (majuscule ASCII ou minuscule ASCII ou caractère Unicode) ou un underscore ('_').
  • Le reste du nom de l'identifier peut être composé de lettres (majuscules ASCII ou minuscules ASCII ou caractère Unicode), underscores ('_') ou chiffres (0-9).
  • Les noms des Identifiers sont sensibles à la casse. Par exemple, myname et myName ne sont pas identiques. Notez la minuscule n dans le premier cas et la majuscule N ensuite.
  • Des exemples de noms d'identifiers valides sont i, __my_name, name_23, a1b2_c3 et random_utf8_characters_Յժջ٣ㄆㄘㄩڨڪწჭⴠςεζਫשׁມຣߓ߆ପବଭ.
  • Des exemples d'identifiers invalides sont 2things, this is spaced out, my-name, et "this_is_in_quotes".

[edit] Types De Données

Les variables peuvent contenir des valeurs de différents types appelés types de données. Les types de base sont les nombres et les chaînes de caractères, dont nous avons déjà parlé. Dans les chapitres suivants, nous verrons comment créer nos propres types de données en utilisant les classes.

[edit] Objets

Rappelez-vous, Python fait référence à tout ce qui est utilisé dans un programme en tant que objet. Cela est compris dans le sens générique. Au lieu de dire 'le quelque chose', nous disons 'l objet'.

Note pour les utilisateurs de la Programmation Orientée Objet
Python est fortement orientée objet, dans le sens que tout est un objet, en incluant les nombres, chaînes de caractères et fonctions.

Nous allons voir comment utiliser des variables avec des constantes littérales. Enregistrez l'exemple suivant et lancez le programme.

Comment écrire des programmes Python
La manière standard est d'enregistrer et de lancer un programme Python comme suit:
  1. Ouvrez votre éditeur favori.
  2. Entrez le code en exemple.
  3. Enregistrez-le sous le nom du fichier indiqué dans le commentaire. Je suis la convention de donner l'extension .py à tous les programmes Python.
  4. Lancez l'interpréteur avec la commande python program.py ou utilisez IDLE pour lancer les programmes. Vous pouvez aussi utiliser la méthode des exécutables déjà vue.

[edit] Un Exemple: Utiliser Des Variables Et Des Constantes Littérales

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
# Nom de fichier : var.py
 
i = 5
print(i)
i = i + 1
print(i)
 
s = '''Voici une chaîne multi-ligne.
Voici la deuxième ligne.'''
print(s)

Résultat :

   $ python var.py
   5
   6
   Voici une chaîne multi-ligne.
   Voici la deuxième ligne.

Comment cela fonctionne :

D'abord, nous assignons la valeur littérale constante 5 à la variable i en utilisant l'opérateur d'assignation (=). Cette ligne est appelée une instruction parce qu'elle indique qu'une action doit être faite, et dans ce cas, nous connectons la variable nommée i à la valeur 5. Ensuite, nous affichons la valeur de i en utilisant l'instruction print qui, sans surprise, affiche juste la valeur de la variable à l'écran.

Ensuite nous ajoutons 1 à la valeur stockée dans i et nous la stockons à nouveau. Nous l'affichons et comme prévu, nous obtenons la valeur 6.

De la même manière, nous assignons la chaîne littérale à la variable s et nous l'affichons.

Note pour les programmeurs dans des langages statiques
Les variables sont créées en leur donnant juste une valeur. Il n'y a pas de déclaration ou de définition de type de données.

[edit] Lignes Physiques Et Lignes Logiques

Une ligne physique est ce que vous voyez quand vous écrivez le programme. Une ligne logique est ce que Python voit comme une seule instruction. Python suppose implicitement que chaque ligne physique correspond à une ligne logique.

Un exemple d'une ligne logique est une instruction comme print('Hello World') - si c'était une ligne (comme vous la voyez dans un éditeur), alors cela correspondrait aussi à une ligne physique.

Implicitement, Python encourage l'utilisation d'une seule instruction par ligne, ce qui rend le code plus lisible.

Si vous voulez spécifier plus d'une ligne logique sur une seule ligne physique, alors il vous faut l'indiquer avec un point-virgule (;) qui indique la fin d'une ligne/instruction logique. Par exemple,

   i = 5
   print(i)

est la même chose que

   i = 5;
   print(i);

et peut être écrit

   i = 5; print(i);

ou même

   i = 5; print(i)

Cependant, je recommande fortement que vous continuiez à écrire une seule ligne logique dans seulement une seule ligne physique. Utilisez plus d'une ligne physique pour une seule ligne logique seulement si la ligne logique est vraiment longue. L'idée est d'éviter le point-virgule autant que possible vu que cela rend le code moins lisible. En fait, je n'ai jamais utilisé ou même vu un point virgule dans un programme Python.

Un exemple d'une ligne logique s'étendant sur plusieurs lignes physiques suit. Cela s'appelle explicit line joining.

   s = 'This is a string. \
   This continues the string.'
   print(s)

Cela donne l'affichage :

   This is a string. This continues the string.

De la même manière,

   print\
   (i)

est la même chose que

   print(i)

Parfois, il y a une supposition implicite quand vous n'avez pas besoin d'utiliser un backslash. C'est le cas quand les lignes logiques utilisent des parenthèses, entre crochets ou accolades. Cela s'appelle implicit line joining. Vous pouvez voir cela en action quand nous écrirons des programmes utilisant des listes dans les chapitres suivants.

[edit] Indentation

Les espaces sont importants dans Python. En fait les espaces au début de la ligne sont importants. Cela s'appelle l'indentation. Les espaces (espaces et tabulations) au début de la ligne logique sont utilisés pour déterminer le niveau d'indentation de la ligne logique, qui est à son tour utilisée pour déterminer le groupement des instructions.

Cela signifie que les intructions qui vont ensemble doivent avoir la même indentation. Chaque jeu d'instructions est appelé un bloc. Nous verrons des exemples de l'importance des blocs dans les chapitres suivants.

Un chose à retenir est qu'une fausse indentation va mener à des erreurs. Par exemple:

i = 5
 print('La valeur est ', i) # Erreur! Notez l'espace en début de ligne
print('Je repète, la valeur est ', i)

A l'exécution, vous obtenez l'erreur suivante :

     File "whitespace.py", line 4
       print('La valeur est ', i) # Erreur! Notez l'espace en début de ligne
       ^
   IndentationError: unexpected indent

Notez qu'il y a un espace au début de la deuxième ligne. L'erreur indiquée par Python nous dit que la syntaxe est invalide, c'est-à-dire que le programme n'est pas correctement écrit. Cela vous dit que vous ne pouvez pas commencer des nouveaux blocs n'importe où (à part pour le bloc principal par défaut que vous avez constamment utilisé, bien sûr). Les cas dans lesquels vous pouvez utiliser des nouveaux blocs seront détaillés dans les chapitres suivants comme Le chapitre sur le contrôle de flux.

Comment indenter
Ne mélangez pas les tabulations et les espaces pour l'indentation vu que cela ne fonctionne pas bien entre les différentes plate-formes. Je recommande fortement d'utiliser une seule tabulation ou quatre espaces pour chaque niveau d'indentation.
Utilisez un de ces deux styles d'indentation. Encore plus important, choisissez en un et utilisez-le de manière systématique c'est-à-dire utilisez seulement cette indentation.
Note pour les programmeurs en langage statique
Python utilisera l'indentation pour les blocs et n'utilisera jamais les accolades. Lancez from __future__ import braces pour en savoir plus.

[edit] Récapitulatif

Maintenant que nous avons vu les détails essentiels, nous pouvons passer à des choses plus intéressantes comme les instructions de contrôle de flux. Soyez certains d'être à l'aise avec ces notions.



Please add your comments by clicking on the 'Discussion' link in the left sidebar.