Python: vérifier une entrée
koriolis
-
loveparade Messages postés 506 Date d'inscription Statut Membre Dernière intervention -
loveparade Messages postés 506 Date d'inscription Statut Membre Dernière intervention -
Bonjour à la communauté,
Je développe en python et je cherche à:
enter une commande >> vérifier si elle existe dans une chaine >> l'exécuter si oui / dire qu'elle n' n'existe pas sinon.
J'en suis à ça:
chaine="liste des commandes séparés par un "/" "
def entrercom():
commande=input()
for commande in chaine:
commande()
else:
print "commande invalide"
entrercom()
le hic, c'est que si j'entre une valeur qui n'éxiste pas, cela m'offre un joli " name trucmachin is not definited ", alors que j'aimerais bien afficher un beau " commande inconnue... " et revenir au commande=input().
Auriez-vous une idée ? Merci d'avance !
Je développe en python et je cherche à:
enter une commande >> vérifier si elle existe dans une chaine >> l'exécuter si oui / dire qu'elle n' n'existe pas sinon.
J'en suis à ça:
chaine="liste des commandes séparés par un "/" "
def entrercom():
commande=input()
for commande in chaine:
commande()
else:
print "commande invalide"
entrercom()
le hic, c'est que si j'entre une valeur qui n'éxiste pas, cela m'offre un joli " name trucmachin is not definited ", alors que j'aimerais bien afficher un beau " commande inconnue... " et revenir au commande=input().
Auriez-vous une idée ? Merci d'avance !
A voir également:
- Python: vérifier une entrée
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Citizen code python solution - Forum Python
3 réponses
from sys import stdout chaine = "commande1 / commande2 ..." req = raw_input("Commande a tester\n") if req in chaine: exec req+"()"
Exemple:
from sys import stdout def ech(): stdout.write("ok"\n) ch = "ech ebh" while 1: a = "ech" if a in ch: exec a+"()" break else: stdout.write("Commande inconnue\n")
mais bon, c'est pas très esthétique. C'est pour quoi faire au juste?
Ok après tu peux les mettres dans un dic par exemple
genre :
Enfin a toi d'adapter, car de plus, le python est relativement simple. A plus tard.
genre :
def dir_function(): ... def del_function(): ... commande = dict() commande['dir'] = dir_function commande['dir'] = del_function cmd = "dir" if commande.has_key(cmd): commande[cmd]()
Enfin a toi d'adapter, car de plus, le python est relativement simple. A plus tard.
Je vais de ce pas adapter (maintenant que c'est compris ) ce code à mon projet...
En fait, je cherche par simple amusement à faire une sorte de console type dos (Windows) ou shell (linux)...
Pour l'heure, mon programme se décompose comme ceci:
l'interface ou l'on écrit la commande >> une fonction exécute la commande spécifique >> retour à l'interface ou l'on écrit ladite commande...
Le hic, c'est que si j'ai déjà pas mal de fonctions que j'ai développé ( listing des dossier/fichiers, création/édition de dossier, documents texte, contrôle de l'ordinateur ( éteindre, mettre en veille... (uniquement sous windows, pour le coup)) et autres... ), il y a toujours le risque que l'utilisateur se trompe dans la syntaxe de la commande... d'où ma question ^^
Sinon, je ne fais vraiment ça que par pur amusement...