Python
De Linuxmemo.
Sommaire |
[modifier] 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 >>>
[modifier] 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)
[modifier] 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
[modifier] Les scripts
ne pas oublier le shebang et la ligne d'encodage
- !/bin/python
- -*- coding : utf-8 -*
[modifier] 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.
[modifier] Les build-in fonctions
type() donne le type du parametre print() dédiée à l’affichage uniquement input() int() float() bool()
[modifier] 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 :
[modifier] 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.
[modifier] 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
[modifier] 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.
[modifier] 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
[modifier] 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)
[modifier] 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. |
[modifier] Built-in Functions
http://docs.python.org/library/functions.html
[modifier] 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.
[modifier] 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
Pipenv will install the Requests library and create a Pipfile for you in your project’s directory. The Pipfile is used to track which dependencies your project needs in case you need to re-install them, such as when you share your project with others.