vendredi 6 mars 2020

Début en Python

Compte tenu de la montée en puissance de Python en entreprise, je me devais d'en apprendre un peu plus sur le langage.
Il parait en effet que ce langage remplace même le VBA au niveau bureautique, mais aussi les SAS, voir R pour les calculs statistiques et financier.
Est-ce parce qu'il est appris par les universitaires ?
Je suis plutôt Ruby, mais il parait que Ruby s'est inspiré de Python.
Je vous partage ici mes notes rapides sans blabla. Pour une immersion un peu moins brutale, n'hésitez pas à vous référé à OpenClassRoom.

Alors Python est sensible au format. C'est à dire que les indentations obligatoires comptent dans la syntaxe du langage. Cela va être rude pour les personnes qui codait un script à l'arrache avec un langage hyper permissif.

  • Indentation obligatoire
  • Extension du langage : Python (.py)

Mes notes rapides :

#commentaire
print #afficher
annee = input("Saisissez une année : ") #récupération entrée
annee = int(annee) #cast en int

("chaîne de caractères")
('chaîne de caractères')
("""chaîne de caractères""")
"essai\nsur\nplusieurs\nlignes"

Opérateurs :
+=
%
==
!=
not

Partie entière d'une division
10 // 3

a,b = b,a # permutation

x = y = 3 #multi-affectation

 1 + 1 + \
 3 + 4 #\ permet de continuer l'instruction sur la ligne suivante

type(x) #type de classe de l'élément - objet

#indentation + ne pas oublier le ":"
if 0 == annee % 400 or (annee % 4 == 0 and annee % 100 != 0):
    print("L'année saisie est bissextile.")
else:
    print("L'année saisie n'est pas bissextile.")

if, elif et else #else if

if lettre in "AEIOUYaeiouy": # lettre est une voyelle

while i < 10:
i+=1

for element in sequence:

break (arrête la boucle), continue (revient au while)

def fonction(param1, max=10): #declaration fonction ; avec valeur par défaut

#fonction lambda "simple"
f = lambda x: x * x
>>> f(5)
25
lambda x, y: x + y

Module : ensemble de fonctions, scripts cohérents entre eux
help("math")
help("math.sqrt")

import module

import math as mathematiques #renommer l'espace de nom
mathematiques.sqrt(25)

#import d'une fonction et non pas le module complet
from math import fabs
from math import * #import de teoutes les fonctions
from nom_bibliotheque.objets import bouton #import que du package

#Exemple equivalent
from package.fonctions import table
table(5) # Appel de la fonction table

# Ou ...
import package.fonctions
package.fonctions.table(5)  # Appel de la fonction table

#Gestion des exceptions
try:
    # Test d'instruction(s)
except type_de_l_exception: #ex.: NameError, TypeError, ZeroDivisionError
    # Traitement en cas d'erreur
finally:
    # Instruction(s) exécutée(s) qu'il y ait eu des erreurs ou non

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

pass #mot clé pour ne rien faire; python attendant toujours une instruction

> Vocabulaire :

  • LIST : ["apple", "banana", "cherry"] (ordered, changeable, and allows duplicate members)
  • TUPLE : ("apple", "banana", "cherry")
  • SET : {"apple", "banana", "cherry"} (does not allow duplicate members)
  • DICTIONNARY : {"name": "apple", "color": "green"}

#slice premier élément%
x = ['a', 'b', 'c']
puts x[1:] # => b,c