Homework 4.2, come stampare lista_figli()?

T
Trasciatti (1400 points)
10 20 34
asked Dec 1, 2017 in Es2 by Trasciatti (1,400 points)
closed Dec 1, 2017 by Trasciatti
Come da domanda, non riesco a stampare in modo chiaro la lista dei figli. Ho provato con dei for, a mettere funzioni dentro la classe ma non c'è modo. Qualche suggerimento?
Edit: ho scoperto che usare una forma tipo print(a for a in something) non funziona, mentre un corrispettivo for a in something: print(a) funziona.
301 views
closed with note: Risolto

3 Answers

Best answer
split (8700 points)
15 59 79
answered Dec 1, 2017 by split (8,700 points)
selected Dec 1, 2017 by Trasciatti
print (self.lista_figli) appena sotto self.lista_figli, in __init__ , o print NodoTris(oggetto).lista_figli esterno alla classe
T
Trasciatti (1400 points)
10 20 34
commented Dec 1, 2017 by Trasciatti (1,400 points)
questa è l'unica cosa che sembra funzionare, grazie
giorgio.belli (10140 points)
17 74 98
answered Dec 1, 2017 by giorgio.belli (10,140 points)
Ciao, potresti crearti un metodo __str__ nella classe in modo tale che quando pero ogni figlio vai a fare print(figlio) ti stampi un format da te scelto nel metodo sopra.

Se non riesci fammi sapere.
T
Trasciatti (1400 points)
10 20 34
commented Dec 1, 2017 by Trasciatti (1,400 points)
str stampa solo le stringhe, per le liste c'è repr che comunque non mi sta funzionando
giorgio.belli (10140 points)
17 74 98
commented Dec 1, 2017 by giorgio.belli (10,140 points)
potresti convertire la lista in stringa con il costruttore str()
T
Trasciatti (1400 points)
10 20 34
commented Dec 1, 2017 by Trasciatti (1,400 points)
convertendola in stringa rimane qualcosa di incomprensibile (main object at ecc...)
giorgio.belli (10140 points)
17 74 98
commented Dec 1, 2017 by giorgio.belli (10,140 points)
bhe non volevo dirti esattamente cosa stampare ma fartici arrivare da solo. Pensa a cosa ti serve di stampare per ogni nodo ( la sua informazione piu significativa) e che ti puo servire per capire se i nodi si stanno formando adeguatamente.
T
Trasciatti (1400 points)
10 20 34
commented Dec 1, 2017 by Trasciatti (1,400 points)
so bene cosa voglio stampare, ma qualcunque modo ho provato non va, compresi __str__ e __repr__, altrimenti non chiedevo. il fatto è che se stampo il nome della lista figli, scorrendola, esce fuori object at 0x0000, è questo che non capisco. la lista sono sicura sia piena, visto che almeno la sua lunghezza riesco a stamparla
giorgio.belli (10140 points)
17 74 98
commented Dec 1, 2017 by giorgio.belli (10,140 points)
Mi spiace ma non riesco a capire quale problema hai. Se printi il nodo è normale che ti venga mostrato il suo indirizzo di memoria, ma se printi il la variabile nome dovrebbe mostrarti il contenuto.
T
Trasciatti (1400 points)
10 20 34
commented Dec 1, 2017 by Trasciatti (1,400 points)
grazie per le risposte comunque, sarà sbagliato da qualche altra parte (?)
giorgio.belli (10140 points)
17 74 98
commented Dec 1, 2017 by giorgio.belli (10,140 points)
Si, credo sia sbagliato da qualche altra parte. Mi spiace di non poterti aiutare in altro modo, Spero tu risolva.
answered Dec 1, 2017 by Anon1 (9,920 points)
Penso che intendi di stampare l'albero completo, a partire da una radice, giusto?

Io ho risolto creandomi a parte alcune funzioni che, date una radice di un albero, stampano la griglia della radice (formattata) e poi tutti i figli e sottofigli, aggiungendo degli spazi a sinistri per ogni livello annidato.
T
Trasciatti (1400 points)
10 20 34
commented Dec 1, 2017 by Trasciatti (1,400 points)
non per forza l'albero completo, voglio solo vedere se le liste che inserisco in lista_figli sono corrette, ma non c'è modo di visualizzarle se non prima di metterle in lista_figli