first commit

This commit is contained in:
Adrien Luxey 2020-04-10 16:28:57 +02:00
commit 16c9e72055
4 changed files with 22886 additions and 0 deletions

58
01_plus-ou-moins.py Normal file
View File

@ -0,0 +1,58 @@
#!/usr/bin/python3
# La ligne ci-dessus s'appelle un shebang sert à expliquer au système
# qu'on code en python. Autant la retenir par coeur ou la copier-coller...
# Énoncé : --------------------------------------------------------------------
# On cherche à écrire un programme du jeu "plus-ou-moins" :
#
# D'abord, l'ordinateur choisit un nombre mystère entre 1 et 100
# L'utilisateur propose un nombre, et l'ordinateur répond soit
# * "C'est plus" si le nombre mystère est supérieur à celui proposé
# * "C'est moins" si le nombre mystère est inférieur à celui proposé
# * "Gagné !" si l'utilisateur a trouvé le nombre mystère
# L'utilisateur doit reproposer un nombre tant qu'il n'a pas gagné
# Fonctions additionnelles (optionnelles) : -----------------------------------
# * Compter le nombre de coups avant victoire
# * Possibilité de choisir l'intervalle (par ex. 1 et 1000)
# * Tableau des scores (avec pseudonyme !)
# Objectifs pédagogiques : ----------------------------------------------------
# * Manipuler des variables
# * Boucles et conditions
# * Manipuler de fichiers (pour le tableau des scores)
# Outils nécessaires : --------------------------------------------------------
# * Selection aléatoire du nombre
# import random # Importe la bibliothèque (library) des fonctions aléatoires
# On utilise la fonction randint de la bibliothèque random
# (Et on met le résultat dans la variable x)
# x = random.randint(a, b)
# Lire la doc : https://docs.python.org/3.1/library/random.html#random.randint
# "Return a random integer N such that a <= N <= b."
#
# * Demander une valeur à l'utilisateur
# x = input()
# Lire la doc : https://docs.python.org/3.5/library/functions.html#input
# En fonction de ce que rentre l'utilisateur, x sera un int ou string ou autre
#
# * Manipuler des fichiers :
# Docs :
# https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/232431-utilisez-des-fichiers
# https://simple-duino.com/manipulation-de-fichiers-en-python/
# https://python.developpez.com/cours/apprendre-python3/?page=page_11
# Bref, trouvez de la doc.
#
#
# * Parler Python3 (syntaxe)
# Lire la doc : https://docs.python.org/3.5/reference/compound_stmts.html
# Ya des tutos moins arides :
# * http://www.xavierdupre.fr/app/teachpyx/helpsphinx/c_lang/syntaxe.html
# * https://docs.python.org/fr/3/tutorial/controlflow.html
# * https://www.pierre-giraud.com/python-apprendre-programmer-cours/
# * "tuto python3" dans google
# * crier "ADRIEEEEEN !"

22740
02_mots_francais.txt Normal file

File diff suppressed because it is too large Load Diff

53
02_pendu.py Normal file
View File

@ -0,0 +1,53 @@
#!/usr/bin/python3
# La ligne ci-dessus s'appelle un shebang sert à expliquer au système
# qu'on code en python. Autant la retenir par coeur ou la copier-coller...
# Énoncé : --------------------------------------------------------------------
# On cherche à écrire un programme du jeu de "pendu" :
#
# D'abord, l'ordinateur choisit un mot mystère parmi un fichier de mots
# Tant que l'utilisateur n'a pas gagné ou perdu :
# L'ordinateur affiche le mot à trous et dit le nombre d'essais restants
# L'utilisateur propose une lettre
# Si la lettre appartient au mot
# L'ordinateur révèle la lettre dans le mot à trou
# Sinon
# L'ordinateur retire un essai au joueur
# Fonctions additionnelles (optionnelles) : -----------------------------------
# * L'ordinateur dessine progressivement le pendu
# * L'ordinateur rappelle les lettres déjà proposées
# * Tableau des scores (on peut reprendre le code du "plus-ou-moins")
# Objectifs pédagogiques : ----------------------------------------------------
# * Manipuler des tableaux
# * Découper son code en fonctions
# * Faire de l'ASCII art (dessin du pendu)
# * Chaînes de caractères sur plusieurs lignes (dessin du pendu)
# Outils nécessaires : --------------------------------------------------------
# * Les tableaux
# mot = "pendu"
# lettres_manquantes = [True, False, True, True, False] # Un tableau de bool
# # Comment afficher le mot avec les trous ?
# Docs :
# https://python.doctor/page-apprendre-listes-list-tableaux-tableaux-liste-array-python-cours-debutant
# Trouvez de la doc
#
# * Les fonctions
# # Servent à écrire du code une fois, et à pouvoir l'appeler quand on veut :
# def afficher_mot_a_trous(mot, lettres_manquantes):
# # ... Du code indenté ...
#
# # On peut maintenant appeler la fonction avec les paramètres qu'on veut
# afficher_mot_a_trous("pizza", [True, False, False, False, False])
# afficher_mot_a_trous("padakor", [True, False, True, False, True, True, True])
#
# * Un fichier de mots (fourni)
# Le fichier "02_mots_francais.txt" contient 22740 mots, donc des noms propres
# (qui commencent par une majuscule) et des mots d'une lettre.
# Il va falloir trier !

35
README.md Normal file
View File

@ -0,0 +1,35 @@
# Exercices de programmation
Ces exercices en Python3 permettent d'apprendre progressivement les bases du langage, et de la programmation en général.
Il ne s'agit que de commentaires proposant un énoncé et autres instructions/sources de documentation dans des fichiers vides.
On peut par exemple copier ces fichiers dans un répertoire de travail, et commencer à les remplir. Il ne faut pas hésiter à créer ses propres fichiers pour essayer quelques bouts de code, sans s'embêter de l'exercice courant. On peut aussi utiliser l'interpréteur interactif de Python pour faire des tests en console :
$ python3 # Dans un terminal
[...]
>>> from random import randint
>>> randint(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: randint() missing 1 required positional argument: 'b'
>>> # Ah mince, il y a deux paramètres
>>> randint(5, 10)
6
>>> # quit(), exit() ou encore Ctrl-D pour quitter
Pour exécuter un fichier python, on ouvre un terminal, et on fait comme ça :
# D'abord, aller dans le répertoire du fichier python à exécuter
~ $ cd le/repertoire/du/fichier
# J'étais dans ~ (mon répertoire personnel, par exemple /home/adrien)
# Je vais donc me retrouver dans ~/le/repertoire/du/fichier
~/le/repertoire/du/fichier $ ls # Liste les fichiers
lama.jpg mon_code.py nul.jpg rien_a_faire.txt
# C'est le fichier mon_code.py qu'on veut exécuter
# On appelle python3, et on lui donne le nom du fichier en paramètre :
~/le/repertoire/du/fichier $ python3 mon_code.py
[...] # Le fichier s'exécute
# On peut aussi choisir de rendre le fichier exécutable pour le lancer différemment
~/le/repertoire/du/fichier $ chmod +x mon_code.py
~/le/repertoire/du/fichier $ ./mon_code.py