Un programme fonctionnel Python contient les blocs suivants dans l’ordre :
Remarques
Il est important de respecter l’indentation dans les boucles et dans la définition des fonctions locales.
Le nom des variables doit être explicite.
L’utilisateur doit être guidé de façon précise.
# 1101 programme fonctionnel.py
# ----------Importation des modules-----#
from tkinter import *
from math import *
import time
#--------Définition des fonctions----------#
def creer_fenetre(fenetre,taille,titre):
#construit la fenêtre
fenetre.geometry(taille)
fenetre.title(titre)
#fenetre.iconbitmap(icone)
return fenetre
def nettoie_canevas(donnees):
#nettoie le canevas
donnees[1].delete(ALL)
def dessine_canevas(donnees,a):
#dessine dans le canevas
nettoie_canevas(donnees)
ft="arial 40 bold"
f,c,l,h=donnees[0],donnees[1],donnees[2],donnees[3]
liste1=[15,15,30,50,l-50,h/2-80,l-10,20,35,h-30,35,h-50,l-70,h/2-30]
liste=[10,10,10,h/2,l-10,h-40,l-10,10,l-30,10,l-30,h-45,50,h/2,20,10]
if a==1:
c.create_rectangle(10,10,l-10,h-10,fill="khaki")
c.create_polygon(liste,fill="red",outline="gold",smooth=1)
t_menu=c.create_text(l/2,3*h/4,text="MENU",fill="red",tag="ZERO",font=ft)
c.tag_bind("ZERO", "<Button-1>",lambda utile:affiche_exemple(donnees))
if a==2:
c.create_rectangle(10,10,l-10,h-10,fill="pale green")
c.create_polygon(liste1,fill="blue",outline="gold",smooth=1)
t_menu=c.create_text(l/2,3*h/4,text="MENU",fill="red",tag="ZERO",font=ft)
c.tag_bind("ZERO", "<Button-1>",lambda inutile:affiche_exemple(donnees))
def quitter(donnees):
#fermeture de la fenêtre
donnees[0].destroy()
def affiche_exemple(donnes):
#Exemple de menu où il suffit de cliquer sur le texte
#donnees=[fenetre,can,largeur,hauteur]
f,c,l,h=donnees[0],donnees[1],donnees[2],donnees[3]
nettoie_canevas(donnees)
cl,ft,ta,tn="yellow","arial 40 bold","Affiche dessin 1!","Affiche dessin 2!"
me="MENU"
t_nettoie=c.create_text(l/2,2*h/4,text=tn,fill=cl,tag='DEUX' ,font=ft)
t_dessin=c.create_text(l/2,h/4,text=ta,fill="yellow",tag='UN' ,font=ft)
t_quitter=c.create_text(l/2,3*h/4,text="Quitter",fill="red",tag="TROIS",font=ft)
c.tag_bind("UN", "<Button-1>",lambda inutile:dessine_canevas(donnees,1))
c.tag_bind("DEUX", "<Button-1>",lambda inutile:dessine_canevas(donnees,2))
c.tag_bind("TROIS", "<Button-1>", lambda utile:quitter(donnees))
#----------Programme Principal-------------#
fenetre=Tk()
fenetre.title('Programme type')
largeur=int(fenetre.winfo_screenwidth()/4)
hauteur=int(fenetre.winfo_screenheight()/3)
taille=str(largeur)+"x"+str(hauteur)
creer_fenetre(fenetre,taille,"Programme fonctionnel")
can=Canvas(fenetre,width=largeur,height=hauteur,bg='light blue')
can.grid(row=0,column=0)
donnees=[fenetre,can,largeur,hauteur]
f,c,l,h=donnees[0],donnees[1],donnees[2],donnees[3]
ft="arial 40 bold"
t_menu=c.create_text(l/2,3*h/4,text="MENU",fill="red",tag="ZERO",font=ft)
c.tag_bind("ZERO", "<Button-1>",lambda utile :affiche_exemple(donnees))
fenetre.mainloop()
|
Déplacer
Pour déplacer un objet dans un canevas, il faut tenir compte du repère dans lequel évolue l’objet.
1202 deplacement balle.py
Voici l’exemple d’une balle de diamètre 30 qui se déplace du point \(\mathbf{(0,300)}\) au point \(\mathbf{(1000,300)}\).
La balle se déplace horizontalement ou verticalement et change de direction à chaque point.
Premier point : (0 ; 300 ), abscisse = 0 , ordonnée = 300. Deuxième point : (270 ;300), abscisse = 270 , ordonnée = 300. Troisième point : (270 ;300), abscisse =270 , ordonnée = 300 Quatrième point : ((530 ;170), abscisse =530 , ordonnée = 170 Cinquième point : (530 ;300), abscisse = 530 , ordonnée = 300. Sixième point : (1000 ; 300), abscisse = 0 , ordonnée = 300. |
#1405 deplacement balle.py
from tkinter import *
from math import*
from fenetre import*
def avance(balle,x,y,parametres,dx,dy,largeur,hauteur):
""fait déplacer la balle horizontalement ou verticalement""
avancer=0
rayon=parametres[6]
x1,y1=parametres[0],parametres[1]
x2,y2=parametres[2],parametres[3]
x,y=x+dx,y+dy
if x+rayon+dx > largeur:
avancer=1# arret à la largeur
if x<x1 :
y= y
if x==x1:# deuxième point vertical haut
dx,dy=0,-5
if y==y1:dx,dy=5,0
if x>x1 and x<x2:y=y1# horizontal vers troisième point
if x==x2:# quatrième point point vertical bas
dx,dy=0,5
if y==y2:dx,dy=5,0# cinquième point
if x>x2:y=y2# horizontal
can.coords(balle,x-rayon,y-rayon,x+rayon,y+rayon)
if avancer ==0:
fenetre.after(20,lambda:avance(balle,x,y,parametres,dx,dy,largeur,hauteur))
def lancer_balle(x,y,parametres,dx,dy,largeur,hauteur,couleur):
""création de la balle et lancement ""
rayon=parametres[6]
if x<500:
balle=can.create_oval(x,y,x+rayon,y+rayon,fill=couleur)
avance(balle,x,y,parametres,dx,dy,largeur,hauteur)
def creer_fenetre(fenetre,taille,titre,couleur):
#construit la fenêtre
fenetre.geometry(taille)
fenetre.title(titre)
fenetre.configure(bg=couleur)
fenetre.resizable(height=False,width=False)
#fenetre.iconbitmap(icone)
return fenetre
# -------------programme principal --------------------------#
titre="Déplacement Balle"
largeur,hauteur=1000,500
taille=str(largeur)+'x'+str(hauteur+80)
couleur='light blue'
#------------------------------------------------------------#
fenetre = Tk()
fenetre=creer_fenetre(fenetre,taille,titre,couleur)
couleur='red'
x,y,x1,y1,x2,y2,dx,dy,rayon=0,300,270,170,530,300,5,0,30
parametres=[x1,y1,x2,y2,dx,dy,rayon]
can=Canvas(fenetre,width=largeur,height=hauteur,bg='ivory')
can.grid(row=0,column=0,columnspan=2)
mur=can.create_rectangle(300,200,500,330,width=5,fill='green',outline='black')
sol=can.create_rectangle(0,330,largeur,330,fill='green',width=5)
b=Button(fenetre,text='Balle rouge',font='verdana 12 bold',fg='red')
b.config(command=lambda:lancer_balle(x,y,parametres,dx,dy,largeur,hauteur,couleur) )
b.grid(row=1,column=0)
fenetre.mainloop()
|
animation pacman.py
from random import *
from tkinter import *
from math import *
#import os #bibliothèque pour le travail sur les dossier
#from PIL.Image import *
#from PIL import Image
def remplir(tableau,liste,ligne,colonne):
#remplissage du tableau par une liste
for ln in range(0,ligne):
for cn in range(0,colonne):
tableau[ln][cn]=liste[colonne*ln+cn]
return tableau
def melange(liste,numimage,nombre):
" remplissage aléatoire d'une liste de larg0 nombres entiers"
for i in range(0,numimage):liste[i]=2
k,compt=0,0
while k<numimage-1:
remelange=False
numero=randrange(0,numimage)
for j in range(0,numimage):
if numero==liste[j] :remelange=True
if remelange==False:
liste[k]=numero
if numero%nombre==0:
compt=compt+1
k=k+1
return liste,compt
def listetableau(liste,tableau,ligne,colonne):
"fabrication d'une liste avec un tableau lignes colonnes"
#remplissage d'une liste
for ln in range(0,ligne):
for cn in range(0,colonne):
liste[colonne*ln+cn]=tableau[ln][cn]
return liste
def creerfenetre(titre ,taille):
"modifie une fenêtre"
fenetre.title(titre)
fenetre.geometry(taille)
return fenetre
def Tableau(ligne,colonne):
"fabrication d'un tableau lignes colonnes"
#fabrication du tableau
tableau=ligne*[0]
for ln in range(ligne):tableau[ln]=colonne*[0]
return tableau
def creeritem(tim):
"creation d'un item "
p1=PhotoImage(file=tim+'.png')
return p1
def creeritems():
items=larg2*['']
for i in range(larg2):
tim='items/i'+str(i+1)
items[i]=creeritem(tim)
return items
def creerimage(tim):
"creation d'un item "
p1=PhotoImage(file='imgpac/'+tim+'.png')
return p1
def creerimages(numimage):
images=numimage*['']
for i in range(numimage):
tim=str(i+1)
images[i]=creerimage(tim)
return images
def avancer(b1,b2,fenetre,can,images,tableau,tableau2,listetemp,ligne,colonne,b4,larg,compteur,xc,yc):
global tableau3
x5,y5=cherche5(tableau3,ligne,colonne)
cn,ln=x5+b1,y5+b2
largeur,hauteur=colonne*larg,ligne*larg
if cn<0 or cn==colonne:
b1=-b1
ln=y5+b1
if ln==ligne or ln<0:
b2=-b2
cn=x5+b2
if (ln>=0 and ln<ligne) and (cn>=0 and cn<colonne):
if tableau3[ln][cn]%4!=0:
can.create_rectangle((cn)*larg,(ln)*larg,(cn+1)*larg,(ln+1)*larg,fill='light blue',outline='light blue')
can.create_oval((cn)*larg+3,(ln)*larg+3,(cn+1)*larg-3,(ln+1)*larg-3,fill='red')
can.create_rectangle(x5*larg,y5*larg,(x5+1)*larg,(y5+1)*larg,fill='light blue',outline='light blue')
x1,y1=cn,ln
for i in range(20):
xt,yt=xc[i],yc[i]
xc[i],yc[i]=x1,y1
x1,y1=xt,yt
if tableau[ln][cn]%7==0:
tableau3[ln][cn]=1
tableau2[ln][cn]=1
listetemp=listetableau(listetemp,tableau2,ligne,colonne)
for i in range(nombre):
if listetemp[i]==1:
compteur=int(compteur+1)
b4.configure(text=str(compteur))
temp=tableau[ln][cn]
tableau3[ln][cn]=4
tableau3[y5][x5]=temp
if compteur>0:
if compteur<10:
nt=compteur
fin=nt+1
else:
nt=9
fin=10
if compteur==1:
can.create_rectangle(xc[1]*larg,yc[1]*larg,(xc[1]+1)*larg,(yc[1]+1)*larg,fill='gold',outline='light green')
can.create_text(xc[1]*larg+larg/2,yc[1]*larg+larg/2,text="1",fill='red',font="verdana 8 bold")
can.create_rectangle(xc[2]*larg,yc[2]*larg,(xc[2]+1)*larg,(yc[2]+1)*larg,fill='light blue',outline='light blue')
if compteur>1:
for i in range(1,nt+2):
x1,y1=xc[i],yc[i]
if i<nt:
can.create_rectangle(x1*larg,y1*larg,(x1+1)*larg,(y1+1)*larg,fill='light green',outline='light green')
can.create_text(x1*larg+larg/2,y1*larg+larg/2,text=str(i),fill='red',font="verdana 8 bold")
if i==nt:
can.create_rectangle(x1*larg,y1*larg,(x1+1)*larg,(y1+1)*larg,fill='gold',outline='light green')
can.create_text(x1*larg+larg/2,y1*larg+larg/2,text=str(compteur),fill='red',font="verdana 8 bold")
x1,y1=xc[fin],yc[fin]
tableau3[y1][x1]=1
can.create_rectangle((x1)*larg,(y1)*larg,(x1+1)*larg,(y1+1)*larg,fill='light blue',outline='light blue')
tableau3[ln][cn]=4
tableau=tableau3
def touche(event,fenetre,can,images,tableau,tableau1,listetemp,ligne,colonne,b4,larg,compteur,xc,yc):
code=event.keycode
if code==38: # Up
avancer(0,-1,fenetre,can,images,tableau,tableau1,listetemp,ligne,colonne,b4,larg,compteur,xc,yc)
elif code==40: # Down
avancer(0,1,fenetre,can,images,tableau,tableau1,listetemp,ligne,colonne,b4,larg,compteur,xc,yc)
elif code==37: #Left
avancer(-1,0,fenetre,can,images,tableau,tableau1,listetemp,ligne,colonne,b4,larg,compteur,xc,yc)
elif code==39: #Right
avancer(1,0,fenetre,can,images,tableau,tableau1,listetemp,ligne,colonne,b4,larg,compteur,xc,yc)
def deplacer(fenetre,images,tableau,tableau1,listetemp,liste,ligne,colonne,b5,larg):
global tableau3
tableau=tableau3
x5,y5=cherche6(tableau,ligne,colonne)
compteur1=0
nombre=ligne*colonne
lr=0
if x5==0:
cr=randrange(0,2)
elif x5==colonne-1:
cr=randrange(0,2)-1
elif x5>0 and x5< colonne-1:
cr=randrange(0,3)-1
if abs(cr)==0:
if y5==0:
lr=randrange(0,2)
elif y5>0 and y5< ligne-1:
lr=randrange(0,3)-1
elif y5==ligne-1:
lr=-1*randrange(0,2)-1
ln,cn=y5+lr,x5+cr
if tableau[ln][cn]%7==0 and tableau[ln][cn]%4!=0 :
if tableau1[ln][cn]==0:
tableau1[ln][cn]=1
listetemp=listetableau(listetemp,tableau1,ligne,colonne)
for i in range(nombre):
if listetemp[i]==1:
compteur1=int(compteur1+1)
b5.configure(text=str(compteur1))
regarder(fenetre,images,ln,cn,x5,y5,tableau,larg,compteur1)
if liste[0]==0:
can.create_rectangle(cn*larg,ln*larg,cn*larg+larg,ln*larg+larg,fill="light blue",outline="light blue")
if liste[0]==1:
fenetre.after(200,lambda:deplacer(fenetre,images,tableau,tableau1,listetemp,liste,ligne,colonne,b5,larg))
def regarder(fenetre,images,ln,cn,x5,y5,tableau,larg,compteur1):
global tableau3
if tableau[ln][cn]%4!=0 :
if x5>=cn:pacmang(can,ln,cn,larg)
else:pacman(can,ln,cn,larg)
if x5!=cn or y5!=ln:
can.create_rectangle(x5*larg,y5*larg,x5*larg+larg,y5*larg+larg,fill="light blue",outline="light blue")
tableau[ln][cn]=19
tableau[y5][x5]=1
tableau[ln][cn]=19
tableau3=tableau
def pacman(can,ln,cn,larg):
can.create_oval(cn*larg+3,ln*larg+3,cn*larg+larg-3,ln*larg+larg-3,fill='light blue',outline='light blue')
can.create_arc(cn*larg+3,ln*larg+3,cn*larg+larg-3,ln*larg+larg-3,fill="yellow",outline="black",start=25,extent=305)
can.create_oval(larg*cn+larg/2,larg*ln+larg/3,larg*cn+larg/2+3,larg*ln+larg/3-3,fill="black",outline="black")
def pacmang(can,ln,cn,larg):
can.create_oval(cn*larg+3,ln*larg+3,cn*larg+larg-3,ln*larg+larg-3,fill='light blue',outline='light blue')
can.create_arc(cn*larg+3,ln*larg+3,cn*larg+larg-3,ln*larg+larg-3,fill="yellow",outline="black",start=205,extent=305)
can.create_oval(larg*cn+larg/2,larg*ln+larg/3,larg*cn+larg/2+3,larg*ln+larg/3-3,fill="black",outline="black")
def creerlabel(fenetre,can,images,tim):
"creation d'un item "
p1=Label(can,image=images[tim])
return p1
def creerlabels(fenetre,can,numimage,images):
labels=numimage*['']
for i in range(numimage):
tim=i
labels[i]=creerlabel(fenetre,can,images,tim)
return labels
def cherche5(tableau,ligne,colonne):
"recherche l'emplacement de la case qui bouge"
for ln in range(0,ligne):
for cn in range(0,colonne):
if tableau[ln][cn]==4:
x,y=cn,ln
return x,y
def cherche6(tableau,ligne,colonne):
"recherche l'emplacement de la case qui bouge"
for ln in range(0,ligne):
for cn in range(0,colonne):
if tableau[ln][cn]==19:
x,y=cn,ln
return x,y
def nettoie_fenetre(fenetre,can,liste_widgets):
can.delete(ALL)
for w in liste_widgets:w.destroy()
return fenetre,can
def jouer(fenetre,can,ligne,colonne,listen,images,compteur,liste,nombre,larg,liste_widgets):
global tableau3
num=0
listetemp=nombre*[0]
fenetre,can=nettoie_fenetre(fenetre,can,liste_widgets)
can.grid(row=0,column=0,rowspan=ligne,columnspan=colonne)
listen,compt=melange(listen,nombre,6)
tableau1=Tableau(ligne,colonne)
tableau1=remplir(tableau1,listetemp,ligne,colonne)
tableau2=Tableau(ligne,colonne)
tableau2=remplir(tableau2,listetemp,ligne,colonne)
tableau3=Tableau(ligne,colonne)
tableau3=remplir(tableau3,listen,ligne,colonne)
tableau=Tableau(ligne,colonne)
tableau=remplir(tableau,listen,ligne,colonne)
b2=Label(fenetre,text="PACMAN se déplace\n tout seul\net mange les oeufs",bg="light blue",font="verdana 10 bold")
b2.grid(row=1,column=colonne+1,columnspan=2)
liste_widgets.append(b2)
b3=Label(fenetre,text="oeufs mangés =",bg='light blue',font="verdana 10 bold")
b3.grid(row=2,column=colonne+1)
liste_widgets.append(b3)
b4=Label(fenetre,text="0",bg='light blue',font="verdana 10 bold")
liste_widgets.append(b4)
b4.grid(row=2,column=colonne+2)
b36=Label(fenetre,text="oeufs mangés\npacman =",bg='light blue',font="verdana 10 bold")
b36.grid(row=4,column=colonne+1)
liste_widgets.append(b3)
b5=Label(fenetre,text="0",bg='light blue',font="verdana 10 bold")
liste_widgets.append(b4)
b5.grid(row=4,column=colonne+2)
for ln in range(0,ligne):
for cn in range(0,colonne):
if tableau[ln][cn]%4==0:
item=can.create_rectangle(cn*larg+1,ln*larg+1,(cn+1)*larg-1,(ln+1)*larg-1,fill='blue')
if tableau[ln][cn]%7==0 and tableau[ln][cn]%4!=0:
num=num+1
item=can.create_oval(cn*larg+7,ln*larg+3,(cn+1)*larg-7,(ln+1)*larg-3,fill='light green')
if tableau[ln][cn]==4:
can.create_rectangle(cn*larg+1,ln*larg+1,(cn+1)*larg-1,(ln+1)*larg-1,fill='light blue',outline='light blue')
can.create_oval(cn*larg+3,ln*larg+3,cn*larg+larg-3,ln*larg+larg-3,width=2,fill='red',outline='red')
if tableau[ln][cn]==19:
pacmang(can,ln,cn,larg)
liste[0]=1
xc=num*[0]
yc=num*[0]
x5,y5=cherche6(tableau,ligne,colonne)
cn,ln=x5,y5
compteur=0
yc[0],xc[0]=y5,x5
fenetre.bind_all('<Key>',
lambda event:touche(event,fenetre,can,images,tableau,tableau2,listetemp,ligne,colonne,b4,larg,compteur,xc,yc))
deplacer(fenetre,images,tableau,tableau1,listetemp,liste,ligne,colonne,b5,larg)
fenetre=Tk()
liste_widgets=[]
colonne,ligne=20,12
larg=50
nombre=ligne*colonne
largeur,hauteur=int(colonne*larg),int(ligne*larg)
listen=nombre*[0]
vert=[0,0,0]
listetemp=nombre*[0]
fenetre=creerfenetre("Jeu snake",str(largeur+230)+"x"+str(hauteur))
fenetre.configure(bg='light blue')
compteur=0
can=Canvas(fenetre,width=largeur,height=hauteur,bg='light blue')
can.grid(row=0,column=0,rowspan=ligne,columnspan=colonne)
images=0
b1=Button(fenetre,text="JOUER",bg="light green",font="verdana 20 bold",
command=lambda:jouer(fenetre,can,ligne,colonne,listen,images,compteur,vert,nombre,larg,liste_widgets))
b1.grid( row=0,column=colonne+1,columnspan=2)
liste_widgets.append(b1)
for ln in range(0,ligne):
for cn in range(0,colonne):
pacman(can,ln,cn,larg)
item1=can.create_text(largeur/2,hauteur/2,text=" PACMAN ",font="verdana 60 bold",fill="red")
item1=can.create_text(largeur/2,hauteur/2+100,text=" se déplace ",font="verdana 20 bold",fill="red")
fenetre.mainloop()
|
Les modules sont des fichiers qui regroupent des ensembles de fonctions
Ce module sert à manipuler les fichiers et les répertoires, il permet de se déplacer dans le répertoire où se situe le fichier python, il permet de créer des répertoires de les supprimer et d’exécuter des commandes.
Fonction |
Valeur de retour |
---|---|
getcwd()
|
fournit le répertoire courant |
chdir(repertoire)
|
se place dans le répertoire repertoire |
rename(avant ,apres)
|
renomme avant en apres. |
remove(dossier), rmdir(dossier)
|
supprime dossier |
mkdir(dossier)
|
crée le répertoire dossier. |
listdir(dossier)
|
liste des fichiers du repertoire /dossier |
system(commande)
|
exécute la commande commande dans l’invite de commande. |
Programme |
Résultat |
---|---|
# 0801 os.py
from os import*
#nom du repertoire où l'on se situe
repertoire=getcwd()
print(repertoire)
#construction de la liste des fichiers du répertoire
liste_fichiers =listdir(repertoire)
for i in range(len(liste_fichiers)):
print(liste_fichiers[i])
repertoire1=input(" Donner le répertoire à explorer : ")
chdir(repertoire+'/'+repertoire1)
#On se place dans un nouveau repertoire
#et on refait une nouvelle liste de fichiers
liste_fichiers =listdir(repertoire)
print('type',type(liste_fichiers)
for i in range(len(liste_fichiers)):
print(liste_fichiers[i])
dossier=getcwd()
print(" On est dans le dossier :"+dossier)
#utilisation de system
print(" Ouverture de l'invite de commandes ")
system('cmd |type *.txt')
# création d'un nouveau dossier
print(listdir(dossier))
print("Création d'un nouveau dossier : ")
mkdir('nouveau dossier')
print(listdir(dossier))
|
module math
Le module math, par exemple, contient les définitions de nombreuses fonctions mathématiques telles que sinus, cosinus, tangente, racine carrée, etc. Pour pouvoir utiliser ces fonctions, il vous suffit d’incorporer la ligne suivante au début de votre script :
from math import Cette ligne indique à Python qu’il lui faut inclure dans le programme courant toutes les fonctions (c’est la signification du symbole « joker » * ) du module math, lequel contient une bibliothèque de fonctions mathématiques préprogrammées.
Voici le début du module math : (à taper dans le shell)
>>> help("math")
Description module math
Fonction |
Valeur de retour |
---|---|
acos(x)
|
en radians |
acosh(x)
|
Argument cosinus hyperbolique (Arg ch) |
asin(x)
|
en radians |
asinh(x)
|
Argument sinus hyperbolique (Arg sh) |
atan(x)
|
en radians |
atan2(y, x)
|
Retourne la tangente d’arc (mesuré en radians) de y / x, à la différence atan (y / x), les signes de x et y sont pris en compte. |
atanh(x)
|
Argument tangente hyperbolique (Arg th) |
ceil(x)
|
si alors |
cos(x)
|
x en radians |
cosh(x)
|
Cosinus hyperbolique |
degrees(x)
|
Convertit les radians en degrés |
exp(x)
|
Exponentielle |
abs(x)
|
Valeur absolue |
factorial(x)
|
Factorielle |
floor(x)
|
Partie entière de x |
hypot(x, y)
|
|
log(x[, base])
|
Retour le logarithme de x à la base donnée. Si la base est non spécifiée, retourne le logarithme naturel (base e) de x. |
log10(x)
|
Logarithme en base 10 de x |
modf(x)
|
si |
pow(x, y)
|
x exposant y |
radians(x)
|
Convertit x de degrés en radians. |
sin(x)
|
x en radians |
sinh(x)
|
Sinus hyperbolique |
sqrt(x)
|
Racine carré |
tan(x)
|
x en radians |
tanh (x)
|
Tangente hyperbolique |
les constantes: e = 2.718281828459045; pi = 3.141592653589793
CSV : Comma Separated Values. Note Ce module permet de lire un fichier de tableur avec csv.reader ou de l’écrire avec csv.writer.
On utilisera que la classe csv.reader .
Car pour créer des fichiers CSV, les tableurs sont plus efficaces. Ces fichiers peuvent être fabriqués par des tableurs il suffit de choisir la bonne option « en enregistrant sous » ils produisent des lignes de données séparées soit par des virgules, des points virgules soit par des doubles quottes. Ils sont utilisés pour stocker des données.
Et pour les projets de l’enseignement facultatif : Informatique et Création Numérique : pour étudier l’évolution d’un territoire, en économie, étudier la répartition d’un indicateur économique.
L’utilisation de ces fichiers permet de créer des cartes, des figures et de traiter toutes sortes de données.
Les données sont extraites en deux sortes de format : les listes ou les dictionnaires. Les exemples suivants illustrent la différence de ces types de données.