Exercice Python probléme de type

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
--
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. Sayu Messages postés 413 Statut Membre 60
     
    up
    0
  2. loupius
     
    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
  3. maka13 Messages postés 78 Statut Membre 4
     
    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
  4. Sayu Messages postés 413 Statut Membre 60
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Sayu Messages postés 413 Statut Membre 60
     
    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