Outils pour utilisateurs

Outils du site


tp:python:python01

Warning: Trying to access array offset on false in /home/signac/doku/inc/html.php on line 1164

Warning: Trying to access array offset on false in /home/signac/doku/inc/html.php on line 1168

Warning: Trying to access array offset on false in /home/signac/doku/inc/html.php on line 1171

Warning: Trying to access array offset on false in /home/signac/doku/inc/html.php on line 1172

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tp:python:python01 [2014/11/17 15:36]
lsignac [Tests : Triangle]
tp:python:python01 [2021/05/04 15:12] (Version actuelle)
Ligne 1: Ligne 1:
-====== Travaux pratiques Python ======+====== 📓 Travaux pratiques Python (01) ====== 
 + 
 +Réalisez les exercices suivants. La plupart du temps, un programme de départ vous est proposé. Ce programme comporte des tests fonctionnels (limités à leur plus simple expression) dans le bloc : ''%%if __name__ == '__main__'...%%'' Vous ne **devez** pas modifier ces tests. Ils vous permettent de savoir, dans la plupart des cas, si vous avez fait une erreur. 
 + 
 +<WRAP tip>  
 +Ce n'est pas parce que votre programme passe tous les tests qu'il est juste. Par contre, s'il ne passe 
 +pas certains tests, il y a de grandes chances pour qu'il soit faux... 
 +</WRAP>
  
-Réalisez les exercices suivants. Dans chaque cas, un programme de départ vous est proposé. Ce programme comporte des tests fonctionnels (limités à leur plus simple expression) dans le bloc : ''if __name__ == '__main__'...'' Vous ne **devez** pas modifier ces tests. 
 ===== Listes : Produit Scalaire ===== ===== Listes : Produit Scalaire =====
 On peut utiliser une séquence pour représenter un vecteur. On peut utiliser une séquence pour représenter un vecteur.
Ligne 7: Ligne 13:
 Votre programme devra passer tous les test : Votre programme devra passer tous les test :
  
-<file python VOTRELOGIN_scalaire.py>+<file python votrelogin_scalaire.py>
 def scalaire(u, v): def scalaire(u, v):
     pass     pass
Ligne 21: Ligne 27:
 ===== Tests : Triangle ===== ===== Tests : Triangle =====
 Écrivez une fonction qui prend en paramètres 3 nombres et indique s'il est possible de construire Écrivez une fonction qui prend en paramètres 3 nombres et indique s'il est possible de construire
-un triangle ayant ces 3 valeurs pour longueurs de côtés.+un triangle (non réduit à un segment) ayant ces 3 valeurs pour longueurs de côtés.
  
-<file python VOTRELOGIN_triangle.py>+<file python votrelogin_triangle.py>
 def triangle(a, b, c): def triangle(a, b, c):
     pass     pass
 +    
          
 if __name__ == '__main__': if __name__ == '__main__':
-    assert triangle(1, 2, 5) == True, "Test 1" +    assert triangle(2, 3, 4) == True, "Test 1" 
-    assert triangle(5, 1, 2) == True, "Test 2" +    assert triangle(4, 2, 3) == True, "Test 2" 
-    assert triangle(251) == True, "Test 3" +    assert triangle(342) == True, "Test 3" 
-    assert triangle(2, 34) == False, "Test 4" +    assert triangle(2, 51) == False, "Test 4" 
-    assert triangle(2, 5, -1) == False, "Test 5"+    assert triangle(2, 3, -1) == False, "Test 5
 +    assert triangle(2, 3, 5) == False, "Test 6"
     print("Tests OK")     print("Tests OK")
 +
 </file> </file>
  
 ===== Boucle : Arithmancie ===== ===== Boucle : Arithmancie =====
-Écrivez une fonction qui associe un nombre à un mot. Pour trouver ce nombre on ajoutera la valeur de chaque lettre du mot. La valeur du A sera 0, celle du B : 2.... et celle du Z : 26. +Écrivez une fonction qui associe un nombre à un mot. Pour trouver ce nombre on ajoutera la valeur de chaque lettre du mot. La valeur du A sera 1, celle du B : 2.... et celle du Z : 26. 
-Attention, votre fonction devra associer les valeurs 1, 2... que les lettres soient en majuscule ou en minuscule. Les autres caractères seront tout simplement ignorés.+Attention, votre fonction devra associer les valeurs 1, 2... que les lettres soient en majuscule ou en minuscule. Les autres caractères seront tout simplement ignorés, ainsi que les caractères accentués.
  
-<file python VOTRELOGIN_arithmancie.py>+<file python votrelogin_arithmancie.py>
 def arithmancie(chaine): def arithmancie(chaine):
     pass     pass
Ligne 46: Ligne 55:
 if __name__=='__main__': if __name__=='__main__':
     assert arithmancie("A") == 1     assert arithmancie("A") == 1
