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 :

Boucle while et for, str et int


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2020
    Messages : 1
    Par défaut Boucle while et for, str et int
    Bonjour, j'ai un problème afin d'identifier l'entrée d'un input() soit en str ou en int afin de stopper un programme quand une lettre est saisie.
    En gros, je veux que la première donnée lue ne fasse pas partie des valeurs à sommer. Elle détermine si la liste contient un nombre déterminé à l’avance de valeurs à lire ou non :
    si cette valeur est un nombre positif ou nul, elle donne le nombre de valeurs à lire et à sommer ;
    si elle est négative, cela signifie qu’elle est suivie d’une liste de données à lire qui sera terminée par le caractère "F" signifiant que la liste est terminée.

    Mon code qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    n=input()
    data=0
     
    while n!= 'F':
        n=int(n)
        if n>=0:
            for i in range(n):
                data=data+int(input ())
            print(data)
        if n<0:
            data=data+int (input ())
    else:
        print(data)
    Mon problème réside dans le fait que lorsque je tape F, mon code bug car il pense que c'est cela doit etre un int et non str.

    j'ai beau retourner les choses dans ma tête, je bloque !
    Pouvez-vous m'aiguiller svp ??

    Merci !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Salut,

    Citation Envoyé par Alloeks Voir le message
    j'ai beau retourner les choses dans ma tête, je bloque !
    à quoi sert votre while n!= 'F':, soit n est positif et vous lisez n données soit n est négatif et vous lisez tant que n est différent de 'F'.
    Si le code ne raconte pas la même histoire que ce que vous exprimez:
    Citation Envoyé par Alloeks Voir le message
    si cette valeur est un nombre positif ou nul, elle donne le nombre de valeurs à lire et à sommer ;
    si elle est négative, cela signifie qu’elle est suivie d’une liste de données à lire qui sera terminée par le caractère "F" signifiant que la liste est terminée.
    ben, même si Python accepte de le faire fonctionner, probable que çà ne le fait pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre Expert

    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
    Par défaut
    Citation Envoyé par Alloeks Voir le message
    En gros, je veux que la première donnée lue ne fasse pas partie des valeurs à sommer. Elle détermine si la liste contient un nombre déterminé à l’avance de valeurs à lire ou non :
    si cette valeur est un nombre positif ou nul, elle donne le nombre de valeurs à lire et à sommer ;
    si elle est négative, cela signifie qu’elle est suivie d’une liste de données à lire qui sera terminée par le caractère "F" signifiant que la liste est terminée.
    Votre phrase est déjà quasiment un pseudo algorithme que vous ne traduisez pas correctement en code.
    Si je regarde gros grain, ce que je vois c'est en premier lire une première saisie, puis en fonction de la nature de cette première saisie faire une somme d'une certaine manière.

    Donc ca veut dire que je doit voir qqch qui a cette structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if premiere_saisie < 0 :
        somme_facon_1
    else :
        somme_facon_2
    et donc les while pour faire les somme, vous en aurez 2 (un pour chaque façon de préciser les termes de la somme) et surtout il seront dans le bloc if et pas l'inverse !

Discussions similaires

  1. [Python 3.X] TypeError: unsupported operand type(s) for //: 'str' and 'int'"
    Par JOHN LOU dans le forum Général Python
    Réponses: 3
    Dernier message: 19/10/2019, 20h05
  2. Faire une boucle while ou for en rich:faces
    Par DevServlet dans le forum JSF
    Réponses: 4
    Dernier message: 27/10/2009, 14h21
  3. Boucle while ou for utilisée avec lame pour les mp3
    Par figarojuju dans le forum Linux
    Réponses: 6
    Dernier message: 09/09/2008, 20h51
  4. Problème condition d'arrêt boucles while et for
    Par Clairette29 dans le forum MATLAB
    Réponses: 2
    Dernier message: 25/06/2008, 11h51
  5. boucle while et for
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 06/04/2006, 09h48

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