Funkcja Pythona zwraca None, niejasne dlaczego

Jestem całkiem nowy w pythonie i trafiam na problem, którego nie potrafię wyjaśnić. Próbowałem przeszukać odpowiedzi na forum tutaj, ale to, co znalazłem, nie pasuje do mojej sytuacji. Wydaje mi się, że brakuje mi czegoś bardzo podstawowego, ale tego nie widzę (oczywiście ...)

Ten kod działa tak, jak oczekuję:

<code>import string

mults = [1,2,3,4,6,7,9,10,12,15,16,19,21,22,24]

def factor_exp(lst):
    if lst[-1] == 1:
        lst.pop()
        return lst+[1]
    if lst[-1] == 2:
        lst.pop()
        return lst+[1,1]
    else:
        return "Should never get here"

print factor_exp([1])
print factor_exp([2])
print factor_exp([1,2])
</code>

To zwraca:

<code>>>> 
[1]
[1, 1]
[1, 1, 1]
</code>

Tego właśnie chcę.

Myślałem, że użycie funkcji dodawania i rozszerzania na liście wewnątrz funkcji również zadziała. Jeden „dodatek” został dodany w dolnej części kodu.

<code>import string

mults = [1,2,3,4,6,7,9,10,12,15,16,19,21,22,24]

def factor_exp(lst):
    if lst[-1] == 1:
        lst.pop()
        return lst+[1]
    if lst[-1] == 2:
        lst.pop()
        return lst.append([1,1])
    else:
        return "Should never get here"


print factor_exp([1])
print factor_exp([2])
print factor_exp([1,2])
</code>

Ale to wraca:

<code>>>> 
[1]
None
None
</code>

Dlaczego pojawia się „Brak”? Z góry dziękuję za wszelką pomoc lub spostrzeżenia.

questionAnswers(1)

yourAnswerToTheQuestion