On va traiter un exemple de fonction, issu du Bac STG CGRH Métropole-Réunion de Septembre 2007:
=Définition des fonctions=
Énoncé.
Et plus bas, dans le même exercice, 
Fonctions et procédures sous Python.
Une fonction est un petit bout de programme "Python" qui possède un nom (typiquement "f"), et qui renvoie une valeur (l'image de "x", son unique antécédent, par "f"). Une procédure est une fonction qui ne renvoie rien.
Les fonctions du sujet de Bac ci-dessus peuvent être définies par "def" en "Python":
def C(x):
 return x**2+50*x+100.0
def f(x):
 return C(x)/x
Si on essaye de calculer l'image de 0 par "f", on remarque qu'en lieu et place du calcul, "Python" affiche un message d'erreur: La fonction "f" n'est pas definie en 0. On peut aussi la définir directement par
def f(x):
 return x+50+100.0/x
On peut aussi définir des fonctions de plusieurs variables (comme le pgcd) ou des fonctions définies par des boucles ou des tests, comme la valeur absolue:
def abs(x):
 if x>0:
 return x
 else:
 return -x
=Tableau de valeurs=
Suite de l'énoncé du Bac 2007.
Par la suite, on demande de reproduire et compléter le tableau suivant, arrondi au centième d'euro:
Solution en Python.
Pour remplir le tableau, on peut
La méthode 3 peut se faire avec un itérateur de "Python":
for x in range(5,40,5):
 print("l\'image de "+str(x)+" par f est "+str(f(x)))
Trop de calculs tuent le calcul! Les images de 25 et 35 par exemple encombrent le tableau. Mais "Python" permet d'utiliser des itérateurs beaucoup plus souples, et adaptés au problème présent:
for x in [5,10,20,30,40]:
 print("l\'image de "+str(x)+" par f est "+str(f(x)))
La méthode 4 peut s'implémenter en "Python" avec:
print([f(x) for x in [5,10,20,30,40]])
C'est aussi simple que ça!
Arrondis.
L'énoncé demandait d'arrondir au centième d'euro près
for x in [5,10,20,30,40]:
 print("l\'image de "+str(x)+" par f est "+str(round(f(x),2)))
=Représentation graphique=
Pour représenter graphiquement une fonction comme "f" ci-dessus, on trace un polygone ayant suffisamment de sommets, et ceux-ci suffisamment proches les uns des autres, pour que la courbe ait l'air courbe. Plusieurs outils permettent de faire du graphisme avec "Python" mais le plus simple semble être le module "tortue". 
Avec Turtle.
Courbe.
Le plus simple est de faire
from turtle import *
setpos(5,f(5))
for x in range(5,40):
 setpos(x,f(x))
Difficile de rêver plus simple mais on peut voir trois problèmes:
Courbe améliorée.
Pour résoudre le deuxième problème, il suffit de lever le crayon avec "penup()" avant de commencer le tracé (et de le redescendre pour le tracé lui-même). Pour résoudre le troisième problème, il suffit de rendre la tortue invisible avec "hideturtle()". Pour les axes, on peut les tracer avec la tortue:
from turtle import *
penup()
setpos(5,f(5))
pendown()
for x in range(5,40):
 goto(x,f(x))
penup()
setpos(0,0)
pendown()
for x in range(0,50,10):
 left(90)
 forward(2)
 backward(4)
 forward(2)
 right(90)
 forward(10)
stamp()
backward(50)
left(90)
for y in range(0,100,10):
 left(90)
 forward(2)
 backward(4)
 forward(2)
 right(90)
 forward(10)
stamp()
Le graphique est correct mais un peu petit et mal cadré.
Avec TkInter.
TkInter permet de créer un affichage dans un "canevas", lui-même membre d'une fenêtre. Il y a donc plusieurs lignes de "Python" à écrire avant même de commencer à dessiner. Et l'axe des ordonnées est dirigé vers le bas, ce qui oblige à une transformation des ordonnées. En contrepartie, on a un outil de dessin tout-à-fait correct, et même relativement classique. Et, bien que ce ne soit pas utile dans le cas présent, on peut avoir des boutons, curseurs etc.
On doit donc commencer par
Ce qui peut donner ceci:
from tkinter import *
fenetre=Tk()
graphique=Canvas(fenetre,width=640,height=480)
graphique.pack()
graphique.create_line(20,460,520,460)
for n in range(0,50,10):
 graphique.create_line(20+10*n,460,20+10*n,455)
for n in range(0,50,5):
 graphique.create_line(20+10*n,460,20+10*n,457)
for n in range(0,50):
 graphique.create_line(20+10*n,460,20+10*n,459)
graphique.create_line(20,460,20,60)
for n in range(0,100,10):
 graphique.create_line(20,460-4*n,25,460-4*n)
for n in range(0,100,5):
 graphique.create_line(20,460-4*n,24,460-4*n)
for n in range(0,100):
 graphique.create_line(20,460-4*n,22,460-4*n)
for x in range(5,40):
 graphique.create_line(20+10*x-10,460-4*f(x-1),20+10*x,460-4*f(x))

Photographie/Fabricants/BenQ/BenQ S1420
Commentaires.
Disponible en Europe à partir de janvier 2011.

Photographie/Fabricants/Urban Factory
Sacoches de couleur pour appareils photo numériques.
Les sacoches de couleurs vives B-Color peuvent accueillir un boîtier reflex et au moins un objectif. Elles sont munies de séparations réglables fixées par un système de Velcro. Poids 700 g, dimensions 31 x 27 x 7 cm.

Photographie/Thèmes/La nature/Les papillons