CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Question sur le type d'un input dans une boucle while (Python)

Paindaveine
Paindaveine
Niveau 5
17 décembre 2021 à 00:10:22

Bonsoir les kheys, je n'arrive pas à résoudre un problème car je ne comprends pas comment créer un input dans ma boucle qui puisse trigger 2 séquences différentes si c'est un int ou un str.
Voici l'ennoné de l'exo :
Écrire un programme qui additionne des valeurs naturelles lues sur entrée et affiche le résultat.
La première donnée lue ne fait 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 égale à -1, 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.

Et la bouse que j'ai écrite :
a = int(input())
somme = 0

if a == -1:
while type(b) == int:
somme = somme + b
b = input()
print(somme)

else:
for i in range(a):
somme = somme + a
a = int(input())
print(somme)

Paindaveine
Paindaveine
Niveau 5
17 décembre 2021 à 00:10:42

Merci d'avance <3

damsover
damsover
Niveau 5
17 décembre 2021 à 00:21:41

La première partie est simple, mais j'ai du mal à comprendre la deuxième.
Si la première valeur vaut -1, alors il faut entrer une liste de nombre qui se termine par le caractère F, mais que faire avec ces nombres, les sommer entre eux ?

Message édité le 17 décembre 2021 à 00:22:20 par damsover
Magrozz
Magrozz
Niveau 7
17 décembre 2021 à 00:22:49

Déjà balise code stp.
Puis là, tu regardes le type de b, alors que b n'existe même pas encore.

while type(b) == int:
    somme = somme + b
    b = input()
    print(somme)
damsover
damsover
Niveau 5
17 décembre 2021 à 00:34:45

Si la deuxième partie de l'énoncé demande bien de sommer jusqu'à F alors ceci devrait faire l'affaire.

firstValue = int(input())
sum = 0

if(firstValue>=0):
    for i in range(firstValue):
        sum += int(input())
        
if(firstValue==-1):
    enteredValue = input()
    while(enteredValue != "F"):
        if(enteredValue != "F"):
            sum += int(enteredValue)
        enteredValue = input()

print(sum)
damsover
damsover
Niveau 5
17 décembre 2021 à 00:39:42

Tu peux aussi le faire avec un break, c'est peut-être plus lisible :

firstValue = int(input())
sum = 0

if(firstValue>=0):
    for i in range(firstValue):
        sum += int(input())
        
if(firstValue==-1):
    while(True):
        enteredValue = input()
        if(enteredValue == "F"):
            break
        sum += int(enteredValue)

print(sum)
Paindaveine
Paindaveine
Niveau 5
17 décembre 2021 à 00:42:27

Merci à vous :ok:

Pseudo supprimé
Pseudo supprimé 17 décembre 2021 à 00:46:00

Mh le bon code impératif illisible :bave:

Message édité le 17 décembre 2021 à 00:46:11 par Pseudo supprimé
Quentaing
Quentaing
Niveau 6
19 décembre 2021 à 00:24:31

Le 17 décembre 2021 à 00:46:00 :
Mh le bon code impératif illisible :bave:

???

damsover
damsover
Niveau 5
19 décembre 2021 à 02:30:52

Le 19 décembre 2021 à 00:24:31 :

Le 17 décembre 2021 à 00:46:00 :
Mh le bon code impératif illisible :bave:

???

Il veut sûrement dire qu’on aurait pu utiliser de la programmation fonctionnelle, mais bon vu que je fais rarement de python j’ai écris en impératif

Message édité le 19 décembre 2021 à 02:31:24 par damsover
Quentaing
Quentaing
Niveau 6
19 décembre 2021 à 19:44:00

Le 19 décembre 2021 à 02:30:52 :

Le 19 décembre 2021 à 00:24:31 :

Le 17 décembre 2021 à 00:46:00 :
Mh le bon code impératif illisible :bave:

???

Il veut sûrement dire qu’on aurait pu utiliser de la programmation fonctionnelle, mais bon vu que je fais rarement de python j’ai écris en impératif

Oui ça fait 30 lignes à tout casser, pourquoi chouiner que "ouin ouin c'est illisible" ... Pourquoi faire utiliser la POO pour ce script tant qu'à faire :honte:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment