Image cool
Dans deux heures…
Je pense à un nombre entre 0 et 857, devine lequel! Entre un nombre: 857 Trop grand! Entre un nombre: 412 Trop petit! Entre un nombre:
Je pense à un nombre entre 0 et 857, devine lequel! Entre un nombre: 857 Trop grand! Entre un nombre:
Je pense à un nombre entre 0 et 857, devine lequel! Entre un nombre:
Je pense à un nombre entre 0 et 857, devine lequel! Entre un nombre: 857 Trop grand! Entre un nombre: 412 Trop petit! Entre un nombre: 413 Bravo, tu as trouvé le nombre 413 en 3 essais!
Insérer slide Clotilde
⚠️ copyright
class LinuxArtifactJob(ArtifactJob):
package_re = r"public/build/target\.tar\.bz2"
product = "firefox"
_package_artifact_patterns = {
"{product}/crashreporter",
"{product}/dependentlibs.list",
"{product}/{product}",
"{product}/{product}-bin",
"{product}/minidump-analyzer",
"{product}/pingsender",
"{product}/plugin-container",
"{product}/updater",
"{product}/**/*.so",
}
@property
def package_artifact_patterns(self):
return {p.format(product=self.product) for p in self._package_artifact_patterns}
def process_package_artifact(self, filename, processed_filename):
added_entry = False
with JarWriter(file=processed_filename, compress_level=5) as writer:
with tarfile.open(filename) as reader:
for p, f in UnpackFinder(TarFinder(filename, reader)):
if not any(
mozpath.match(p, pat) for pat in self.package_artifact_patterns
):
continue
# We strip off the relative "firefox/" bit from the path,
# but otherwise preserve it.
destpath = mozpath.join("bin", mozpath.relpath(p, self.product))
self.log(
logging.DEBUG,
"artifact",
{"destpath": destpath},
"Adding {destpath} to processed archive",
)
writer.add(destpath.encode("utf-8"), f.open(), mode=f.mode)
added_entry = True
if not added_entry:
raise ValueError(
'Archive format changed! No pattern from "{patterns}" '
"matched an archive path.".format(
patterns=LinuxArtifactJob.package_artifact_patterns
)
)
class MacArtifactJob(ArtifactJob):
package_re = r"public/build/target\.dmg"
product = "firefox"
# These get copied into dist/bin without the path, so "root/a/b/c" -> "dist/bin/c".
_paths_no_keep_path = (
"Contents/MacOS",
[
"crashreporter.app/Contents/MacOS/crashreporter",
"{product}",
"{product}-bin",
"*.dylib",
"minidump-analyzer",
"pingsender",
"plugin-container.app/Contents/MacOS/plugin-container",
"updater.app/Contents/MacOS/org.mozilla.updater",
# 'xpcshell',
"XUL",
],
)
Programme
Code source
Programme d’alunissage
⛳
Brownies double chocolat
🤤
Conclusion
HTML
PHP
CSS
JavaScript
Python
C
Assembleur
Java
Elm
Pascal
Ruby
R
Basic
😵
Python
✨
✨
✨
✨
(surtout en deux heures)
>>> print("Salut!)
File "", line 1
print("Salut!)
^
SyntaxError: EOL while scanning string literal
Les erreurs sont là pour vous aider !
Bon on écrit du code ou quoi ⁉️
Login: ateliergdc
Mot de passe: ******
Minute 20
1
2
3
Éditeur de code (écrivez ici !)
Zone d’affichage
Cliquez pour exécuter votre code
print("Salut!")
print("C’est mon premier programme!")
Un peu d’arithmétique
print("Salut" + " tout le monde")
Salut tout le monde
print("2" + "2")
22
print(2 + 2)
4
print(2 + "2")
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Nombres entiers
40
5
12
-7
20
…
Chaînes de caractères
(integers)
(strings)
"Salut"
"40"
"12"
"Le nombre 40"
…
🛠 Outil : les fonctions 🛠
print("Salut!")
Minute 30
print("Quel est ton nom?")
Fonction
Paramètre
Certaines fonctions renvoient une valeur
max(5, 8, 2, 1, -2)
Trop petit?
On peut créer ses propres fonctions
(mais pas aujourd’hui)
check_password("Sylvain", "1234")
fire_thrusts(90)
play_music("Idioteque.mp3")
Quelques fonctions de Python
print("Bonjour")
input("Entrez un nombre: ")
max(4, -3, 1)
int("5")
str(5)
Liste complète: https://docs.python.org/fr/3/library/functions.html
"30"
4
5
"5"
int(input("Entre un nombre"))
Couleurs valeurs
Nombres entiers
40
5
12
-7
20
…
Chaînes de caractères
(integers)
(strings)
"Salut"
"40"
"12"
"Le nombre 40"
…
str()
int()
🛠️ Outil : les variables 🛠️
x = 5
Minute 40
my_name = "Sylvain"
number = 4
Changer my_name mettre Clotilde
Emoji stylo
Exemples de variables
my_name = "Sylvain"
nb_books_read = 57
current_date = "04.10.2021"
Nom de la variable
Valeur
my_name = "Sylvain"
print(my_name)
Pas de guillemets autour du nom de la variable
🧐
✍️
Assigner une valeur à une variable
my_name = input("Comment t’appelles-tu? ")
print(my_name)
✍️
🧐
Mettre le résultat d’une fonction dans une variable
Ajouter étape de transition après print(my_name)
my_name = "Sylvain"
my name = "Sylvain"
print("my_name")
print(my name)
print(my_name)
print(your_name)
input("Votre nom: ") = your_name
your_name = input("Votre nom: ")
my_name = Sylvain
❌
✅
✅
✅
❌
❌
❌
❌
❌
Exemples d’instructions correctes et incorrectes
Bon on écrit du code ou quoi ⁉️
number = input("Devinez le nombre auquel je pense: ")
print("Vous avez entré le nombre " + number)
Rappel :
Afficher ➡️ print("Texte à afficher")
Poser une question ➡️ input("Question: ")
Mettre le résultat dans une variable ➡️ variable = ...
🛠️ Outil : les conditions 🛠️
if condition: instruction1 else: instruction2
Est-ce que … ?
Instruction 1
Oui
Non
Instruction 2
1h
Une condition est soit vraie (True) soit fausse (False)
print(2 < 5)
True
print(2 > 5)
False
print(2 == 5)
False
print(2 != 5)
True
Exemples de conditions
print(not True)
False
print(2 > "2")
TypeError: '>' not supported between instances of 'int' and 'str'
Nombres
40
5
12
-7
20
…
Chaînes de caractères
(integers)
(strings)
"Salut"
"40"
"12"
"Le nombre 40"
…
True
False
Valeurs vrai/faux
Résumé des opérateurs de comparaison
Exemple de programme avec un embranchement
Exemple de programme avec un embranchement
Poser la question "Entre un nombre" et convertir le résultat
Afficher "Bravo!"
Oui
Non
Afficher "Ce n’est pas…"
Est-ce que le nombre vaut 4?
Afficher "C’est le nombre…"
Exemple de programme avec un embranchement
number = int(input("Entre un nombre: "))
if number == 4:
print("Bravo, tu as deviné!")
print("C’est le nombre auquel je pensais!")
else:
print("Ce n’est pas le nombre aquel je pensais")
Ne pas oublier les deux-points !
Exemple de programme avec plusieurs embranchements
number = int(input("Entre un nombre: "))
if number == 4:
print("Bravo, tu as deviné!")
print("C’est le nombre auquel je pensais!")
elif number == 5:
print("Ce n’est pas le bon nombre, mais pas loin!")
elif number < 0:
print("Tu vas chercher trop loin!")
else:
print("Ce n’est pas le nombre aquel je pensais")
Bon on écrit du code ou quoi ⁉️
if condition1:
...
elif condition2:
...
else:
...
faire capture d’écran de la solution
🛠️ Outil : les modules Python 🛠️
import datetime print(datetime.datetime.now())
1h20
Plein de trucs comme :
Exemple : le module random
Comme de par hasard c’est pile ce qu’il nous faut ! 🤩
random.randint(a, b)
Renvoie un entier aléatoire N tel
que a <= N <= b.
import random
print(random.randint(0, 42))
# 39
print(random.randint(0, 42))
# 18
Exemple : le module random
Charge le code du module (à mettre tout en haut !)
import random
number = random.randint(0, 255)
print(number)
Rappel
🛠️ Outil : les boucles 🛠️
while condition: instructions
1h30
counter = 0
while counter < 5:
print("Le compteur est à " + str(counter))
counter = counter + 1
print("Le compteur est terminé")
# Le compteur est à 0
# Le compteur est à 1
# Le compteur est à 2
# Le compteur est à 3
# Le compteur est à 4
# Le compteur est terminé
Deux-points, comme pour les if
4 espaces, comme pour les if
Exemple de boucle : un compteur
Schéma embranchement
number_found = False
while not number_found:
number = int(input("Entre un nombre: "))
if number == 4:
number_found = True
print("Bravo!")
else:
print("Ce n’est pas le bon nombre!")
Exemple de boucle : poser une question
Modifiez votre programme pour qu’il corresponde à ça
import random
number = random.randint(0, 42)
number_found = False
while not number_found:
guess = int(input("Entre un nombre entre 0 et 42: "))
if guess == number:
print("Bravo! Le nombre à deviner était " + str(number))
number_found = True
elif guess < number:
print("Trop petit!")
else:
print("Trop grand!")
Solution
Et maintenant ?
1h50