Sylvain Fankhauser
Novembre 2020
(normalement)
(Indice: pas le français)
😨
(Indice 2: pas le néerlandais)
ou langage machine
Comment faire?
Instructions 🇳🇱
Interprète
😌
Instructions 🇬🇧
Je peux exécuter les instructions!
🧑🦰
Instructions (langage compréhensible)
Interpréteur (Python)
💻
1000010110111111011101101010110111111101011110010
Instructions (code machine / binaire)
L'ordinateur exécute les instructions
name = input("Quel est ton nom?")
print("Salut " + name + "!")
print("Bienvenue dans mon premier programme.")
name = input("Quel est ton nom?")
print("Salut " + name + "!")
print("Bienvenue dans mon premier programme.")
Interpréteur
10000101 10111111 01110110
10101101 11111101 01111001
(comme les langues!)
😱
(comme les langues!)
Enfin, le voilà! Le livre que vous cherchiez tant, le Necronomicon,
placé entre "Nettoyer sa maison avec le bicarbonate de soude" et
"Naturellement naturel: renouer avec la nature à l’aide de son smartphone".
Alors que vous tentez de sortir l’ouvrage du rayon, vous entendez un déclic,
l’étagère coulisse d’une quarantaine de centimètres, laissant deviner un
couloir obscur dans le mur. Personne autour de vous ne semble avoir remarqué
quoi que ce soit.
a) Observer le couloir
b) Vous faufiler dans le couloir
c) Vous rendre à l’accueil pour signaler le comportement suspect de ce rayon
Que souhaitez-vous faire? c
Vous prenez place derrière la file composée d’une douzaine de personnes.
Vous apercevez d’où vous vous trouvez l’ouverture dans le mur. Vous ne la
quittez pas des yeux. Après dix longues minutes d’attente, remarquant que la
file n’avance pas, vous décidez de retourner voir l’ouverture.
a) Observer le couloir
b) Vous faufiler dans le couloir
Que souhaitez-vous faire?
Avec ce langage vous pourrez créer:
print("Salut!")
print("C'est mon premier programme!")
https://repl.it/@sephii/intro#exercice_1.py
Utilisez des instructions print pour décrire la première scène de votre jeu d’aventure. Par exemple:
print("Vous vous trouvez...")
https://repl.it/@sephii/intro#exercice_2.py
Un type sert à catégoriser des valeurs
Exemples de catégories dans le monde réel:
3 types de base importants:
print(1 + 1)
2
print("Salut " + "Sylvain")
Salut Sylvain
print(2 * 2)
4
print("Sylvain" * 2)
SylvainSylvain
Opérateurs arithmétiques: +, -, *, /
print(1 > 1)
False
print("Sylvain" == "sylvain")
False
print(1 + 1 == 3)
False
print("Sylvain" != "Georges")
True
Opérateurs de comparaison: >, <, ==, !=
print("J'ai " + 34 + " ans")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
print("J'ai " + "34" + " ans")
J'ai 34 ans
✅
❌
print(1 + 1 = 2)
File "<stdin>", line 1
SyntaxError: cannot assign to operator
print(1 + 1 == 2)
True
print(12 != 12)
False
✅
❌
== : est égal à
!= : est différent de
my_name = "Julie"
print("Salut " + my_name + "!")
Salut Julie!
my_name = "Julie"
print("Salut " + "my_name" + "!")
Salut my_name!
❌
nom = valeur
print("Hello world")
Fonction
Paramètre
max_number = max(5, 2, 8, 1, -2)
print(max_number)
Modifiez votre programme pour demander le nom de la personne qui l’utilise, puis affichez-le dans votre première scène (par exemple un personnage interpelle le joueur ou la joueuse).
Indices
Trame linéaire
import datetime
name = input("Comment vous appelez-vous?")
print("Salut " + name + "!")
print("Aujourd'hui nous sommes " +
datetime.date.today().strftime("j")
)
Trame non linéaire
Trame non linéaire
Conditions
Si nom vaut "Sylvain"
Afficher "On se connaît!"
Afficher "Merci d’utiliser mon programme!"
name = input("Comment vous appelez-vous? ")
if name == "Sylvain":
print("On se connaît!")
print("À bientôt!")
print("Merci d’utiliser mon programme!")
Bloc d’instructions (espaces!)
Condition
Afficher "À bientôt!"
Demander le nom
En dehors du bloc (pas d'espaces)
Si nom == "Sylvain"
Afficher "On se connaît!"
Afficher "Merci d’utiliser mon programme!"
name = input("Comment vous appelez-vous? ")
if name == "Sylvain":
print("On se connaît!")
print("À bientôt!")
else:
print("Merci d’utiliser mon programme!")
Bloc d’instructions (espaces!)
Comparaison
Afficher "À bientôt!"
Demander le nom
Sinon
Si nom == "Sylvain"
Afficher "On se connaît!"
Afficher "Salut Julie!"
name = input("Comment vous appelez-vous? ")
if name == "Sylvain":
print("On se connaît!")
print("À bientôt!")
elif name == "Julie":
print("Salut Julie!")
else:
print("Merci d’utiliser mon programme!")
Afficher "À bientôt!"
Demander le nom
Sinon
Si nom == "Julie"
Afficher "Merci d’utiliser mon programme!"
Bloc exécuté seulement si on est entré dans aucune autre branche
Ajoutez un choix après la description de votre première scène. Par exemple en proposant au joueur ou à la joueuse de faire une action (se déplacer, interagir avec un objet, etc).
Indices
a) regarder si les personnes autour de vous ont remarqué cette lueur
b) appuyer sur des touches de votre clavier en espérant que cela fasse disparaître cette lueur étrange
Faites un choix:
max(5, 2, 8, 1, -2)
print("Salut Sylvain!")
print("Salut Julie!")
print("Salut Harold!")
print("Salut Sylvain!")
print("Salut Julie!")
print("Salut Harold!")
=
def greet(name):
print("Salut " + name + "!")
greet("Sylvain")
greet("Julie")
greet("Harold")
Réduit la duplication de code
def greet(name):
print("Salut " + name + "!")
greet("Sylvain")
greet("Julie")
greet("Harold")
def signifie define
nom de la fonction
paramètre
corps de la fonction
exécution de la fonction greet
def beautify(name):
return "***" + name + "***"
print(beautify("Sylvain"))
Créez une fonction get_choice dans votre programme, qui demande de faire un choix avec le texte "Que souhaitez-vous faire? ", et qui renvoie le choix. Remplacez les appels à la fonction input dans votre programme par get_choice.
Indices
Organisez les post-it pour représenter le programme suivant:
Afficher "Présentation de scene_1"
Demander choix et stocker dans variable "choice"
Exécuter scene_2
Exécuter scene_3
Si choix vaut "a"
Sinon, si choix vaut "b"
scene_1
Afficher "Présentation de scene_2"
scene_2
Afficher "Présentation de scene_3"
scene_3
def scene_1():
...
Modifiez votre programme en mettant le code de vos scènes dans des fonctions, comme dans l’exercice des post-it.
https://repl.it/@sephii/intro#exercice_6.py
print("a) Ouvrir la porte")
print("b) Coller l’oreille contre la porte")
choice = input("Faites un choix: ")
if choice == "a":
print("...")
elif choice == "b":
print("...")
else:
print("Veuillez entrer un choix valide!")
Le programme se termine si le choix n’est pas valide!
Demander choix et stocker dans la variable "choice"
Afficher "..."
Afficher "..."
Afficher "Veuillez entrer un choix valide!"
Fin du programme
Si choix vaut "a"
Sinon, si choix
vaut "b"
Sinon
Demander choix et stocker dans la variable "choice"
Afficher "..."
Afficher "..."
Afficher "Veuillez entrer un choix valide!"
Si choix vaut "a"
Sinon, si choix
vaut "b"
Sinon
Initialiser choice = ""
Si choix vaut
"a" ou "b"
Fin du programme
Sinon
* ce schéma est plus complexe que le code
print("a) Ouvrir la porte")
print("b) Coller l’oreille contre la porte")
choice = ""
while choice != "a" and choice != "b":
choice = input("Faites un choix: ")
if choice == "a":
print("...")
elif choice == "b":
print("...")
else:
print("Veuillez entrer un choix valide!")
def get_choice(options):
choice = input("Faites un choix: ")
if choice not in options:
print("Ce choix n’est pas valide!")
else:
print("Vous avez choisi " + choice)
get_choice(["a", "b", "c"])
Nouveau type de données ! Elles permettent de regrouper des données. Les éléments d’une liste sont placés entre [] et séparés par des virgules
Cette liste a 3 éléments: "a", "b" et "c"
Ajoutez un paramètre options à votre fonction get_choice. Faites en sorte qu’elle empêche d’entrer un choix qui ne fait pas partie de la liste options.
Indices
def get_choice(options):
choice = input("Faites un choix: ")
if choice not in options:
print("Ce choix n’est pas valide!")
else:
print("Vous avez choisi " + choice)
get_choice(["a", "b", "c"])
🥳
🎉
✨
Sylvain Fankhauser (@roflmaokthxbye)
Génies du code (@geniesducode)