IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

utilisation des boucles


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 7
    Points : 6
    Points
    6
    Par défaut utilisation des boucles
    Bonjour,
    Je souhaite que mon programme python recommence, tant que l'utilisateur tape une chose différente de "km" et "mile". Mais, je n'y arrive pas. je vous mets, mes codes et les erreurs générés.
    Je vous remercie d'avance, pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    >>> def convert(): 
    unite=input("choisir une unité entre km et mile\n") 
    dist=input("donner la valeur à convertir\n") 
    dist = float(dist) 
    while unite !=("km") & ("mile"): 
    unite=input("choisir une unité entre km et mile\n") 
    if unite=="km": 
    result = dist*0.621371 
    print(dist, "km = ", result, "miles\n") 
    elif unite=="mile": 
    result = dist/0.621371 
    print(dist, "miles = ", result, "km\n") 
     
    >>> convert() 
    choisir une unité entre km et mile 
    mile 
    donner la valeur à convertir 
    20 
    Traceback (most recent call last): 
    File "<pyshell#56>", line 1, in <module> 
    convert() 
    File "<pyshell#55>", line 5, in convert 
    while unite !=("km") & ("mile"): 
    TypeError: unsupported operand type(s) for &: 'str' and 'str'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    >>> def convert(): 
    unite=input("choisir une unité entre km et mile\n") 
    dist=input("donner la valeur à convertir\n") 
    dist = float(dist) 
    while unite != "km" and "mile": 
    unite=input("choisir une unité entre km et mile\n") 
    if unite=="km": 
    result = dist*0.621371 
    print(dist, "km = ", result, "miles\n") 
    elif unite=="mile": 
    result = dist/0.621371 
    print(dist, "miles = ", result, "km\n") 
     
    >>> convert()
    choisir une unité entre km et mile 
    mile // ça ne marche pas quand l'utilisateur tape mile 
    donner la valeur à convertir 
    45 
    choisir une unité entre km et mile 
    mile 
    choisir une unité entre km et mile 
    km 
    45.0 km = 27.961695 miles

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Python vous dit clairement ce qiu ne va pas.

    ne veut strictement rien dire en python ...
    Tout comme and ca agit sur 2 booléens, c'est à dire que ca combine deux valeurs que doivent chacune être True ou False. Là "km" comme "miles" n'est ni True ni False donc Python ne comprend rien...

    Ensuite l'indentation ....

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci, pour votre réponse.
    Du coup, que devrais je écrire, pour que ça marche?
    j'ai essayé également, sans succès: while unite != "km" & "mile":
    ps: Je suis débutant en python.

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while unite != "km" and unite != "mile":
    ou alors utiliser un tuple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while unite not in ("km", "mile") :

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup! tes deux propositions marchent très bien.
    Bonne soirée, et au plaisir!

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par gueustou Voir le message
    ps: Je suis débutant en python.
    Rappelle-toi un de ses principes: la simplicité est mieux que la complexité.

    Par exemple au lieu d'écrire une grosse fonction qui
    1. pose des questions (ce qui interdit alors de l'appeler en lui passant par exemple des données issues d'un fichier)
    2. écrit la réponse à l'écran (même remarque mais dans l'autre sens)
    3. fait deux calculs totalement distincts (oui ils ont un rappport l'un avec l'autre mais dans l'absolu ils sont bien différents)

    ben moi j'aurais écrit une fonction "mile2km()" qui reçoit un nombre sensé être des miles et qui renvoie le calcul "miles vers km" et une autre fonction "km2mile()" basée sur le même schéma mais dans l'autre sens.
    Et ensuite je laisse à l'appelant le soin de poser des questions (ou bien lire un fichier) et écrire des réponses (ou bien les envoyer ailleurs)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta proposition. Je suis d'accord, qu'il faut viser la simplicité.
    Bonne soirée!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecriture d'une matrice utilisant des boucles for !
    Par Mathematiker dans le forum Scilab
    Réponses: 4
    Dernier message: 26/02/2015, 21h02
  2. Utilisation des boucles for dans les tableaux VBA
    Par vodulci09 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/04/2012, 20h42
  3. Problème d'utilisation des boucles
    Par aniki93 dans le forum Débuter
    Réponses: 7
    Dernier message: 01/01/2012, 14h47
  4. Utilisation des boucles for
    Par _Michel dans le forum Débuter
    Réponses: 6
    Dernier message: 23/09/2008, 11h49
  5. macros utilisant des boucles imbriquées et sql :
    Par nostress dans le forum Macro
    Réponses: 10
    Dernier message: 22/05/2008, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo