├── exercice-10_les-sets ├── dossiers_exercice │ ├── rendus_01 │ │ ├── 0001.jpg │ │ ├── 0002.jpg │ │ ├── 0003.jpg │ │ ├── 0004.jpg │ │ ├── 0006.jpg │ │ ├── 0007.jpg │ │ ├── 0008.jpg │ │ ├── 0010.jpg │ │ ├── 0011.jpg │ │ ├── 0012.jpg │ │ ├── 0013.jpg │ │ ├── 0015.jpg │ │ ├── 0017.jpg │ │ ├── 0018.jpg │ │ ├── 0019.jpg │ │ ├── 0020.jpg │ │ ├── 0022.jpg │ │ ├── 0023.jpg │ │ ├── 0025.jpg │ │ ├── 0026.jpg │ │ ├── 0027.jpg │ │ ├── 0029.jpg │ │ ├── 0030.jpg │ │ ├── 0031.jpg │ │ ├── 0033.jpg │ │ ├── 0034.jpg │ │ ├── 0036.jpg │ │ ├── 0037.jpg │ │ ├── 0039.jpg │ │ ├── 0040.jpg │ │ ├── 0042.jpg │ │ ├── 0044.jpg │ │ ├── 0045.jpg │ │ ├── 0046.jpg │ │ ├── 0048.jpg │ │ ├── 0049.jpg │ │ ├── 0051.jpg │ │ ├── 0052.jpg │ │ ├── 0054.jpg │ │ ├── 0055.jpg │ │ ├── 0056.jpg │ │ ├── 0057.jpg │ │ ├── 0058.jpg │ │ ├── 0060.jpg │ │ ├── 0061.jpg │ │ ├── 0062.jpg │ │ ├── 0064.jpg │ │ ├── 0065.jpg │ │ ├── 0066.jpg │ │ ├── 0067.jpg │ │ ├── 0068.jpg │ │ ├── 0069.jpg │ │ ├── 0070.jpg │ │ ├── 0071.jpg │ │ ├── 0072.jpg │ │ ├── 0074.jpg │ │ ├── 0076.jpg │ │ ├── 0077.jpg │ │ ├── 0079.jpg │ │ ├── 0080.jpg │ │ ├── 0081.jpg │ │ ├── 0083.jpg │ │ ├── 0084.jpg │ │ ├── 0085.jpg │ │ ├── 0087.jpg │ │ ├── 0088.jpg │ │ ├── 0089.jpg │ │ ├── 0090.jpg │ │ ├── 0091.jpg │ │ ├── 0092.jpg │ │ ├── 0093.jpg │ │ ├── 0094.jpg │ │ ├── 0095.jpg │ │ ├── 0096.jpg │ │ ├── 0097.jpg │ │ ├── 0098.jpg │ │ ├── 0099.jpg │ │ └── 0100.jpg │ ├── rendus_02 │ │ ├── 0001.jpg │ │ ├── 0002.jpg │ │ ├── 0004.jpg │ │ ├── 0007.jpg │ │ ├── 0010.jpg │ │ ├── 0018.jpg │ │ ├── 0022.jpg │ │ ├── 0023.jpg │ │ ├── 0026.jpg │ │ ├── 0031.jpg │ │ ├── 0034.jpg │ │ ├── 0052.jpg │ │ ├── 0054.jpg │ │ ├── 0055.jpg │ │ ├── 0056.jpg │ │ ├── 0061.jpg │ │ ├── 0065.jpg │ │ ├── 0066.jpg │ │ ├── 0067.jpg │ │ ├── 0070.jpg │ │ ├── 0076.jpg │ │ ├── 0079.jpg │ │ ├── 0081.jpg │ │ ├── 0084.jpg │ │ ├── 0087.jpg │ │ ├── 0090.jpg │ │ ├── 0091.jpg │ │ ├── 0092.jpg │ │ ├── 0094.jpg │ │ ├── 0095.jpg │ │ └── 0100.jpg │ ├── .DS_Store │ └── code.py ├── .DS_Store └── solution.py ├── exercice-02_convertir-phrase-en-camel-case ├── enonce.py └── solution.py ├── README.md ├── exercice-09_args-et-kwargs ├── enonce.py └── solution.py ├── exercice-07_la-fonction-zip ├── enonce.py └── solution.py ├── exercice-08_any-et-all ├── enonce.py └── solution.py ├── exercice-12_la-fonction-match ├── enonce.py └── solution.py ├── exercice-05_comprehensions-de-liste ├── solution.py └── enonce.py ├── exercice-13_verifier-validite-mot-de-passe ├── solution.py └── enonce.py ├── exercice-01_a-vous-de-jouer ├── solution.py └── enonce.py ├── exercice-14_verifier-validite-adresse-email ├── solution.py └── enonce.py ├── exercice-06_les-operateurs-ternaires ├── enonce.py └── solution.py ├── exercice-11_creer-votre-propre-docstring ├── enonce.py └── solution.py ├── exercice-03_fonctions-lambdas-avec-pyside ├── solution.py └── enonce.py ├── exercice-04_fonctions-lambdas-avec-pyside-2 ├── solution.py └── enonce.py └── .gitignore /exercice-10_les-sets/dossiers_exercice/rendus_01/0001.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0002.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0003.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0004.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0006.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0007.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0008.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0010.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0011.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0012.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0013.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0015.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0017.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0018.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0019.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0020.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0022.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0023.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0025.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0026.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0027.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0029.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0030.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0031.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0033.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0034.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0036.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0037.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0039.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0040.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0042.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0044.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0045.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0046.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0048.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0049.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0051.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0052.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0054.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0055.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0056.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0057.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0058.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0060.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0061.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0062.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0064.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0065.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0066.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0067.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0068.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0069.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0070.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0071.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0072.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0074.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0076.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0077.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0079.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0080.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0081.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0083.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0084.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0085.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0087.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0088.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0089.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0090.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0091.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0092.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0093.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0094.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0095.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0096.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0097.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0098.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0099.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_01/0100.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0001.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0002.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0004.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0007.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0010.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0018.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0022.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0023.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0026.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0031.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0034.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0052.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0054.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0055.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0056.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0061.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0065.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0066.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0067.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0070.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0076.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0079.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0081.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0084.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0087.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0090.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0091.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0092.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0094.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0095.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/rendus_02/0100.jpg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercice-10_les-sets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DocstringFr/python-avance/HEAD/exercice-10_les-sets/.DS_Store -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DocstringFr/python-avance/HEAD/exercice-10_les-sets/dossiers_exercice/.DS_Store -------------------------------------------------------------------------------- /exercice-02_convertir-phrase-en-camel-case/enonce.py: -------------------------------------------------------------------------------- 1 | phrase = 'Phrase en camel case' 2 | 3 | # Convertir la phrase ci-dessus dans ce format : 4 | 'phraseEnCamelCase' 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Python Avancé : Aller plus loin 2 | Code et ressources pour [**Python Avancé : Aller plus loin**](https://www.docstring.fr/formations/python-avance-aller-plus-loin/) 3 | -------------------------------------------------------------------------------- /exercice-09_args-et-kwargs/enonce.py: -------------------------------------------------------------------------------- 1 | def concatenation_chemin(): 2 | pass 3 | 4 | 5 | chemin_complet = concatenation_chemin('C:/Utilisateurs', 'ThibH', 'Images') 6 | print(chemin_complet) 7 | -------------------------------------------------------------------------------- /exercice-07_la-fonction-zip/enonce.py: -------------------------------------------------------------------------------- 1 | import string 2 | 3 | print(string.ascii_lowercase) 4 | print(string.ascii_lowercase.index('a')) 5 | 6 | prenom = 'Astrid' 7 | 8 | # A -> 1 9 | # s -> 19 10 | # t -> 20 11 | # r -> 18 12 | # i -> 9 13 | # d -> 4 14 | -------------------------------------------------------------------------------- /exercice-09_args-et-kwargs/solution.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | 4 | def concatenation_chemin(*args): 5 | chemin = os.path.join(*args) 6 | return os.path.normpath(chemin) 7 | 8 | 9 | chemin_complet = concatenation_chemin('C:/Utilisateurs', 'ThibH', 'Images', 'France') 10 | print(chemin_complet) 11 | -------------------------------------------------------------------------------- /exercice-07_la-fonction-zip/solution.py: -------------------------------------------------------------------------------- 1 | import string 2 | 3 | prenom = 'Astrid' 4 | indices = [string.ascii_lowercase.index(x) for x in prenom.lower()] 5 | combinaison = zip(prenom, indices) 6 | resultat = ['{} -> {}'.format(x[0], x[1] + 1) for x in combinaison] 7 | 8 | resultat_formate = '\n'.join(resultat) 9 | print(resultat_formate) 10 | -------------------------------------------------------------------------------- /exercice-08_any-et-all/enonce.py: -------------------------------------------------------------------------------- 1 | fichiers = ['C:/dossier_test/fichier01.jpg', 2 | 'C:/dossier_test/fichier02.tif', 3 | 'C:/dossier_test/fichier03.png', 4 | 'C:/dossier_test/fichier04.jpg', 5 | 'C:/dossier_test/fichier05.jpg'] 6 | 7 | au_moins_un_png = 'INSERER CODE ICI' 8 | tous_des_jpg = 'INSERER CODE ICI' 9 | -------------------------------------------------------------------------------- /exercice-10_les-sets/dossiers_exercice/code.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | cur_dir = os.path.dirname(__file__) 4 | 5 | dossier_rendu_01 = os.path.join(cur_dir, 'rendus_01') 6 | dossier_rendu_02 = os.path.join(cur_dir, 'rendus_02') 7 | 8 | fichiers_01 = os.listdir(dossier_rendu_01) 9 | fichiers_02 = os.listdir(dossier_rendu_02) 10 | 11 | # INSERER CODE ICI -------------------------------------------------------------------------------- /exercice-12_la-fonction-match/enonce.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | re.match(r'[a-z]+\d{2}', 'item01') 4 | 5 | re.match(r'[a-zA-Z]+\s\w+', 'Pierre Dupont') 6 | 7 | re.match(r'\s+', 'pierre dupont') 8 | 9 | re.match(r'\w+', 'pierre dupont') 10 | 11 | re.match(r'\w+([-+=]?)', 'pierre-dupont') 12 | 13 | re.match(r'\w+([-+=]?)', 'pierre/dupont') 14 | 15 | re.match(r'\w+([-+=]+)', 'pierre/dupont') 16 | -------------------------------------------------------------------------------- /exercice-05_comprehensions-de-liste/solution.py: -------------------------------------------------------------------------------- 1 | # 1 2 | liste = [1, 2, 3, 4, 5] 3 | liste_double = [i * 2 for i in liste] 4 | 5 | # 2 6 | liste = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5] 7 | liste_double = [i * 2 for i in liste if i > 0] 8 | 9 | # 3 10 | liste = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5] 11 | liste_double = [i * 2 if i > 0 else i * 3 for i in liste] 12 | 13 | # 4 14 | [(a, b) for a in range(10) for b in range(2)] 15 | -------------------------------------------------------------------------------- /exercice-08_any-et-all/solution.py: -------------------------------------------------------------------------------- 1 | fichiers = ['C:/dossier_test/fichier01.jpg', 2 | 'C:/dossier_test/fichier02.tif', 3 | 'C:/dossier_test/fichier03.png', 4 | 'C:/dossier_test/fichier04.jpg', 5 | 'C:/dossier_test/fichier05.jpg'] 6 | 7 | au_moins_un_png = any(x.endswith('.png') for x in fichiers) 8 | tous_des_jpg = all(x.endswith('.jpg') for x in fichiers) 9 | 10 | print(au_moins_un_png) 11 | print(tous_des_jpg) 12 | -------------------------------------------------------------------------------- /exercice-13_verifier-validite-mot-de-passe/solution.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | numeros_de_telephone = ['06-71-45-34-23', 4 | '02-12-33-75-12', 5 | '00-23-14-52-44', 6 | '514-235-0293', 7 | '03-52-31-56-34'] 8 | 9 | for tel in numeros_de_telephone: 10 | match = re.search(r'0{1}[1-7]{1}(-[0-9]{2}){4}', tel) 11 | print('Le numero {} est {}'.format(tel, 'valide' if match else 'invalide')) 12 | -------------------------------------------------------------------------------- /exercice-13_verifier-validite-mot-de-passe/enonce.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | numeros_de_telephone = ['06-71-45-34-23', 4 | '02-12-33-75-12', 5 | '00-23-14-52-44', 6 | '514-235-0293', 7 | '03-52-31-56-34'] 8 | 9 | # Le numéro 06-71-45-34-23 est valide 10 | # Le numéro 02-12-33-75-12 est valide 11 | # Le numéro 00-23-14-52-44 est invalide 12 | # Le numéro 514-235-0293 est invalide 13 | # Le numéro 03-52-31-56-34 est valide 14 | -------------------------------------------------------------------------------- /exercice-01_a-vous-de-jouer/solution.py: -------------------------------------------------------------------------------- 1 | from time import time 2 | from random import randint 3 | import os 4 | 5 | cur_dir = os.path.dirname(__file__) 6 | fichier = os.path.join(cur_dir, 'nombres_aleatoires.txt') 7 | 8 | a = time() 9 | 10 | nombres_aleatoires = [] 11 | 12 | for i in range(5000000): 13 | nombres_aleatoires.append(str(randint(0, 9999))) 14 | 15 | with open(fichier, 'w') as f: 16 | f.write('\n'.join(nombres_aleatoires)) 17 | 18 | b = time() 19 | 20 | print('Temps d\'execution: {}'.format(b - a)) 21 | -------------------------------------------------------------------------------- /exercice-01_a-vous-de-jouer/enonce.py: -------------------------------------------------------------------------------- 1 | import os 2 | from time import time 3 | from random import randint 4 | 5 | cur_dir = os.path.dirname(__file__) 6 | fichier = os.path.join(cur_dir, 'nombres_aleatoires.txt') 7 | 8 | a = time() 9 | 10 | nombre_aleatoire = '' 11 | for i in range(5000000): 12 | nombre_aleatoire += str(randint(0, 9999)) 13 | nombre_aleatoire += '\n' 14 | 15 | with open(fichier, 'w') as f: 16 | f.write(nombre_aleatoire) 17 | 18 | b = time() 19 | 20 | print('Temps d\'execution: {}'.format(b - a)) 21 | -------------------------------------------------------------------------------- /exercice-14_verifier-validite-adresse-email/solution.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | adresses_mail = ['christian_martin@gmail.com', 4 | 'JaiOublieLarobasegmail.com', 5 | 'MarieHutchinson03523@yahoo.co.uk', 6 | 'UnEaDreSSeMail!38BIZarre@unSiTeBizarre.com', 7 | 'ceciNestPasUneDresseMail'] 8 | 9 | for mail in adresses_mail: 10 | adresse_valide = re.search(r'.+@[a-zA-Z0-9-]+\.[a-zA-Z-.]+', mail) 11 | print("L'adresse {} est {}".format(mail, 'valide' if adresse_valide else 'invalide')) 12 | -------------------------------------------------------------------------------- /exercice-10_les-sets/solution.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pprint import pprint 3 | 4 | cur_dir = os.path.dirname(__file__) 5 | 6 | dossier_rendu_01 = os.path.join(cur_dir, 'rendus_01') 7 | dossier_rendu_02 = os.path.join(cur_dir, 'rendus_02') 8 | 9 | fichiers_01 = os.listdir(dossier_rendu_01) 10 | fichiers_02 = os.listdir(dossier_rendu_02) 11 | 12 | fichiers_rendus = set(fichiers_01) | set(fichiers_02) 13 | toutes_les_images = set([str(i).zfill(4) + '.jpg' for i in range(1, 101)]) 14 | 15 | images_manquantes = toutes_les_images - fichiers_rendus 16 | pprint(sorted(list(images_manquantes))) 17 | -------------------------------------------------------------------------------- /exercice-14_verifier-validite-adresse-email/enonce.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | adresses_mail = ['christian_martin@gmail.com', 4 | 'JaiOublieLarobasegmail.com', 5 | 'MarieHutchinson03523@yahoo.co.uk', 6 | 'UnEaDreSSeMail!38BIZarre@unSiTeBizarre.com', 7 | 'ceciNestPasUneDresseMail'] 8 | 9 | # L'adresse christian_martin@gmail.com est valide 10 | # L'adresse JaiOublieLarobasegmail.com est invalide 11 | # L'adresse MarieHutchinson03523@yahoo.co.uk est valide 12 | # L'adresse UnEaDreSSeMail!38BIZarre@unSiTeBizarre.com est valide 13 | # L'adresse ceciNestPasUneDresseMail est invalide 14 | -------------------------------------------------------------------------------- /exercice-02_convertir-phrase-en-camel-case/solution.py: -------------------------------------------------------------------------------- 1 | # Solution 1 2 | phrase = 'Phrase en camel case' 3 | mots = phrase.lower().split(' ') 4 | phrase_convertie = mots[0] 5 | for i, mot in enumerate(mots): 6 | if i > 0: 7 | phrase_convertie += mot.capitalize() 8 | print(phrase_convertie) 9 | 10 | # Solution 2 11 | # Et pour ceux que cela intéresse, voici une façon plus optimisée mais qui n'utilise pas la fonction enumerate : 12 | phrase = 'Phrase en camel case' 13 | mots = phrase.lower().split(' ') 14 | phrase_convertie = mots.pop(0) 15 | for mot in mots: 16 | phrase_convertie += mot.capitalize() 17 | print(phrase_convertie) 18 | -------------------------------------------------------------------------------- /exercice-05_comprehensions-de-liste/enonce.py: -------------------------------------------------------------------------------- 1 | # 1 2 | liste = [1, 2, 3, 4, 5] 3 | liste_double = [] 4 | 5 | for i in liste: 6 | liste_double.append(i * 2) 7 | 8 | # 2 9 | liste = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5] 10 | liste_double = [] 11 | 12 | for i in liste: 13 | if i > 0: 14 | liste_double.append(i * 2) 15 | 16 | # 3 17 | liste = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5] 18 | liste_double = [] 19 | 20 | for i in liste: 21 | if i > 0: 22 | liste_double.append(i * 2) 23 | else: 24 | liste_double.append(i * 3) 25 | 26 | # 4 27 | liste_finale = [] 28 | for a in range(10): 29 | for b in range(2): 30 | liste_finale.append((a, b)) -------------------------------------------------------------------------------- /exercice-06_les-operateurs-ternaires/enonce.py: -------------------------------------------------------------------------------- 1 | """En fonction de la valeur de la variable âge, 2 | récupérer grâce à un operateur ternaire si la personne est majeure ou non dans la variable 'majeur'. 3 | Si la personne est majeur, la variable contiendra la chaîne de caractère 'majeur'. 4 | Si la personne est mineur, la variable contiendra la chaîne de caractère 'mineur'.""" 5 | 6 | age = 17 7 | majeur = 'INSERER CODE ICI' 8 | 9 | """Récupérer dans la variable extension le mot 'python' si le fichier déclaré dans la variable 'fichier' est de type Python (extension .py). 10 | Si le fichier n'est pas de type Python, retourner la chaîne de caractère 'invalide'.""" 11 | 12 | fichier = 'C:/Python/mon_script.py' 13 | extension = 'INSERER CODE ICI' 14 | print('Le fichier {} est de type {}'.format(fichier, extension)) 15 | -------------------------------------------------------------------------------- /exercice-11_creer-votre-propre-docstring/enonce.py: -------------------------------------------------------------------------------- 1 | """ 2 | Module pour realiser des operations mathematiques de base 3 | tel que l'addition, la multiplication ou la soustraction 4 | """ 5 | 6 | 7 | def division(a, b): 8 | try: 9 | return a / b 10 | except ZeroDivisionError: 11 | return 'Division par 0 impossible...' 12 | except TypeError: 13 | return 'Svp, entrez deux nombres entiers...' 14 | 15 | 16 | def multiplication(a, b): 17 | """Multiplie deux nombres et retourne le resultat de l'operation 18 | 19 | :param a: Le premier nombre 20 | :param b: Le deuxieme nombre 21 | :type a: int 22 | :type b: int 23 | :return: Le resultat de la multiplication 24 | :rtype: int 25 | 26 | :Example: 27 | 28 | >>> multiplication(2, 5) 29 | 10 30 | 31 | """ 32 | return a * b 33 | -------------------------------------------------------------------------------- /exercice-06_les-operateurs-ternaires/solution.py: -------------------------------------------------------------------------------- 1 | """En fonction de la valeur de la variable âge, 2 | récupérer grâce à un operateur ternaire si la personne est majeure ou non dans la variable 'majeur'. 3 | Si la personne est majeur, la variable contiendra la chaîne de caractère 'majeur'. 4 | Si la personne est mineur, la variable contiendra la chaîne de caractère 'mineur'.""" 5 | 6 | age = 17 7 | majeur = 'majeur' if age >= 18 else 'mineur' 8 | 9 | """Récupérer dans la variable extension le mot 'python' si le fichier déclaré dans la variable 'fichier' est de type Python (extension .py). 10 | Si le fichier n'est pas de type Python, retourner la chaîne de caractère 'invalide'.""" 11 | 12 | fichier = 'C:/Python/mon_script.py' 13 | extension = 'Python' if fichier.endswith('.py') else 'invalide' 14 | print('Le fichier {} est de type {}'.format(fichier, extension)) 15 | -------------------------------------------------------------------------------- /exercice-03_fonctions-lambdas-avec-pyside/solution.py: -------------------------------------------------------------------------------- 1 | from PySide import QtGui, QtCore 2 | 3 | 4 | class MainUi(QtGui.QWidget): 5 | def __init__(self): 6 | super(MainUi, self).__init__() 7 | 8 | self.setWindowTitle('Printer') 9 | 10 | main_layout = QtGui.QHBoxLayout(self) 11 | button = QtGui.QPushButton('Print Bonjour!') 12 | button2 = QtGui.QPushButton('Print Au revoir!') 13 | main_layout.addWidget(button) 14 | main_layout.addWidget(button2) 15 | 16 | button.clicked.connect(lambda: self.afficher_mot('Bonjour')) 17 | button2.clicked.connect(lambda: self.afficher_mot('Au Revoir')) 18 | 19 | def afficher_mot(self, mot): 20 | print(mot) 21 | 22 | 23 | if __name__ == '__main__': 24 | app = QtGui.QApplication([]) 25 | win = MainUi() 26 | win.show() 27 | app.exec_() 28 | -------------------------------------------------------------------------------- /exercice-12_la-fonction-match/solution.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | # Match valide : retourne 'item01' 4 | re.match(r'[a-z]+\d{2}', 'item01') 5 | 6 | # Match valide : retourne 'Pierre Dupont' 7 | re.match(r'[a-zA-Z]+\s\w+', 'Pierre Dupont') 8 | 9 | # Match invalide : on cherche un espace au début de la chaîne de caractère, mais elle commence par une lettre. 10 | re.match(r'\s+', 'pierre dupont') 11 | 12 | # Match valide : retourne 'pierre' 13 | re.match(r'\w+', 'pierre dupont') 14 | 15 | # Match valide : retourne 'pierre-' 16 | re.match(r'\w+([-+=]?)', 'pierre-dupont') 17 | 18 | # Match valide : retourne 'pierre' 19 | re.match(r'\w+([-+=]?)', 'pierre/dupont') 20 | 21 | # Match invalide : le + cherche si les caractères -, + ou = sont présents au moins une fois ou plus dans la chaîne de caractère. 22 | # Aucun de ses éléments ne se retrouve dans la chaîne de caractère au moins une fois et donc le match n'est pas valide. 23 | re.match(r'\w+([-+=]+)', 'pierre/dupont') 24 | -------------------------------------------------------------------------------- /exercice-03_fonctions-lambdas-avec-pyside/enonce.py: -------------------------------------------------------------------------------- 1 | """ 2 | Le but de l'exercice est d'afficher le mot 'Bonjour' 3 | a l'aide de la methode 'afficher_mot' quand on clique sur 4 | le bouton 'Print Bonjour!' et d'afficher 'Au revoir' quand 5 | on clique sur le bouton 'Print Au Revoir!' 6 | """ 7 | 8 | from PySide import QtGui, QtCore 9 | 10 | 11 | class MainUi(QtGui.QWidget): 12 | def __init__(self): 13 | super(MainUi, self).__init__() 14 | 15 | self.setWindowTitle('Printer') 16 | 17 | main_layout = QtGui.QHBoxLayout(self) 18 | button = QtGui.QPushButton('Print Bonjour!') 19 | button2 = QtGui.QPushButton('Print Au revoir!') 20 | main_layout.addWidget(button) 21 | main_layout.addWidget(button2) 22 | 23 | button.clicked.connect('INSERER CODE ICI') 24 | button2.clicked.connect('INSERER CODE ICI') 25 | 26 | def afficher_mot(self, mot): 27 | print(mot) 28 | 29 | 30 | if __name__ == '__main__': 31 | app = QtGui.QApplication([]) 32 | win = MainUi() 33 | win.show() 34 | app.exec_() 35 | -------------------------------------------------------------------------------- /exercice-11_creer-votre-propre-docstring/solution.py: -------------------------------------------------------------------------------- 1 | """ 2 | Module pour realiser des operations mathematiques de base 3 | tel que l'addition, la multiplication ou la soustraction 4 | """ 5 | 6 | 7 | def division(a, b): 8 | """Divise deux nombres et retourne le resultat de l'operation 9 | 10 | :param a: Le premier nombre 11 | :param b: Le deuxieme nombre 12 | :type a: int or float 13 | :type b: int or float 14 | :return: Le resultat de la division ou un message d'erreur 15 | :rtype: int or float or str 16 | 17 | """ 18 | try: 19 | return a / b 20 | except ZeroDivisionError: 21 | return 'Division par 0 impossible...' 22 | except TypeError: 23 | return 'Svp, entrez deux nombres entiers...' 24 | 25 | 26 | def multiplication(a, b): 27 | """Multiplie deux nombres et retourne le resultat de l'operation 28 | 29 | :param a: Le premier nombre 30 | :param b: Le deuxieme nombre 31 | :type a: int 32 | :type b: int 33 | :return: Le resultat de la multiplication 34 | :rtype: int 35 | 36 | :Example: 37 | 38 | >>> multiplication(2, 5) 39 | 10 40 | 41 | """ 42 | return a * b 43 | -------------------------------------------------------------------------------- /exercice-04_fonctions-lambdas-avec-pyside-2/solution.py: -------------------------------------------------------------------------------- 1 | from PySide import QtGui, QtCore 2 | 3 | 4 | class MainUi(QtGui.QWidget): 5 | def __init__(self): 6 | super(MainUi, self).__init__() 7 | 8 | self.setWindowTitle('Calculatrice') 9 | 10 | main_layout = QtGui.QHBoxLayout(self) 11 | button = QtGui.QPushButton('Calcul') 12 | a = QtGui.QLineEdit('1') 13 | b = QtGui.QLineEdit('5') 14 | label_plus = QtGui.QLabel('+') 15 | c = QtGui.QLineEdit() 16 | label_egal = QtGui.QLabel('=') 17 | main_layout.addWidget(a) 18 | main_layout.addWidget(label_plus) 19 | main_layout.addWidget(b) 20 | main_layout.addWidget(label_egal) 21 | main_layout.addWidget(c) 22 | main_layout.addWidget(button) 23 | 24 | button.clicked.connect(lambda: c.setText(str(int(a.text()) + int(b.text())))) 25 | 26 | # Autre methode 27 | ra = a.text 28 | rb = b.text 29 | s = c.setText 30 | button.clicked.connect(lambda: s(str(int(ra()) + int(rb())))) 31 | 32 | 33 | if __name__ == '__main__': 34 | app = QtGui.QApplication([]) 35 | win = MainUi() 36 | win.show() 37 | app.exec_() 38 | -------------------------------------------------------------------------------- /exercice-04_fonctions-lambdas-avec-pyside-2/enonce.py: -------------------------------------------------------------------------------- 1 | """ 2 | Le but de l'exercice est d'afficher le resultat 3 | de l'addition de la case 'a' avec la case 'b' dans 4 | la case 'c'. 5 | 6 | Pour afficher du texte a l'interieur de la case 'c' 7 | vous aurez besoin d'utiliser: c.setText('texte a afficher') 8 | """ 9 | 10 | from PySide import QtGui, QtCore 11 | 12 | 13 | class MainUi(QtGui.QWidget): 14 | def __init__(self): 15 | super(MainUi, self).__init__() 16 | 17 | self.setWindowTitle('Calculatrice') 18 | 19 | main_layout = QtGui.QHBoxLayout(self) 20 | button = QtGui.QPushButton('Calcul') 21 | a = QtGui.QLineEdit('1') 22 | b = QtGui.QLineEdit('5') 23 | label_plus = QtGui.QLabel('+') 24 | c = QtGui.QLineEdit() 25 | label_egal = QtGui.QLabel('=') 26 | main_layout.addWidget(a) 27 | main_layout.addWidget(label_plus) 28 | main_layout.addWidget(b) 29 | main_layout.addWidget(label_egal) 30 | main_layout.addWidget(c) 31 | main_layout.addWidget(button) 32 | 33 | c.setText('...') 34 | 35 | button.clicked.connect('INSERER CODE ICI') 36 | 37 | 38 | if __name__ == '__main__': 39 | app = QtGui.QApplication([]) 40 | win = MainUi() 41 | win.show() 42 | app.exec_() 43 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | --------------------------------------------------------------------------------