Python

De Linuxmemo.

Sommaire

Les variables

nom_variable = valeur

Une variable doit respecter quelques règles de syntaxe incontournables :

1. Le nom de la variable ne peut être composé que de lettres, majuscules ou minuscules,de chiffres et du symbole souligné _ (appelé underscore en anglais).

2. Le nom de la variable ne peut pas commencer par un chiffre.

3. Le langage Python est sensible à la casse, ce qui signifie que des lettres majuscules et minuscules ne constituent pas la même variable (la variable AGE est différente de aGe, elle-même différente de age).

Mots réservés

and del from none true
as elif global nonlocal try
assert else if not while
break except import or with
class false in pass yield
continue finally is raise
def for lambda return

Type des variables

int() float() bool()

Chaîne de caractères, différentes façons : - entre guillemets ("ceci est une chaîne de caractères") ; - entre apostrophes ('ceci est une chaîne de caractères') ; - entre triples guillemets ("""ceci est une chaîne de caractères"""). Caractère d'échappement anti-slash \


variable = variable + 1 ou bien en plus court 1 variable += 1

Permutation

>>> a = 5
>>> b = 32
>>> a,b = b,a # permutation
>>> a
32
>>> b
5
>>>

Les fonctions

  • utilisation
fonction():
fonction(parametre_1,parametre_2,...,parametre_n):
  • création
def nom_de_la_fonction ( parametre1 , parametre2 , parametre3 , parametreN ):
                   Bloc d'instructions
  • parametre maxi
def table (nb , max):
  • valeur par défaut pour les paramètres
def table (nb , max=10):
  • "docstring" que l'on pourrait traduire par une chaîne d'aide.

Si vous tapez help(table), c'est ce message que vous verrez apparaître.

indenté au même niveau que le code de la fonction """commentaire d'aide"""
  • On peut appeler des paramètres par leur nom
  • "return" signifie qu'on va renvoyer 2 la valeur, pour pouvoir la récupérer ensuite et la stocker dans une variable par exemple.

Cette instruction arrête le déroulement de la fonction, le code situé après le return ne s'exécutera pas.

def carre ( valeur ):
    return valeur * valeur
variable = carre (5)
  • fonction lambda. Nous allons utiliser le mot-clé lambda comme ceci :
lambda arg1, arg2,... : code court

utilisation

>>> f = lambda x: x * x
>>> f(5)

Les modules

Regrouper plusieurs fonctions selon le même principe. Toutes les fonctions mathématiques, par exemple, peuvent être placées dans un module dédié aux mathématiques.

il suffit de le mettre dans un fichier. On peut alors l'importer depuis un autre fichier contenu dans le même répertoire en précisant le nom du fichier (sans l'extension .py).

  • appel dans son espace de nom
>>> import math
>>> math . sqrt (16)
4
  • appel dans l'espace de nom de base
from nom_modlule import nom_fonction

Les scripts

ne pas oublier le shebang et la ligne d'encodage

  1. !/bin/python
  2. -*- coding : utf-8 -*

Les packages

pour regrouper les modules ayant un rapport entre eux. les packages sont. . . des répertoires ! Dedans peuvent se trouver d'autres répertoires (d'autres packages) ou des fichiers (des modules).

créer un fichier __init__.py pour que Python reconnaisse ce répertoire comme un package. créer des sous-packages de la même façon, en créant un répertoire dans votre package et un fichier __init__.py. Dans votre fichier __init__.py, vous pouvez écrire du code qui est exécuté quand vous importez votre package.

Les build-in fonctions

type() donne le type du parametre print() dédiée à l’affichage uniquement input() int() float() bool()

Les structures conditionnelles

  • if
>>> if a > 0: # Positif
... print ("a est positif .")
... elif a < 0: # Né gatif
... print ("a est né gatif .")
... else : # Nul
print ("a est nul .")

Opérateurs de comparaison: < Strictement inférieur à > Strictement supérieur à <= Inférieur ou égal à >= Supérieur ou égal à == Égal à != Différent de Attention, = est l'opérateur d'affectation et ne doit pas être utilisé dans une condition.

Prédicats (les testes): Vous pouvez tester ces prédicats directement dans l'interpréteur

>>> a = 0
>>> a == 5
False
>>> a > -8
True
>>> a != 33.19
True
>>>

