• PYTHON > infos pêle mêle

      http://www.olivierberger.org/python/doc/tut-1.5.2/node5.html

      https://www.javatpoint.com/python-tutorial

      https://mondedie.fr/d/1624-tuto-installation-de-pyload

      https://www.codingame.com/playgrounds/17176/recueil-dexercices-pour-apprendre-python-au-lycee/cours—representation-graphique-avec-matplotlib

       

      Une Introduction Informelle à Python

      Dans les exemples suivants, la saisie et l’affichage seront distingués par la présence ou l’absence d’invites (">>> " et "... "): pour reproduire l’exemple, vous devez taper tout ce qui suit l’invite, quand celle-ci apparaît; les lignes qui ne commencent pas par une invite correspondent à l’affichage effectué par l’interpréteur. Notez qu’une invite secondaire seule sur une ligne signifie que vous devez taper une ligne vide; ceci marque la fin des commandes sur plusieurs lignes.

      De nombreux exemples de ce manuel, même ceux qui sont saisis à partir de l’invite, contiennent des commentaires. En Python, les commentaires commencent par le caractère dièse, "#", et se poursuivent jusqu’à la fin de la ligne. Un commentaire peut apparaître au début de la ligne ou derrière des espaces ou du code, mais pas à l’intérieur d’une chaîne de caractères. Un dièse à l’intérieur d’une chaîne de caractères est simplement le caractère dièse.

      Quelques exemples:

       

      # voila le premier commentaire
      SPAM = 1                 # et ca c'est le second commentaire
                               # ... et voila un troisieme!
      CHAINE = "# Ceci n'est pas un commentaire."

      Calculatrice

      Nombres

      La division des entiers retourne l’entier immédiatement inférieur:

       

      7/3
      2
      
      7/-3
      -3

       

      Une valeur peut être affectée à plusieurs variables simultanément:

       

      x = y = z = 0

       

      Il y a un support complet des nombres à virgule flottante; les opérateurs en présence de types d’opérandes mélangés convertissent les opérandes entiers en virgule flottante :

       

      >>> 4 * 2.5 / 3.3
      3.0303030303
      >>> 7.0 / 2
      3.5

       

      Les fonctions de conversion en virgule flottante et en entier (

      float(), int() et long()

      Utilisez abs(z) pour obtenir sa norme (en flottant) ou z.real pour sa partie réelle.

       

      >>> a=1.5+0.5j
      >>> float(a)
      Traceback (innermost last):
        File "<stdin>", line 1, in ?
      TypeError: can't convert complex to float; use e.g. abs(z)
      >>> a.real
      1.5
      >>> abs(a)
      1.58113883008

       

      En mode interactif, la dernière expression affichée est affectée à la variable _. Quand vous voulez utiliser Python comme calculatrice, c’est plus pratique pour continuer les calculs, par exemple:

       

      >>> tva = 17.5 / 100
      >>> prix = 3.50
      >>> prix * tva
      0.6125
      >>> prix + _
      4.1125
      >>> round(_, 2)
      4.11

       

      Cette variable doit être utilisée en lecture seule par l’utilisateur. Ne lui affectez pas une valeur de façon explicite -- vous auriez alors créé une variable locale indépendante, avec le même nom, masquant la variable intégrée et son comportement magique.

      3.1.2 Chaînes de Caractères

      Notez que les chaînes admettent ou non les caractères accentués en mode intéractif suivant votre plate-forme. Si les commandes sont lues depuis un fichier, la situation est légèrement différente: en général vous pourrez, mais les caractères accentués risquent d’être interprétés différemment si vous transférez vos fichiers entre des plate-formes différentes. Pour ces questions de portabilité, les identificateurs en Python sont limités au code ASCII 7 bits. Vous ne pourrez pas (en mode intéractif ou pas) utiliser des lettres accentuées dans les noms de variables, fonctions, modules, classes, etc.

      Les textes dans les chaînes peuvent se poursuivre sur plusieurs lignes de plusieurs façons. Les retours chariot peuvent être préfixés avec un antislash, par ex.:

       

      salut = "Ceci est une chaîne plutot longue contenant\n\
      plusieurs lignes de texte excatement comme on le ferait en C.\n\
          Notez que les blancs au début de la ligne sont\
       significatifs.\n"
      print salut

      ce qui s’afficherait de la façon suivante:

       

      Ceci est une chaîne plutot longue contenant
      plusieurs lignes de texte excatement comme on le ferait en C.
          Notez que les blancs au début de la ligne sont significatifs.

      Ou bien, les chaînes peuvent être entourées par un couple de triple-quotes correspondantes: """ ou '''. Les fins de lignes n’ont pas besoin d’être préfixées lorsqu’on utilise les triple-quotes, mais elles seront incluses dans la chaîne.

       

      print """
      Usage: trucmuche [OPTIONS]
           -h                        Affiche cette notice d'usage
           -H hôte                   hôte auquel il faut se connecter
      """

      produit l’affichage suivant:

       

      Usage: trucmuche [OPTIONS]
           -h                        Affiche cette notice d'usage
           -H hôte                   hôte auquel il faut se connecter

      L’interpréteur affiche le résultat des opérations sur les chaînes de la même façon qu’à la saisie: entre quotes, et avec quotes et autres caractères bizarres préfixés par un antislash, pour afficher leur valeur exacte. La chaîne sera délimitée par des doubles quotes si elle contient une simple quote et aucune double quote, sinon, elle sera délimitée par des simples quotes. (L’instruction print, décrite plus loin, peut être utilisée pour écrire des chaînes sans quotes ni caractères préfixés.)

      Les chaînes peuvent être concaténées (accolées) avec l’opérateur +, et répétées avec *:

       

      >>> mot = 'Help' + 'A'
      >>> mot
      'HelpA'
      >>> '<' + mot*5 + '>'
      '<HelpAHelpAHelpAHelpAHelpA>'

      Deux chaînes de texte côte à côte sont automatiquement concaténées; la première ligne ci-dessus aurait aussi pu être écrite "mot = 'Help''A'"; ceci fonctionne seulement avec deux chaînes de texte litérales, pas avec des expressions quelconques de type chaîne:

       

      >>> 'cha' 'ine'                   #  <-  C'est bon
      'chaine'
      >>> string.strip('cha') + 'ine'   #  <-  C'est bon
      'chaine'
      >>> string.strip('cha') 'ine'     #  <-  C'est faux
        File "<stdin>", line 1
          string.strip('cha') 'ine'
                                  ^
      SyntaxError: invalid syntax

      Les chaînes peuvent être décomposées (indexées); comme en C, le premier caractère d’une chaîne est en position (index) 0. Il n’y a pas de type caractère spécifique; un caractère est simplement une chaîne de taille un. Comme en Icon, les sous-chaînes peuvent être spécifiées avec la notation de découpage (slice): deux indices séparés par deux-points.

       

      >>> mot[4]
      'A'
      >>> mot[0:2]
      'He'
      >>> mot[2:4]
      'lp'

      Les indices de découpage ont des valeurs par défaut utiles; un premier index non-défini prend pour valeur par défaut zéro, un second index omis prend pour valeur par défaut la taille de la chaîne qu’on est en train de découper.

       

      >>> mot[:2]    # Les deux premiers caractères
      'He'
      >>> mot[2:]    # Tout sauf les deux premiers caractères
      'lpA'

      Voici un invariant utile des opérations de découpage: s[:i] + s[i:] égale s.

       

      >>> mot[:2] + mot[2:]
      'HelpA'
      >>> mot[:3] + mot[3:]
      'HelpA'

      Les indices de découpage erronés sont gérés de façon élégante: un index qui est trop grand est remplacé par la taille de la chaîne, un index de fin inférieur à l’indice de début retourne une chaîne vide.

       

      >>> mot[1:100]
      'elpA'
      >>> mot[10:]
      ''
      >>> mot[2:1]
      ''

      Les indices peuvent être des nombres négatifs, pour compter à partir de la droite. Par exemple:

       

      >>> mot[-1]     # Le dernier caractère
      'A'
      >>> mot[-2]     # L'avant dernier caractère
      'p'
      >>> mot[-2:]    # Les deux derniers caractères
      'pA'
      >>> mot[:-2]    # Tout sauf les deux derniers caractères
      'Hel'

      Mais notez que -0 est vraiment la même chose que 0, donc ça ne compte pas à partir de la droite!

       

      >>> mot[-0]     # (puisque -0 égale 0)
      'H'

      Les indices de découpage négatifs hors limites sont tronqués, mais n’essayez pas ceci avec des indices d’accès à des éléments uniques (sans découpage) :

       

      >>> mot[-100:]
      'HelpA'
      >>> mot[-10]    # erreur
      Traceback (innermost last):
        File "<stdin>", line 1
      IndexError: string index out of range

       

      La première ligne de nombres donne la position des indices 0…5 dans la chaîne; la seconde ligne donne les indice négatifs correspondants. Le découpage de i à j consiste en tous les caractères entre les extrémités étiquetées i et j, respectivement.

      Pour les indices non négatifs, la longueur d’une tranche est la différence entre ses indices, si les deux sont à l’intérieur des limites, par ex., la longueur de mot[1:3] est 2.

      La fonction intégrée len() retourne la longueur d’une chaîne:

       

      >>> s = 'supercalifragilisticexpialidocious'
      >>> len(s)
      34

      Listes

      Python connaît un grand nombre de types de données composites, utilisées pour regrouper un ensemble de valeurs. La plus riche en possibilités est la liste, qui peut être écrite comme une liste de valeurs (éléments) entre crochets et séparés par des virgules. Les éléments d’une liste n’ont pas nécessairement le même type.

       

      >>> a = ['spam', 'eggs', 100, 1234]
      >>> a
      ['spam', 'eggs', 100, 1234]

      Comme les indices des chaînes, les indices des listes commencent à 0, et les listes peuvent être découpées, concaténées, et ainsi de suite:

       

      >>> a[0]
      'spam'
      >>> a[3]
      1234
      >>> a[-2]
      100
      >>> a[1:-1]
      ['eggs', 100]
      >>> a[:2] + ['bacon', 2*2]
      ['spam', 'eggs', 'bacon', 4]
      >>> 3*a[:3] + ['Boe!']
      ['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boe!']

      A la différence des chaînes, qui sont non-modifiables, il est possible de changer les éléments individuels d’une liste:

       

      >>> a
      ['spam', 'eggs', 100, 1234]
      >>> a[2] = a[2] + 23
      >>> a
      ['spam', 'eggs', 123, 1234]

      L’affectation dans des tranches est aussi possible, et ceci peut même changer la taille de la liste:

       

      >>> # Remplacer certains éléments:
      ... a[0:2] = [1, 12]
      >>> a
      [1, 12, 123, 1234]
      >>> # En enlever certains:
      ... a[0:2] = []
      >>> a
      [123, 1234]
      >>> # En insérer
      ... a[1:1] = ['bletch', 'xyzzy']
      >>> a
      [123, 'bletch', 'xyzzy', 1234]
      >>> a[:0] = a     # Insère (une copie de) soi-même au début
      >>> a
      [123, 'bletch', 'xyzzy', 1234, 123, 'bletch', 'xyzzy', 1234]

      La fonction intégrée len() s’applique aussi aux listes:

       

      >>> len(a)
      8

      Il est possible d’emboîter des listes (créer des listes contenant d’autres listes), par exemple:

       

      >>> q = [2, 3]
      >>> p = [1, q, 4]
      >>> len(p)
      3
      >>> p[1]
      [2, 3]
      >>> p[1][0]
      2
      >>> p[1].append('xtra')     # Cf. section 5.1
      >>> p
      [1, [2, 3, 'xtra'], 4]
      >>> q
      [2, 3, 'xtra']

      Notez que dans l’exemple précédent, p[1] et q se réfèrent réellement au même objet! Nous reviendrons plus tard sur la sémantique des objets.

      3.2 Premiers Pas Vers la Programmation

      Bien sûr, nous pouvons utiliser Python pour des tâches plus compliquées que d’ajouter deux et deux. Par exemple, nous pouvons écrire une sous-séquence de la suite de Fibonacci de la façon suivante:

       

      >>> # Suite de Fibonacci
      ... # La somme de deux éléments définit le suivant
      ... a, b = 0, 1
      >>> while b < 10:
      ...       print b
      ...       a, b = b, a+b
      ...
      1
      1
      2
      3
      5
      8

      Cet exemple introduit plusieurs fonctionnalités nouvelles.

       

    • La première ligne contient une affectation multiple: les variables a et b prennent simultanément les nouvelles valeurs 0 et 1. Sur la dernière ligne l’affectation multiple est utilisée à nouveau, montrant que les expressions en partie droite sont d’abord toutes évaluées avant qu’aucune affectation ne se fasse.
    • La boucle while s’exécute tant que la condition (ici: b < 10) reste vraie. En Python, comme en C, toute valeur entière différente de zéro est vraie; zéro est faux. La condition pourrait aussi être une chaîne ou une valeur de type liste, en fait n’importe quelle séquence; n’importe quoi avec une longueur différente de zéro est vrai, les séquences vides correspondent à faux. Le test utilisé dans l’exemple est une simple comparaison. Les opérateurs de comparaison standard sont écrits de la même façon qu’en C: <, >, ==, <=, >= et !=.
    • Le corps de la boucle est indenté: l’indentation est le moyen par lequel Python regroupe les instructions. Python ne fournit pas (encore) une fonction d’édition de ligne intelligente, donc vous devez insérer une tabulation ou un espace pour chaque ligne indentée. En pratique vous préparerez les saisies plus compliquées avec un éditeur de texte; la plupart des éditeurs de texte ont une fonction d’auto-indentation. Lorsqu’une instruction composée est entrée en mode interactif, elle doit être suivie d’une ligne vide pour indiquer qu’elle est terminée (car l’interpréteur ne peut pas deviner si vous avez tapé la dernière ligne).
    • L’instruction print écrit la valeur de la ou des expressions qui lui sont données. Elle diffère de la simple écriture de l’expression (comme tout-à-l’heure dans les exemples de la calculatrice) dans la mesure où elle accepte plusieurs expressions et chaînes. Les chaînes sont imprimées sans quotes, et un espace est inséré entre les éléments, ce qui vous permet de les afficher dans un format plus sympathique, comme ceci:

 

Aucun commentaire

 

Laissez un commentaire