18 Commits
v2 ... v5

Author SHA1 Message Date
01337279fc Ajout de docstrings. Pylint est content
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:47:46 +01:00
d8c6b6e6bf Factorisation de tests
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:45:23 +01:00
ecec88e230 Il faut aussi renommer les variables dans leurs usages
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:43:18 +01:00
9018ab4996 On renomme a, b et c qui ne sont pas suffisamment explicites
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:41:07 +01:00
ca69954315 On quitte un programme avec sys.exit
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:37:48 +01:00
4c241eeb60 On ne redéfinit pas des fonctions pré-implémentées
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:35:59 +01:00
5e55a65b3f Pas d'espace entre le nom du paramètre et la valeur par défaut. flake8 est content
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:33:45 +01:00
e551f8b98d Les lignes ne doivent pas être trop longues
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:32:03 +01:00
55c67118b4 __main__ est une chaîne, pas une variable. Le programme a maintenant l'air de fonctionner
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:29:43 +01:00
25035a3221 Vrai se dit True en Python, pas true
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:27:40 +01:00
3d3539930a Une indentation doit être un multiple de 4 espaces
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:26:16 +01:00
461a0dac34 Guillemets manquants autour d'une chaîne à imprimer
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:24:14 +01:00
8aff3bc57d Intervetissement des : et = dans les paramètres de la fonction quit
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:23:07 +01:00
b932e1ad6e Une chaîne de caractères est entourée de guillemets
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:21:00 +01:00
4cdefaa8a3 Une comparaison se fait avec un double =
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:16:34 +01:00
5cb441f36d Virgule manquante dans les paramètres
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 16:14:34 +01:00
2a35b87e5d Un crochet était manquant
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 11:59:48 +01:00
d3e733858e Ajout de parenthèses manquantes autour de print
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2021-01-26 11:57:03 +01:00

108
main.py
View File

@ -1,84 +1,94 @@
#!/usr/bin/env python
"""
Ce script est utilisé en guise d'appui pour le séminaire Crans d'introduction
à l'intégration continue.
Le dépôt est présent sur https://gitlab.crans.org/ynerant/seminaire-ci.git
Plus d'informations sur les séminaires : https://www.crans.org/fr/seminaire/
"""
from random import choice
import sys
def main():
print "Bienvenue dans le chatbot du séminaire de l'intégration continue !"
print "Veuillez taper une commande. Tapez \"help\" pour afficher l'aide."
"""
Fonction principale, qui va attendre les instructions de l'utilisateur.
"""
print("Bienvenue dans le chatbot du séminaire de l'intégration continue !")
print("Veuillez taper une commande. Tapez \"aide\" pour afficher l'aide.")
while true:
while True:
command = input("> ")
args = command.split(" ")
print(globals()[args[0]](*args[1:]))
def help():
def aide():
"""
Affiche l'aide
"""
print("help\t\tAffiche l'aide")
print("aide\t\tAffiche l'aide")
print("seminaire\tLance le séminaire")
print("blague\t\tRaconte une blague")
print("calcul\t\tVérifie une opération arithmétique. Par exemple, check(1, 2, 3, '+') renvoie True")
print("calcul\t\tVérifie une opération arithmétique. "
"Par exemple, check(1, 2, 3, '+') renvoie True")
print("tri\t\tTrie une liste d'entiers.")
print("quit\t\tQuitte le programme")
print("stop\t\tQuitte le programme")
def seminaire():
"""
Affiche les slides du séminaire.
"""
print("\x4c\x61\x69\x73\x73\x65\x20\x74\x6f\x6d\x62\x65\x72\x2c\x20\x74\x6f\x6e\x20\x74\x72\x75\x63\x20\x65\x73\x74\x20\x74\x72\x6f\x70\x20\x62\x65\x75\x67\x75\xe9\x2c\x20\x74\x75\x20\x64\x65\x76\x72\x61\x69\x73\x20\x70\x61\x73\x73\x65\x72\x20\x64\x75\x20\x74\x65\x6d\x70\x73\x20\xe0\x20\xe9\x63\x72\x69\x72\x65\x20\x64\x65\x73\x20\x74\x65\x73\x74\x73\x20\x65\x74\x20\x66\x61\x69\x72\x65\x20\x64\xe9\x66\x69\x6c\x65\x72\x20\x74\x65\x73\x20\x73\x6c\x69\x64\x65\x73")
print("\x4c\x61\x69\x73\x73\x65\x20\x74\x6f\x6d\x62\x65"
"\x72\x2c\x20\x74\x6f\x6e\x20\x74\x72\x75\x63\x20"
"\x65\x73\x74\x20\x74\x72\x6f\x70\x20\x62\x65\x75"
"\x67\x75\xe9\x2c\x20\x74\x75\x20\x64\x65\x76\x72"
"\x61\x69\x73\x20\x70\x61\x73\x73\x65\x72\x20\x64"
"\x75\x20\x74\x65\x6d\x70\x73\x20\xe0\x20\xe9\x63"
"\x72\x69\x72\x65\x20\x64\x65\x73\x20\x74\x65\x73"
"\x74\x73\x20\x65\x74\x20\x66\x61\x69\x72\x65\x20"
"\x64\xe9\x66\x69\x6c\x65\x72\x20\x74\x65\x73\x20"
"\x73\x6c\x69\x64\x65\x73")
def blague():
"""
Renvoie une blague aléatoire.
"""
return choice(["Je vais vous raconter une blague sur, mais vous ne l'aurez peut-être pas.", "Connaissez-vous la différence entre la théroie et la pratique ? Il n'y en a pas, en théorie.")
return choice(
["Je vais vous raconter une blague sur, mais vous "
"ne l'aurez peut-être pas.",
"Connaissez-vous la différence entre la théroie "
"et la pratique ? Il n'y en left pas, en théorie."])
def calcul(a b, c, operation = '+'):
def calcul(left: int, right: int, res: int, operation='+'):
"""
Vérifie si a operation b == c, où a, b et c sont des entiers.
Vérifie si left operation b == c, où a, b et c sont des entiers.
L'opération peut être +, -, *, /, &, |, ^, % ou l'un de ses alias anglais.
"""
if operation = '+':
result = a + b
if operation == 'sum':
result = a + b
if operation == 'add':
result = a + b
if operation == '-':
result = a - b
if operation == 'sub':
result = a - b
if operation == '*':
result = a * b
if operation == 'mul':
result = a * b
if operation == 'prod':
result = a * b
if operation == '/':
result = a / b
if operation == 'div':
result = a / b
if operation == '&':
result = a & b
if operation == 'and':
result = a & b
if operation == |:
result = a | b
if operation == 'or':
result = a | b
if operation == '^':
result = a ^ b
if operation == 'xor':
result = a ^ b
if operation in ['+', 'add', 'sum']:
result = left + right
if operation in ['-', 'sub']:
result = left - right
if operation in ['*', 'mul', 'prod']:
result = left * right
if operation in ['/', 'div']:
result = left / right
if operation in ['&', 'and']:
result = left & right
if operation in ['|', 'or']:
result = left | right
if operation in ['^', 'xor']:
result = left ^ right
else:
result = a % b
return c == result
result = left % right
return res == result
def tri(*args):
@ -88,13 +98,13 @@ def tri(*args):
return sorted(args)
def quit(exit_code = int: 0):
def stop(exit_code: int = 0):
"""
Stoppe le programme avec le code d'erreur donné.
"""
print("Fin du programme, merci !)
exit(exit_code)
print("Fin du programme, merci !")
sys.exit(exit_code)
if __name__ == __main__:
if __name__ == '__main__':
main()