une fonction qui calcule un polynôme
def polynome ( x ) : return x*x + x - 5
une fonction qui calcule un polynôme quelconque
def polynome ( x, coefficient ) : return sum ( [ x**i * c for i,c in enumerate(coefficient) ] )
appel d'une fonction
y = polynome ( 1.2, [ 1, 2, -1] ) # calcul de -x^2 + 2x + 1 pour x = 1.2
fonction avec valeur par défaut
from math import log # on importe une fonction existante def log_base ( x, base = 10 ) : return log (x) / log(base)
appel d'une fonction avec valeur par défaut
y = log_base (1000) # identique à y = log_base (1000, 10) z = log_base (1000, 2) # logarithme en base deux
deux fonctions avec le même noms
def polynome ( x ) : # remplacée par la seconde fonction return x*x + x - 5 def polynome ( x, coefficient ) : return sum ( [ x**i * c for i,c in enumerate(coefficient) ] )
chr et ord
print ( chr( 65 ), chr (97) ) print ( ord("B"), ord ("b") )
exercice
def lettre_suivante(lettre) : # .... return ....
variable locale
def calcul(x) : y = x**2 z = x + y print (z)
erreur
Traceback (most recent call last): File "e.py", line 6, in <module> print (z) NameError: name 'z' is not defined
fonction sans résultat
def calcul(x) : y = x**2 z = x + y a = calcul(x) print (a) # affiche None
plusieurs return
def valeur_absolue(x) : if x < 0 : return -x else : return x
fonction récursive
def recursive(x) : if x / 2 < 1 : return 1 else : return recursive (x/2) + 1
un dictionnaire
d = { } # un dictionnaire vide d = { 'a' : 'acronym', 'b': 'bizarre' } # un dictionnaire qui associe 'acroym' à 'a' et 'bizarre' à 'b'. z = d ['a'] # z reçoit la valeur associée à 'a' et stockée dans le dictionnaire d
quelques fonctions
d = { 'a' : 'acronym', 'b': 'bizarre' } l = len(d) # retourne le nombre d'élément de d b = 'a' in d # b vaut True si une valeur est associée à 'a', on dit aussi que la clé 'a' est présente x = d.get ('a', '') # x vaut d['a'] si la clé 'a' existe, il vaut '' sinon
compter les lettres
texte = "exemple de texte" d = { } for c in texte : d[c] = d.get(c,0) + 1 print (d) # affiche {'a': 1, 'p': 1, 'e': 5, 'd': 1, ' ': 2, 'x': 2, 't': 2, 'm': 1, 'l': 1}
une liste pour clé
f = [3,4] d[f] = 0
erreur
Traceback (most recent call last): File "e.py", line 2, in <module> d[f] = 0 TypeError: unhashable type: 'list'
clé
d = { } d['a'] = 0 # création d'une clé d['a'] = 1 # remplacement d'une valeur
dictionnaire compact
d = { s:len(s) for s in ['un', 'deux', 'trois'] }
liste de mots
mots = ['eddard', 'catelyn', 'robb', 'sansa', 'arya', 'brandon', 'rickon', 'theon', 'rorbert', 'cersei', 'tywin', 'jaime', 'tyrion', 'shae', 'bronn', 'lancel', 'joffrey', 'sandor', 'varys', 'renly', 'a' ]
signature
def mots_lettre_position (liste, lettre, position) : # .... return [ .... ]
signature
def mots_lettre_position (dictionnaire_bien_choisi, lettre, position) : return dictionnaire_bien_choisi. get ( .... , [] )
code César
JENESUISPASCODE MHQHVXLVSDVFRGH
signature code Vigenère
def code_vigenere ( message, cle) : # .... return message_code