Afficher des valeurs dans les files.

Fermé
futura2015 Messages postés 40 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 2 avril 2020 - Modifié le 12 mai 2017 à 08:35
_Ritchi_ Messages postés 21287 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 30 octobre 2024 - 13 mai 2017 à 19:31
Bonjour,

Dans mon livre python pour les nuls j'ai l'exemple de file suivant :


import queue

MyQueue = queue.Queue(3)

print(MyQueue.empty())
input("Appuyez sur une touche quand vous êtes prêt...")

MyQueue.put(1)
MyQueue.put(2)
print(MyQueue.full())
input("Appuyez sur une touche quand vous êtes prêt...")

MyQueue.put(3)
print(MyQueue.full())
input("Appuyez sur une touche quand vous êtes prêt...")

print(MyQueue.get())
print(MyQueue.empty())
print(MyQueue.full())
input("Appuyez sur une touche quand vous êtes prêt...")

print(MyQueue.get())
print(MyQueue.get())

queue.Queue étant une classe je ne peux pas en afficher les valeurs.

y a t-il un moyen de créer une variable qui m'affichera les valeurs à mesure qu'elles sont ajoutées ou supprimées, avec quel argument puisque queue.Queue est une
classe ? pour l'instant je ne connais que la boucle for qui peut faire ça mais on ne peut pas mettre de boucle for dans les files.

3 réponses

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
12 mai 2017 à 09:13
Bonjour,

Vous parlez de quelles valeurs ?
Celles entrées par le clavier ?

Elles sont renvoyées par la fonction « input ».
0
futura2015 Messages postés 40 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 2 avril 2020
13 mai 2017 à 08:27
Oui tout à fait mais je ne sais pas comment les afficher au fur et à mesure qu'elles sont ajoutées ou supprimées. Sachant que je ne peux pas faire de boucle for dans les files.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
13 mai 2017 à 09:55
Si c'est juste les fonctions input que tu souhaites afficher, alors il te suffit de faire un « print » dessus :
print(input("Appuyez sur une touche quand vous êtes prêt..."))
0
futura2015 Messages postés 40 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 2 avril 2020
Modifié le 13 mai 2017 à 16:04
Non ce sont les valeurs en l’occurrence dans le code ça ferait

1
2
puis on rajoute 3 donc

1
2
3

puis on enlève le 1

2
3
etc...

Bien sur ça marche avec des prints mais si on a un grand nombre de valeurs ça va être fastidieux.
0
_Ritchi_ Messages postés 21287 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 30 octobre 2024 6 077
13 mai 2017 à 19:31
Bonjour

Tu peux créer une liste que tu gères en parallèle de ta pile FIFO:
import queue

MyQueue = queue.Queue(3)
MyList = []

print("la FIFO est-elle vide? ", MyQueue.empty())
input("Appuyez sur une touche quand vous êtes prêt...")

print("Ajoutons 1 à la FIFO ")
MyQueue.put(1)
MyList.append(1)
print("Ajoutons 2 à la FIFO ")
MyQueue.put(2)
MyList.append(2)
print("La FIFO est-elle pleine? ", MyQueue.full())
input("Appuyez sur une touche quand vous êtes prêt...")

print("Listons le contenu de la FIFO:", MyList)

print("Ajoutons 3 à la FIFO")
MyQueue.put(3)
MyList.append(3)

print("La FIFO est-elle pleine? ", MyQueue.full())
input("Appuyez sur une touche quand vous êtes prêt...")

print("Dépilons la FIFO: ")
print(MyQueue.get())
print(MyList.pop(0))
print("la FIFO est-elle vide? ", MyQueue.empty())
print("La FIFO est-elle pleine? ", MyQueue.full())
input("Appuyez sur une touche quand vous êtes prêt...")

print("Dépilons la FIFO: ")
print(MyQueue.get())
print(MyList.pop(0))
print("Dépilons la FIFO: ")
print(MyQueue.get())
print(MyList.pop(0))


Et pour éviter les oublis de mettre à jour la liste alors que tu as mis à jour la pile FIFO, crée une fonction qui empile et une autre qui dépile:
import queue

MyQueue = queue.Queue(3)
MyList = []


def empile(fifo, liste, valeur):
    fifo.put(valeur)
    liste.append(valeur)

def depile(fifo, liste):
    fifo.get()
    return liste.pop(0)

print("la FIFO est-elle vide? ", MyQueue.empty())
input("Appuyez sur une touche quand vous êtes prêt...")

print("Ajoutons 1 à la FIFO ")
empile(MyQueue, MyList, 1)
print("Ajoutons 2 à la FIFO ")
empile(MyQueue, MyList, 2)

print("La FIFO est-elle pleine? ", MyQueue.full())
input("Appuyez sur une touche quand vous êtes prêt...")

print("Listons le contenu de la FIFO:", MyList)

print("Ajoutons 3 à la FIFO")
empile(MyQueue, MyList, 3)

print("La FIFO est-elle pleine? ", MyQueue.full())
input("Appuyez sur une touche quand vous êtes prêt...")

print("Dépilons la FIFO: ")
print(depile(MyQueue, MyList))

print("la FIFO est-elle vide? ", MyQueue.empty())
print("La FIFO est-elle pleine? ", MyQueue.full())
input("Appuyez sur une touche quand vous êtes prêt...")

print("Dépilons la FIFO: ")
print(depile(MyQueue, MyList))

print("Dépilons la FIFO: ")
print(depile(MyQueue, MyList))


Ritchi
0