-    assert arithmancie("BABAR") == 1 +    assert arithmancie("BABAR") == 24 
-    assert arithmancie("BAbar") == 1 +    assert arithmancie("BAbar") == 24 
-    assert arithmancie("A") == 1 +    assert arithmancie("Lucifer") == 74 
-    assert arithmancie("Lucifer") == XX +    assert arithmancie("Babar et ses z'AMIS") == 160 
-    assert arithmancie("Babar et ses z'AMIS") == XX+    assert arithmancie("Ça, c'est assez pénible") == 176 
 +    print("Tests OK")
 </file> </file>
 +
 +===== Listes imbriqués : Centre de gravité =====
 +Écrivez une fonction qui indique, étant donnée une liste de points de l'espace, où est placé 
 +le centre de gravité de ces points, en supposant qu'ils ont tous la même masse.
 +Chaque point de l'espace est une séquence de 3 coordonnées. En conséquence, une liste de points de 
 +l'espace est une séquence de séquences.
 +
 +    
 +<file python votrelogin_centre.py>
 +def centre(l):
 +    pass
 +
 +
 +if __name__ == '__main__':
 +    l =  ((1, 1, 1),)
 +    assert tuple(centre(l)) == (1, 1, 1)
 +    l =  ((0, 0, 0), (2, 2, 2))
 +    assert tuple(centre(l)) == (1, 1, 1)
 +    l =  ((1, 2, 3), (0, 0, 1), (2, -5, 2))
 +    assert tuple(centre(l)) == (1, -1, 2)
 +    l =  ((-1, 2, 1), (-5, -2, 1), (-3, -5, 2), (-1,5,0))
 +    assert tuple(centre(l)) == (-2.5, 0, 1)
 +    print("Tests OK")
 +  
 +</file>
 +
 +===== Figure fractale : courbe de l'étoile =====
 +
 +Début de la fractale :
 + Au centre, les 3 angles mesurent 120°.
 +
 +{{ :tp:python:courbe_etoile_3.png?nolink&200 |}}
 +
 +puis (les segments les plus courts ont une longueur égale à la moitié des 
 +segments les plus longs)
 +
 +{{ :tp:python:courbe_etoile_2.png?nolink&200 |}}
 +
 +Puis : 
 +
 +{{ :tp:python:courbe_etoile_4.png?nolink&200 |}}
 +
 +Fractale finale :
 +{{ :tp:python:courbe_etoile_1.png?nolink&500 |}}
 +
 +<WRAP important>
 +Afin de pouvoir tester facilement votre code, vous devez régler la boucles des événements du Shell : TK (au lieu de PySide).<wrap tip>Si vous ne savez pas faire... demandez</wrap>.
 +</WRAP>
 +
 +<file python votrelogin_etoile.py>
 +import turtle as tur
 +
 +#def ....
 +
 +# Programme principal :
 +tur.reset()
 +tur.tracer(1,0)
 +</file>
 +
  
 ===== Récursivité : Rendre la monnaie ===== ===== Récursivité : Rendre la monnaie =====
 Écrivez une fonction qui dénombre le nombre de façons différentes de  Écrivez une fonction qui dénombre le nombre de façons différentes de 
-construire une certaine somme S en utilisant uniquement des pièces de 1,2, 5 et 10.+construire une certaine somme S en utilisant uniquement certaines pièces, dont les valeurs sont indiquées 
 +en paramètre de la fonction (ça pourrait être par exemple des pièces de 1,2, 5 et 10).
  
 <WRAP tip> <WRAP tip>
-Vous pouvez diviser le nmbre de façons de construire la somme S avec les pièces [a, b, ..., n] en deux (selon que vous utilisez ou non la valeur a) :+Vous pouvez diviser le nombre de façons de construire la somme S avec les pièces [a, b, ..., n] en deux (selon que vous utilisez ou non la valeur a) :
   * les façons de construire la somme S - a avec les pièces [a, b, ..., n]   * les façons de construire la somme S - a avec les pièces [a, b, ..., n]
   * les façons de construire la somme S avec les pièces [b, ..., n]   * les façons de construire la somme S avec les pièces [b, ..., n]
 +
 </WRAP> </WRAP>
  
-<file python VOTRELOGIN_monnaie.py>+<file python votrelogin_monnaie.py> 
 + 
 +# Votre code ici  
 +# ...
  
 if __name__ == '__main__': if __name__ == '__main__':
-    ...+    assert monnaie(2, [1, 2]) == 2 
 +    assert monnaie(5, [1, 2, 5]) == 4 
 +    assert monnaie(10, [1, 2, 5]) == 10 
 +    assert monnaie(100, [1, 2, 5, 10]) == 2156 
 +    assert monnaie(42, [1, 3, 7]) == 54 
 +    print("Tests OK") 
 +    
 </file> </file>
  
- 
-     
-     
-   
  
    
tp/python/python01.1416238568.txt.gz · Dernière modification: 2014/11/17 15:36 de lsignac