Exercice Python probléme de type

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
--
Sayu -UOFF 62-
Sayu : Mac OS 10,5 / Linux XANDROS / iPod 16 Go Version 2,2
Configuration: Mac OS X 10,5
Linux Xandros sur eeepc en mode expert & emulateur linux sur Mac
Ipod Touch 16 GB
Routeur Neuf 100MB/s en debit maximal descendant, 50MB/s en debit montant
Connaissances en PC (installation de Windows XP)

5 réponses

  1. 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,
    1. 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
              
      
      1. 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'
        
        1. 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.