Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Homework 4.2, come stampare lista_figli()?

T
Trasciatti (1400 points)
13 20 34
in Es2 by (1.4k points)
closed by
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.
597 views
closed with the note: Risolto

3 Answers

Best answer
split (8700 points)
21 59 79
by (8.7k points)
selected by
print (self.lista_figli) appena sotto self.lista_figli, in __init__ , o print NodoTris(oggetto).lista_figli esterno alla classe
T
Trasciatti (1400 points)
13 20 34
by (1.4k points)
questa è l'unica cosa che sembra funzionare, grazie
giorgio.belli (10140 points)
23 74 98
by (10.1k 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)
13 20 34
by (1.4k points)
str stampa solo le stringhe, per le liste c'è repr che comunque non mi sta funzionando
giorgio.belli (10140 points)
23 74 98
by (10.1k points)
potresti convertire la lista in stringa con il costruttore str()
T
Trasciatti (1400 points)
13 20 34
by (1.4k points)
convertendola in stringa rimane qualcosa di incomprensibile (main object at ecc...)
giorgio.belli (10140 points)
23 74 98
by (10.1k 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)
13 20 34
by (1.4k 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)
23 74 98
by (10.1k 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)
13 20 34
by (1.4k points)
grazie per le risposte comunque, sarà sbagliato da qualche altra parte (?)
giorgio.belli (10140 points)
23 74 98
by (10.1k points)
Si, credo sia sbagliato da qualche altra parte. Mi spiace di non poterti aiutare in altro modo, Spero tu risolva.
by (9.9k 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)
13 20 34
by (1.4k 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