Exercice Python probléme de type

Fermé
Sayu Messages postés 377 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 20 avril 2010 - 26 août 2009 à 11:17
Sayu Messages postés 377 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 20 avril 2010 - 26 août 2009 à 20:41
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
A voir également:

5 réponses

Sayu Messages postés 377 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 20 avril 2010 60
26 août 2009 à 13:54
up
0
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.
0
maka13 Messages postés 75 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 26 août 2009 4
26 août 2009 à 14:57
Salut,

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'
0
Sayu Messages postés 377 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 20 avril 2010 60
26 août 2009 à 20:24
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 :)

# 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
        
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sayu Messages postés 377 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 20 avril 2010 60
26 août 2009 à 20:41
C'est bon absolument tous mes problémes ont été résolus !
Merci de m'avoir mis sur la piste !!

Je m'excuse loupios, je n'avais pas vu ton message :$ Mais cela a été fait dans mon optique : juste une piste :) Ensuite je l'ai fais à ma maniére qui est un peu... un peu... lourde ^^"

Cordialement,
0