Plusieurs prédicats Les mots-clés and, or et not

if a >=2 and a <=8:
if a <2 or a >8:
if majeur is not True :

Les boucles

while condition :
  instruction 1
  instruction 2
  ...
  instruction N
for element in sequence :
  instruction 1
  instruction 2
  ...
  instruction N

break permet tout simplement d'interrompre une boucle. continue permet de. . . continuer une boucle, en repartant directement à la ligne du while ou for.


Astuces

  • Interpréteur adore les chiffres
>>> 9.5
9.5
on utilise ici la notation anglo-saxonne
>>> 3 + 4
7

Les opérateurs + - * / // %

// permet d'obtenir la partie entière d'une division.

>>> 10 // 3
3
>>>

% "modulo" permet de connaître le reste de la division.

>>> 10%3
1
>>>
  • Version de Python par défaut:
sudo update-alternatives --config python
If you get the error "no alternatives for python" then set up an alternative yourself with the following command:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Syntaxe

le symbole \ permet, avant un saut de ligne, d'indiquer à Python que cette instruction se poursuit à la ligne suivante.Vous pouvez ainsi morceler votre instruction sur plusieurs lignes.

un commentaire débute par un dièse # et se termine par un saut de ligne.

Les exceptions

try :
   # Bloc de test
   except type_de_l_exception as exception_retournee :
   print (" Voici l'erreur :", exception_retournee )

Le mot-clé else Le mot-clé finally le mot-clé pass le mot-clé assert le mot-clé raise

Aide

  • fonction help() avec en parametre le nom d'une fonction ou d'un module
help("math")
dir("math")


http://diveintopython.adrahon.org/toc/index.html

  • l'attribut prédéfini __doc__

Le __name__ d'un module ou d'un fonction fait réference a la documentation """aaaa""".

Plutôt que d'appeler la fonction comme vous l'auriez attendu, nous demandons un des attributs de la fonction, __doc__.

print odbchelper.buildConnectionString.__doc__
  • l'attribut prédéfini __name__

Le __name__ d'un module dépend de la façon dont vous l'utilisez. Si vous importez le module, son __name__ est le nom de fichier du module sans le chemin d'accès ni le suffixe.

Mais vous pouvez aussi lancer le module directement en tant que programme, dans ce cas __name__ va prendre par défaut une valeur spéciale, __main__.

  • modules(librairie standard)
import random
print(random)
dir(random)
help random
help(random.randint)

Formatage variable (type pour conversion)

'd' Signed integer decimal.  
'i' Signed integer decimal.  
'o' Signed octal value. (1)
'u' Obsolete type – it is identical to 'd'. (7)
'x' Signed hexadecimal (lowercase). (2)
'X' Signed hexadecimal (uppercase). (2)
'e' Floating point exponential format (lowercase). (3)
'E' Floating point exponential format (uppercase). (3)
'f' Floating point decimal format. (3)
'F' Floating point decimal format. (3)
'g' Floating point format. Uses lowercase exponential

format if exponent is less than -4 or not less than

precision, decimal format otherwise.
(4)
'G' Floating point format. Uses uppercase exponential

format if exponent is less than -4 or not less than

precision, decimal format otherwise.
(4)
'c' Single character (accepts integer or single character string).  
'r' String (converts any Python object using <a title="repr: Alternate repr() implementation with size limits." href="repr.html#module-repr" class="reference internal">repr()</a>). (5)
's' String (converts any Python object using <a title="str" href="functions.html#str" class="reference internal">str()</a>). (6)
'%' No argument is converted, results in a '%' character in the result.  

Built-in Functions

http://docs.python.org/library/functions.html

Modules (installation)

apt-get install python-dev python-pip
pip install nom_module

ou bien

pip install --proxy httpS://proxy:port nom_module

ou bien

pip install --proxy http://172.21.xxx.xx:8080 -r REQUIREMENTS
ou REQUIREMENTS est un fichier avec la liste des dépendances.

Pipenv

Pipenv is a dependency manager for Python projects. If you’re familiar with Node.js’ npm or Ruby’s bundler, it is similar in spirit to those tools.

python3 -m pip install --user pipenv
cd myproject
pipenv install requests
Outils personnels