Outils pour utilisateurs

Outils du site


initiation_a_python

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édentesRévision précédente
Prochaine révision
Révision précédente
initiation_a_python [2021/04/19 13:45] – [Fonctions prédéfinies] sergeinitiation_a_python [2021/08/21 13:41] (Version actuelle) – [PEP8] serge
Ligne 1: Ligne 1:
 ======Python: Initiation à python====== ======Python: Initiation à python======
 +
 +<WRAP center round box 80% centeralign>
 +**[[toutes_les_pages_sur_python|Toutes les pages sur Python]] sans les pages sur {{tagpage>kivy|Kivy}}**\\
 +</WRAP>
 +
  
 <WRAP center round box 80% centeralign> <WRAP center round box 80% centeralign>
Ligne 13: Ligne 18:
   * **[[https://docs.python.org/fr/3/|Documentation officielle]]** docs.python.org/fr   * **[[https://docs.python.org/fr/3/|Documentation officielle]]** docs.python.org/fr
  
-=====Matériel exigé===== +=====Les sources complètes de ces TD===== 
-  * Un Pc sous Linux +  * https://replit.com/join/xzqjcqvvrp-sergelabo 
-  * Une version de python >= 3.+  * **[[https://github.com/sergeLabo/formation_python|Formation Python Support pour atelier d'initiation python]]** sur GitHub.
-<code bash> +
-sudo apt install git terminator geany geany-plugins python3-pip +
-python3.7 -m pip install numpy opencv-python --user +
-</code> +
  
 +=====Installation=====
 +  * **[[python_installation]]**
 =====Quelques commandes===== =====Quelques commandes=====
-====Tester en console==== +====Tester dans un navigateur==== 
-===Un terminal quelconque=== +  * **[[https://www.python.org/shell/|L'interpréteur de python.org]] ** 
-Ouvrir un terminal: +{{ :media_14:python_org.png?600 |}}
-  toto@PC01:~$ python3 +
-  Python 3.5.3 (default, Jan 19 2017, 14:11:04)  +
-  [GCC 6.3.0 20170118on linux +
-  Type "help", "copyright", "credits" or "license" for more information. +
-  >>>  +
- +
-===Iddle=== +
-  sudo apt install iddle3 +
- +
-===bpython3=== +
-Avec la coloration syntaxique et l'historique des commandes +
-  sudo apt install bpython3+
  
 +===Un terminal quelconque===
 +Ouvrir un terminator:
 +{{ :media_14:terminator_python.png?600 |}}
 +  
 =====Premiers pas===== =====Premiers pas=====
 Ouvrir un terminator Ouvrir un terminator
Ligne 109: Ligne 103:
 =====Ouvrir Geany===== =====Ouvrir Geany=====
 ====Geany: un éditeur sympa multiplateforme==== ====Geany: un éditeur sympa multiplateforme====
-  * [[https://www.geany.org/|Le site de Geany]] Il est le mal-aimé, mais il permet de faire des choses simples ou moins simple très vite. +  * **[[python_installation#un_edi_multiplateforme]]**
- +
-  sudo apt install geany geany-plugins +
-   +
-Dans le dossier /votre_home/.config/, renommer le dossier "geany" en "geany_old" +
- +
-puis coller le dossier **{{:media_14:geany.zip|geany}}** +
 ====Premier pas avec geany==== ====Premier pas avec geany====
 Créer un nouveau fichier et l'enregistrer avec une extension.py Créer un nouveau fichier et l'enregistrer avec une extension.py
Ligne 146: Ligne 133:
 print(f"Je suis un f-string {t} ou encore {a+e} çà") print(f"Je suis un f-string {t} ou encore {a+e} çà")
 </code> </code>
 +
 +
 +=====Les différents types de variable=====
 +====Liste====
 +<code python>
 +l = [1, 2, 3, 4, 5]
 +# On compte à partir de zéro
 +l[1] = 2
 +</code>
 +  * [[http://apprendre-python.com/page-apprendre-listes-list-tableaux-tableaux-liste-array-python-cours-debutant|Les listes sur apprendre-python.com]]
 +  * [[https://www.dailymotion.com/video/xbk6sd?playlist=x22t3u|Pythonnerie n°4: les listes]]
 +====Dictionnaire====
 +<code python>
 +d = {1: "blender", 2: "gimp"}
 +# Les clés doivent être immuables
 +d[3] = "inkskape"
 +print(d)
 +</code>
 +
 +[[http://apprendre-python.com/page-apprendre-dictionnaire-python|Les dictionnaires sur apprendre-python.com]]
 +
 +====Tuples====
 +<code python>
 +t = ("127.0.0.1", 8888)
 +print(t)
 +t = "127.0.0.1", 8888
 +print(t)
 +</code>
 +
 +[[http://apprendre-python.com/page-apprendre-tuples-tuple-python|Les tuples sur apprendre-python.com]]
 +
 +====Set====
 +Liste toutes les valeurs existantes, il n'y a pas de doublons.
 +<code python>
 +my_set = {1, 2, 3, 4, 2, 1}
 +print(my_set)
 +</code>
 +
  
 =====Condition===== =====Condition=====
Ligne 175: Ligne 200:
 ==    !=    <    >    <=    >= ==    !=    <    >    <=    >=
 </code> </code>
- 
- 
- 
-=====Exercice Bissextile===== 
-Trouver si une année est bissextile: 
-<code text> 
-Si une année n'est pas multiple de 4, elle n'est pas bissextile 
-Si elle est multiple de 4, on regarde si multiple de 100 
-    Si oui, on regarde si multiple de 400 
-        Si oui, elle est bissextile 
-        Si non, elle n'est pas bissextile 
-    Si non, elle est bissextile 
-</code> 
- 
-<file python bissextile.py> 
-# Programme testant si une année est bissextile 
- 
-# Demande de l'année au clavier 
-annee =  input("Saisissez votre année ..." # attente de la saisie 
-etc ...... 
-</file> 
- 
-Deux réponses: **[[https://github.com/sergeLabo/formation_python/blob/master/bissextile.py|bissextile.py]]** 
- 
  
  
 =====Boucle===== =====Boucle=====
-Table du 4:+**Table du 4**
 <code python> <code python>
 print("1 x 4 =", 1*4) print("1 x 4 =", 1*4)
Ligne 210: Ligne 211:
 print("10 x 4 =", 10 * 4) print("10 x 4 =", 10 * 4)
 </code> </code>
-Les répétitions sont très sales !+**Les répétitions sont très sales !**
 <code python> <code python>
 i = 0 i = 0
Ligne 217: Ligne 218:
     i += 1     i += 1
 </code> </code>
-ou encore+**ou encore**
 <code python> <code python>
 for i in range(10): for i in range(10):
Ligne 226: Ligne 227:
     print(str(i) + " x 4 =", i * 4)     print(str(i) + " x 4 =", i * 4)
 </code> </code>
-=====Itération=====+**Itération**
 <code python> <code python>
 chaine = "Labomedia" chaine = "Labomedia"
Ligne 232: Ligne 233:
     print(lettre)     print(lettre)
 </code> </code>
 +
 =====Fonctions===== =====Fonctions=====
 ====Pourquoi faire des fonctions ou des classes ?==== ====Pourquoi faire des fonctions ou des classes ?====
Ligne 241: Ligne 243:
   * Permettre un travail en équipe en découpant un projet en bout de projet indépendant.   * Permettre un travail en équipe en découpant un projet en bout de projet indépendant.
  
-====Une fonction fait une chose. Une class fait une chose====+**Une fonction fait une chose. Une class fait une chose**
   * [[http://apprendre-python.com/page-apprendre-creer-fonction-en-python|Apprendre à créer des fonctions en python]]   * [[http://apprendre-python.com/page-apprendre-creer-fonction-en-python|Apprendre à créer des fonctions en python]]
  
Ligne 315: Ligne 317:
        dir(1))        dir(1))
 </code> </code>
-=====Module Package=====+=====Module Package Import=====
 ===def=== ===def===
 Une ou des fonctions dans un fichier est un module. Plusieurs modules font un package. Une ou des fonctions dans un fichier est un module. Plusieurs modules font un package.
Ligne 336: Ligne 338:
   python3 I_call.py   python3 I_call.py
  
-===time===+===Bibliothèque standard=== 
 +  * **[[https://docs.python.org/fr/3/py-modindex.html#cap-t|Index des modules Python]]**
  
 +===time===
 <code python> <code python>
 import time import time
Ligne 351: Ligne 355:
 print("Nous sommes le", datetime.date.today()) print("Nous sommes le", datetime.date.today())
 </code> </code>
- 
-===Bibliothèque standard=== 
-  * **[[https://docs.python.org/fr/3/py-modindex.html#cap-t|Index des modules Python]]** 
  
 =====Exception===== =====Exception=====
- 
 <code python> <code python>
 try: try:
Ligne 370: Ligne 370:
  
 **[[https://docs.python.org/3.5/library/exceptions.html|La doc officielle]]** **[[https://docs.python.org/3.5/library/exceptions.html|La doc officielle]]**
-=====Pass===== +===Pass=== 
-====Du sale====+**Du sale**
 <code python> <code python>
 try: try:
Ligne 379: Ligne 379:
     pass     pass
 </code> </code>
- +**Du propre** 
-====Du propre==== +Ne jamais passer les erreurs sous silence, ou les faire taire explicitement.
-Ne jamais passer les erreurs sous silence,\\  +
-ou les faire taire explicitement. +
-    +
 <code python> <code python>
 def exemple_propre(a): def exemple_propre(a):
Ligne 395: Ligne 392:
 </code> </code>
  
-====Pass pour du code en construction ====+**Pass pour du code en construction**
 <code python> <code python>
 def je_multiplie(): def je_multiplie():
Ligne 402: Ligne 399:
 def j_imprime(): def j_imprime():
     pass     pass
-</code> 
-=====Les différents types de variable===== 
-====Liste==== 
-<code python> 
-l = [1, 2, 3, 4, 5] 
-# On compte à partir de zéro 
-l[1] = 2 
-</code> 
-  * [[http://apprendre-python.com/page-apprendre-listes-list-tableaux-tableaux-liste-array-python-cours-debutant|Les listes sur apprendre-python.com]] 
-  * [[https://www.dailymotion.com/video/xbk6sd?playlist=x22t3u|Pythonnerie n°4: les listes]] 
-====Dictionnaire==== 
-<code python> 
-d = {1: "blender", 2: "gimp"} 
-# Les clés doivent être immuables 
-d[3] = "inkskape" 
-print(d) 
-</code> 
- 
-[[http://apprendre-python.com/page-apprendre-dictionnaire-python|Les dictionnaires sur apprendre-python.com]] 
- 
-====Tuples==== 
-<code python> 
-t = ("127.0.0.1", 8888) 
-print(t) 
-t = "127.0.0.1", 8888 
-print(t) 
-</code> 
- 
-[[http://apprendre-python.com/page-apprendre-tuples-tuple-python|Les tuples sur apprendre-python.com]] 
- 
-====Set==== 
-Je n'utilise jamais les set ! 
-<code python> 
-my_set = {1, 2, 3, 4, 2, 1} 
-print(my_set) 
 </code> </code>
  
Ligne 516: Ligne 478:
 print(b.kind) print(b.kind)
  
-class Contact: 
- 
-    def __init__(self, name): 
-        self.name = name 
-        self.phone = None 
-         
-    def set_phone(phone): 
-        self.phone = phone 
-         
-    def get_phone(self): 
-        return self.phone 
- 
-c = Contact("toto") 
-print(c.get_phone()) 
- 
-copains = ["Emmanuel", "Jean"] 
-mon_carnet = {} 
-for copain in copains: 
-    mon_carnet[copain] = Contact(copain) 
-     
-print("Le numéro de Emmanuel", copains["Emmanuel"].get_phone()) 
 </code> </code>
  
-[[https://sametmax.com/ce-quil-faut-savoir-en-python/|Le guide ultime et définitif sur la programmation orientée objet en Python à l’usage des débutants qui sont rassurés par les textes détaillés qui prennent le temps de tout expliquer. Voir les parties 1 à 8.]] 
- 
-http:___sametmax.com est devenu https://sametmax.com, le site est figé, les liens internes ne sont plus à jour ! [[https://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-1/|le bon lien pour la partie 1]] et ensuite débrouillez-vous! 
-=====Excercices===== 
-====Numéro 1==== 
-Nettoyer, créer une class avec method training, testing 
-  * https://github.com/sergeLabo/formation_python/blob/master/numpy_50_lignes.py 
- 
-====Numéro 2==== 
-Faire des commentaires sur ce fichier des sources de python: **[[https://github.com/numpy/numpy/blob/v1.20.0/numpy/polynomial/chebyshev.py|chebyshev.py]]** de numpy documenté ici [[https://numpy.org/doc/stable/reference/routines.polynomials.chebyshev.html|Chebyshev Series]] 
- 
-Un long commentaire pour [[https://github.com/numpy/numpy/blob/v1.20.0/numpy/polynomial/chebyshev.py#L1230|un tout petit retour]]  
  
 =====La philosophie Python===== =====La philosophie Python=====
Ligne 581: Ligne 510:
 ====PEP8===== ====PEP8=====
  
-  * [[http://sametmax.com/le-pep8-en-resume/|un tuto parmi des tas sur @]] chez sametmax.com+  * **[[https://realpython.com/python-pep8/|realpython.com pep8]]** les choses importantes, après avoir bien mémorisé **[[https://www.python.org/dev/peps/pep-0008/#whitespace-in-expressions-and-statements|les règles sur les espaces]]**. 
  
 **Avec python, nous sommes toujours entre adultes responsables.** **Avec python, nous sommes toujours entre adultes responsables.**
initiation_a_python.1618839924.txt.gz · Dernière modification : 2021/04/19 13:45 de serge