Cours et exercices Python fonctions et tkinter - Explore

publicité
Les$fonctions$avec$Python$
!
Les structures while et for permettent aisément d'effectuer des tâches répétitives. Par contre,
pour effectuer une même série de tâches à des endroits différents du programme, il faudrait
copier ce code plusieurs fois.
Regardons l’exemple de la recherche du plus grand nombre d’une liste :
!
liste1 = input('Entrez une première liste de nombres :\n')
max1=liste1[0]
for element in liste1:
if element > max1:
max1 = element
print(max1)
liste2=input('Entrez la seconde liste de nombres :\n')
max2=liste2[0]
for element in liste2:
if element > max2:
max2 = element
print(max2)
La recherche du max d'une liste doit être entièrement réécrite à chaque fois.
On pourrait synthétiser un peu en utilisant les fonctions : une fonction permet précisément
d'effectuer une série d'action, à l'aide d'un ou plusieurs paramètres d'entrée, et "retourne" le
résultat à l'aide de l'instruction return.
La définition d'une fonction se fait à l'aide de l'instruction def, suivie du nom de la fonction, et
de la liste des paramètres entre parenthèses.
Dans ce cas là, notre fonction, qui va calculer le max d'une liste de nombres, aura comme
entrée une liste, que l'on peut nommer comme on veut, et aura pour sortie un nombre, le
maximum de la liste donnée. La fonction est définie avant son appel :
def monmax(maliste):
maximum = maliste[0]
for element in maliste:
if element > maximum:
maximum = element
return maximum
liste1 = input('Entrez une première liste de nombres :\n')
print(monmax(liste1))
liste2 = input('Entrez la seconde liste de nombres :\n')
print(monmax(liste2))
!
Exercice'1':!!Ecrire!la!fonction!vboite(x,y,z)!qui!prend!comme!arguments!les!
dimensions!d’une!boîte,!et!renvois!son!volume.!
!
Exercice'2':!Ecrire!une!fonction!facto(N)!qui!factorise!un!nombre!entier!en!facteurs!
premiers.!
!
Indication):!essayer!de!diviser!N!par!2,!puis!3,!puis!4…!jusqu’à!ce!que!le!reste!de!la!
division!(N!%!i)!soit!nul.!Alors!afficher!i,!puis!essayer!de!diviser!n!par!i.!
Il!vous!faut!utiliser!2'boucles'while!
!
Exemple!des!étapes!de!décomposition!:!
On!cherche!le!plus!petit!nombre!premier!qui!divise!le!nombre!N,!on!fait!la!division!de!
N!par!ce!nombre!premier!et!si!le!quotient!obtenu!est!différent!de!1,!on!recommence!
...!jusqu'à!obtenir!pour!quotient!1!
!
Exemple):!Décomposition!de!nombre!240!en!produit!de!facteurs!premiers:!
!
240!=!2×120!(2!est!le!plus!petit!nombre!premier!qui!divise!le!nombre!240)!
120!=!2×60!(2!est!le!plus!petit!nombre!premier!qui!divise!le!nombre!120)!
60!=!2×30!(2!est!le!plus!petit!nombre!premier!qui!divise!le!nombre!60)!
30!=!2×15!(2!est!le!plus!petit!nombre!premier!qui!divise!le!nombre!30)!
15!=!3×5!(3!est!le!plus!petit!nombre!premier!qui!divise!le!nombre!15)!
5!=!5×1!(5!est!un!nombre!premier,!donc!la!décomposition!est!terminée)!
alors!:!240!=!2x2×2×2×3×5!!
!
Exercice'3':!Tester!le!temps!nécessaire!pour!factoriser!des!nombres!de!plus!en!plus!
grands.!Comment!évolueVtVil!?!
Indication):)utiliser))
import time
start=time.time()
…
duree=time.time()-start
!
!
!
Fenêtres$en$Python$avec$tkinter$
!
Regarder!sur!le!site!du!cours!(exploreVphoto.com/msi)!le!lien!pour!utiliser!des!
fenêtres!comme!interface!graphique!dans!vos!programmes,!avec!tkinter!
!
!
Exercice'4':!faire!une!version!graphique!de!l’exercice!1!
!
Exercice'5':!faire!une!version!graphique!de!l’exercice!2!et!3.!
!
Téléchargement