Compare commits
10 Commits
2.5-progra
...
v6
Author | SHA1 | Date | |
---|---|---|---|
9026dd56cc
|
|||
6bd2b3c66c
|
|||
01337279fc
|
|||
d8c6b6e6bf
|
|||
ecec88e230
|
|||
9018ab4996
|
|||
ca69954315
|
|||
4c241eeb60
|
|||
5e55a65b3f
|
|||
e551f8b98d
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1,3 @@
|
|||||||
|
*.pyc
|
||||||
|
|
||||||
venv
|
venv
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
stages:
|
stages:
|
||||||
- linting
|
- linting
|
||||||
|
- test
|
||||||
|
|
||||||
|
|
||||||
flake8:
|
flake8:
|
||||||
@ -18,3 +19,9 @@ pylint:
|
|||||||
- pip install pylint --no-cache-dir
|
- pip install pylint --no-cache-dir
|
||||||
script: pylint main.py
|
script: pylint main.py
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
|
|
||||||
|
test:
|
||||||
|
stage: test
|
||||||
|
image: python:3-alpine
|
||||||
|
script: python main.py
|
||||||
|
100
main.py
100
main.py
@ -1,11 +1,25 @@
|
|||||||
#!/usr/bin/env python
|
#!/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
|
from random import choice
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
"""
|
||||||
|
Fonction principale, qui va attendre les instructions de l'utilisateur.
|
||||||
|
"""
|
||||||
print("Bienvenue dans le chatbot du séminaire de l'intégration continue !")
|
print("Bienvenue dans le chatbot du séminaire de l'intégration continue !")
|
||||||
print("Veuillez taper une commande. Tapez \"help\" pour afficher l'aide.")
|
print("Veuillez taper une commande. Tapez \"aide\" pour afficher l'aide.")
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
command = input("> ")
|
command = input("> ")
|
||||||
@ -13,72 +27,68 @@ def main():
|
|||||||
print(globals()[args[0]](*args[1:]))
|
print(globals()[args[0]](*args[1:]))
|
||||||
|
|
||||||
|
|
||||||
def help():
|
def aide():
|
||||||
"""
|
"""
|
||||||
Affiche l'aide
|
Affiche l'aide
|
||||||
"""
|
"""
|
||||||
print("help\t\tAffiche l'aide")
|
print("aide\t\tAffiche l'aide")
|
||||||
print("seminaire\tLance le séminaire")
|
print("seminaire\tLance le séminaire")
|
||||||
print("blague\t\tRaconte une blague")
|
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("tri\t\tTrie une liste d'entiers.")
|
||||||
print("quit\t\tQuitte le programme")
|
print("stop\t\tQuitte le programme")
|
||||||
|
|
||||||
|
|
||||||
def seminaire():
|
def seminaire():
|
||||||
"""
|
"""
|
||||||
Affiche les slides du séminaire.
|
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():
|
def blague():
|
||||||
"""
|
"""
|
||||||
Renvoie une blague aléatoire.
|
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.
|
L'opération peut être +, -, *, /, &, |, ^, % ou l'un de ses alias anglais.
|
||||||
"""
|
"""
|
||||||
if operation == '+':
|
if operation in ['+', 'add', 'sum']:
|
||||||
result = a + b
|
result = left + right
|
||||||
if operation == 'sum':
|
if operation in ['-', 'sub']:
|
||||||
result = a + b
|
result = left - right
|
||||||
if operation == 'add':
|
if operation in ['*', 'mul', 'prod']:
|
||||||
result = a + b
|
result = left * right
|
||||||
if operation == '-':
|
if operation in ['/', 'div']:
|
||||||
result = a - b
|
result = left / right
|
||||||
if operation == 'sub':
|
if operation in ['&', 'and']:
|
||||||
result = a - b
|
result = left & right
|
||||||
if operation == '*':
|
if operation in ['|', 'or']:
|
||||||
result = a * b
|
result = left | right
|
||||||
if operation == 'mul':
|
if operation in ['^', 'xor']:
|
||||||
result = a * b
|
result = left ^ right
|
||||||
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
|
|
||||||
else:
|
else:
|
||||||
result = a % b
|
result = left % right
|
||||||
return c == result
|
return res == result
|
||||||
|
|
||||||
|
|
||||||
def tri(*args):
|
def tri(*args):
|
||||||
@ -88,12 +98,12 @@ def tri(*args):
|
|||||||
return sorted(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é.
|
Stoppe le programme avec le code d'erreur donné.
|
||||||
"""
|
"""
|
||||||
print("Fin du programme, merci !")
|
print("Fin du programme, merci !")
|
||||||
exit(exit_code)
|
sys.exit(exit_code)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
Reference in New Issue
Block a user