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

HELP Python 3.5 afficher les doublons d'une boucle (liste)

Mustang-Shelby
Mustang-Shelby
Niveau 9
25 octobre 2015 à 23:32:08

Bonsoir j'ai besoin d'aide j'ai cherché partout mais j'ai pas trouver...

Je suis sur python : quand quelqu'un rentre une suite de nombres, et veut arrêter, la personne entre 0. Et le programe donne le plus grand nbre et sa position. Mais si y a plusieurs fois la plus grande valeur, comment je fais pour afficher toutes celle qui sont les plus grandes et leur poisiton

Genre
1
2
3
3
0

Et ça afficherait " Les plus grands nombres sont 3 et 3 aux positions respectives 3 et 4. "

??

J'ai ça :

max=0
p=0
j=0
N=1

while N!=0 :
j=j+1
N=(int(input("Entrez un nombre (ou 0 pour arrêter):")))
if j==1 or N>m :
max=N
p=j
if N==0 :
print("Le nombre le plus grand est : ",max)
print("Il a été saisi en position numéro ",p)

Je sais que si je mets "N>m" ça mettra la première valeur la plus grande parmis les doublons,
Si je mets "N>=m" ça mettra la derniere.

Mais comment les mettre toutes ?

Merci, et sorry pour les fautes je suis sur protable.

TintinMage
TintinMage
Niveau 10
25 octobre 2015 à 23:53:17

Mets ton code sur pastebin

Tu devrais utiliser les listes

Message édité le 25 octobre 2015 à 23:57:52 par TintinMage
Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 00:17:36

Hein ?

tsez93
tsez93
Niveau 10
26 octobre 2015 à 04:00:28

Salut
Ton code est illisible, c'est pourquoi pastebin t'a été conseillé. Sinon tu peux utiliser la balise <code>.
As-tu vu les listes en Python ?

Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 14:24:44
max=0
p=0
j=0
N=1

while N!=0 :
   j=j+1
   N=(int(input("Entrez un nombre (ou 0 pour arrêter):")))
   if j==1 or N>m :
      max=N
      p=j
if N==0 :
   print("Le nombre le plus grand est : ",max)
   print("Il a été saisi en position numéro ",p)

Je sais comment extraire un élément d'une liste (L[i]), comment afficher la longueur d'une liste (len(L)), supprimer des doublons (je l'ai vu sur un topic récent) avec set((liste)...

TintinMage
TintinMage
Niveau 10
26 octobre 2015 à 15:18:14

Tu ajoutes un élément dans une liste avec maListe.append(élément)
Ensuite tu parcours la liste et tu compares avec le max que t'as déjà calculé

Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 15:44:15

Le 26 octobre 2015 à 15:18:14 TintinMage a écrit :
Tu ajoutes un élément dans une liste avec maListe.append(élément)
Ensuite tu parcours la liste et tu compares avec le max que t'as déjà calculé

Mais comment raire pour le sortir ?

Du coup je ferais un

for i in L:
     if L[i] == max:
         print (L[i])

Sauf que moi je veux mettre dans la continuité de la phrase :

Genre
print("Le nombre le plus grand est : ",max) print("Il a été saisi en position numéro ",p) print("Les doublons sont aussi", L[i], "saisis en position", range(L[i]))

C'est possible ?

Message édité le 26 octobre 2015 à 15:48:05 par Mustang-Shelby
dark_drow
dark_drow
Niveau 15
26 octobre 2015 à 17:01:57

tout est possible :noel:
essaye de chercher en pseudocode ce que tu pourrais faire avec une liste

Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 17:39:58

MMM :(

Parcourir la liste des nombres entrés
Prendre les plus grands (doublons) et donner leur position.

:hap:

TintinMage
TintinMage
Niveau 10
26 octobre 2015 à 17:47:17
for i, item in enumerate(L):
Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 18:57:35

Le 26 octobre 2015 à 17:47:17 TintinMage a écrit :
for i, item in enumerate(L):

M'ok, du coup ça sort tous les termes de L ?

TintinMage
TintinMage
Niveau 10
26 octobre 2015 à 19:10:33

Oui, tu compares item avec max et t'as i comme position

Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 19:27:23

Et je fais print L[i] si item == max ?

TintinMage
TintinMage
Niveau 10
26 octobre 2015 à 19:41:39

Oublie le L[i]
Tu as item qui représente la valeur de l'élément et i qui représente la position de l'élément, donc tu n'as qu'à comparer la valeur au max et afficher la postion

Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 19:43:08

Ah donc
if item == max: print i

??

TintinMage
TintinMage
Niveau 10
26 octobre 2015 à 20:11:38

Puisque t'as essayé je te montre comment faire

N = 1
L = []

while N != 0:
    N = int(input('Entrez un nombre (ou 0 pour arreter) : '))
    L.append(N)

M = max(L)
print('Le nombre le plus grand est : ', M)

for i, value in enumerate(L):
    if value == M:
        print("Il a ete saisi en position numero : ", i)
Message édité le 26 octobre 2015 à 20:12:37 par TintinMage
Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 20:55:30

Okay du coup, on récapitule
enumerate permet de parcourir les éléments d'une liste

" while N != 0: N = int(input('Entrez un nombre (ou 0 pour arreter) : ')) L.append(N) M = max(L) print('Le nombre le plus grand est : ', M) " permet de faire la boucle normale qui donne le plus grand nombre

" for i, value in enumerate(L): if value == M: print("Il a ete saisi en position numero : ", i) " permet de donner la position de tous les plus grands nombres

Mais le value in signifie quoi ?

Et du coup c'est pas nécessaire de donner M=0 dans les variables de départ ?

Merci.

Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 21:01:15

Ah value c'est une variable.

Là je veux faire un dernier truc : si il y a plusieurs value je veux mettre "ses doublons sont en position". S'il n'y en a qu'une seule, je veux mettre "son unique doublon est en position"

Je réfléchis

TintinMage
TintinMage
Niveau 10
26 octobre 2015 à 21:13:11

value, item c'est juste des noms de variable
Sinon enumerate permet d'avoir l'index de l'élément, t'aurais pu parcourir la liste avec un for value in L: mais t'auras pas la position (y'a L.index(value) qui retourne juste la position de la première occurrence)
La fonction max(liste) cherche la valeur maximal dans une liste
Ça sert à rien d'initialiser M au début
L.count(M) retourne le nombre d'occurrences de M dans la liste

Message édité le 26 octobre 2015 à 21:14:05 par TintinMage
Mustang-Shelby
Mustang-Shelby
Niveau 9
26 octobre 2015 à 21:19:20

Okay, mais c'est quoi une occurence ? :question:

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