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

Do you need help?

errore di return nell homework 2

nick98 (700 points)
4 12 14
in HW2 obbligatorio by (700 points)
recategorized by
buonasera, lavorando sull homework 2 quando eseguo i test mi ritorna questo errore in 4 test su 17, ovvero che il mio return non è una lista anche se il mio unico return è effettivamente una lista e non ho altri modi di fare tornare al mio codice qualcosa di diverso da una lista.sapete come risolvere?

self = <test_01.Test testMethod=test_json4_00002_test_1000000_15_eng>
g1 = ['heartier', 'blenheim', 'forge', 'dopier', 'russell', 'majoring', ...]
g2 = ['seawards', 'draggles', 'goodman', 'stranglehold', 'obtention', 'revolutions', ...]
g3 = ['ragouts', 'fireplaces', 'vegetated', 'abbey', 'defrayable', 'senior', ...]
g4 = ['devolve', 'knelt', 'acclimatization', 'absenteeism', 'supposedly', 'hose', ...], hand_size = 15
num_letters = 1000000, expected = [408875, 407575, 406780, 408854]

    @file_data("test_1M.json")
    def test_json4(self, g1, g2, g3, g4, hand_size, num_letters, expected):
>       return self.do_test(g1, g2, g3, g4, hand_size, num_letters, expected)

test_01.py:74:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_01.py:39: in do_test
    self.assertEqual(type(result), list,
E   AssertionError: <class 'NoneType'> != <class 'list'> : The output type should be: list
E   [Il tipo di dato in output deve essere: list]
345 views
closed with the note: solved

3 Answers

Best answer
C
ChristianSt (1790 points)
3 9 25
by (1.8k points)
selected by
Sembra che la funzione, per qualche motivo non sia riuscita a costruire una lista e abbia ritornato None, controlla come crea la lista e vedi se ci sono casi in cui non la crea. Cio' puo' capitare quando per esempio metti nel return il rsultato di una funzione e quest'ultima per vari motivi, (magari ci si dimentica di mettere un return a fine funzione), non ti ritorna niente.
nick98 (700 points)
4 12 14
by (700 points)
il problema è che la lista la creo all inizio del programma, quindi anche se non facesse nessun calcolo dovrebbe comunque ritornare una lista
1
1914925 (3070 points)
2 4 23
by (3.1k points)
Prova a creare una lista con quattro zeri all'inizio, nel caso tu creassi una lista vuota all'inizio. E vedi se magari in questi casi invece di none ritorna la lista con solo i quattro zeri.
g
giacomo_venturini (6680 points)
3 6 40
by (6.7k points)
Potrebbe essere che il codice s'interrompe senza arrivare al return della lista, soprattutto se questo return è dentro una condizione, e quindi non c'è effettivamente nulla di ritornato dalla funzione nel caso di condizione non verificata.
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
controlla di aver eseguito in ogni caso la istruzione return.

Se non viene eseguita la funzione torna None
nick98 (700 points)
4 12 14
by (700 points)
ok grazie , c' era un caso in cui il ciclo si interrompeva per un errore di sintassi e quindi non ritornava alcun valore.