Exercice Python probléme de type
Sayu
Messages postés
413
Statut
Membre
-
Sayu Messages postés 413 Statut Membre -
Sayu Messages postés 413 Statut Membre -
Bonjour,
J'ai un probléme avec un de mes exercices Python sur le tuto de "https://python.developpez.com/".
Alors voilà mon exercice :
6.1. Écrivez un programme qui convertisse en mètres par seconde et en km/h une vitesse fournie par l'utilisateur en miles/heure. (Rappel : 1 mile = 1609 mètres)
On me dit aussi d'utiliser la fonction raw_input() dans tous mes exos.
Si on ne saisi qu'un nombre, tout va bien : je fait x = int(), et tout est réglé. Cependant si on choisis des lettres (pour faire buger le programme ou autre...), alors tout foire...
Mon probléme est donc simple : comment faire pour eviter cela ?
Pouvez vous m'aider ?
Merci d'avance de me mettre sur la piste :)
Cordialement,
Sayu
J'ai un probléme avec un de mes exercices Python sur le tuto de "https://python.developpez.com/".
Alors voilà mon exercice :
6.1. Écrivez un programme qui convertisse en mètres par seconde et en km/h une vitesse fournie par l'utilisateur en miles/heure. (Rappel : 1 mile = 1609 mètres)
On me dit aussi d'utiliser la fonction raw_input() dans tous mes exos.
Si on ne saisi qu'un nombre, tout va bien : je fait x = int(), et tout est réglé. Cependant si on choisis des lettres (pour faire buger le programme ou autre...), alors tout foire...
Mon probléme est donc simple : comment faire pour eviter cela ?
Pouvez vous m'aider ?
Merci d'avance de me mettre sur la piste :)
Cordialement,
Sayu
A voir également:
- Exercice Python probléme de type
- Citizen code python - Accueil - Outils
- Clear type - Guide
- Type de ram - Guide
- Comment changer le type de fichier - Guide
- Mot secret python pix ✓ - Forum Python
5 réponses
Si tu ne nous montres pas ce que tu as fait, je crains que tu n'aies pas de réponse. En effet nous ne sommes pas là pour faire l'exercice à ta place mais pour t'aider à le faire.
Bonne continuation.
Bonne continuation.
Salut,
voici une piste (J'ai fait vite fait faut que je parte manger :))) :
voici une piste (J'ai fait vite fait faut que je parte manger :))) :
#! /usr/bin/env python
accepted = ['0','1','2','3','4','5','6','7','8','9']
while 1:
speed = raw_input("domme moi un vitesse : ")
if len(speed):
for i in range(len(speed)):
if speed[i] not in accepted:
print 'ERROR : j\'ai besoin de chiffres'
break
print "%s est un nombre" % speed
break
else:
print 'pffff, tape un truc copain'
Je n'ai pas vu la moitié de ce que vous me proposer ^^
Cependant, vous m'avez mis sur une bonne piste : (je vous le code à ma maniére...)
J'ai essayé mais cela ne marche pas :x
EDIT Si cela marche :) quelques erreurs réctifiées : les valeur en nombre de la variable list doivent etre entre ""
Et quelques erreurs de boucles infinies réglées :)
Cependant, vous m'avez mis sur une bonne piste : (je vous le code à ma maniére...)
J'ai essayé mais cela ne marche pas :x
EDIT Si cela marche :) quelques erreurs réctifiées : les valeur en nombre de la variable list doivent etre entre ""
Et quelques erreurs de boucles infinies réglées :)
# Variables
#######
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, "."] #Liste de caractéres acceptés
c1, c2 = 0, 0 # compteurs
b1, b2 = 0, 0 # valeurs len()
boolean1, boolean2 = 1, 1 # variables de véritée
miles, result = 0, 0 # initialisation de variables diverses
# Fonctions
#######
# Aucune fonctions
# Script
#####
miles = raw_input("Veuillez entrer un nombre SVP :")
b1 = len(miles)
b2 = len(list)
# Test de la valeur de miles
while boolean1:
if (boolean2 == 1):
while (c1<b1): # caractére a tester
c2 = 0
while (c2<b2): # test du caractére
if (list[c2] == miles[c1]):
c2 = c2 + b2
c1 = c1 + 1
print "caractére", c2, "ok"
elif (c2 == b2 - 1):
print "error : Une partie de la chaine n'a pas été saisie en nombre !"
c2 = c2 + b2 # interuption de la boucle
c1 = c1 + b1
boolean2 = 0
else:
c2 = c2 + 1
elif boolean2 == 0:
miles = raw_input("Veuillez entrer une valeur VALIDE SVP :")
boolean2 = boolean2 + 1
c1, c2 = 0,0
elif c1 == b1:
print "La valeur choisie à été accepté par l'application."
boolean1 = 0
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question