Zacząłem się uczyć podstaw Pythona i mam problem bo wszystko działa inaczej niż w językach, w których pisałem wcześniej(c,c++,pascal itp.) co nie znaczy że mniej mi się podoba ale trudniej się przestawić. Mam taki oto kodzik:
lista = string.split(';')
print( lista )
print( lista.append('E') )
Na pierwszym wyjściu mam swoją nowo utworzoną listę [‘A’, ‘C’, ‘B’, ‘D’] a na drugim napis None, tak jest nie tylko z funkcją append() ale np. też z funkcją sort().
Znalazłem w dokumentacji Pythona takie objaśnienie:
I nie wiem jak mam to rozumieć, tzn. rozumiem co tutaj jest napisane ale w takim razie nie potrafię pojąć po co mi te funkcje skoro nie mogę wyświetlić ich wyniku.
Te funkcje nie służą do wyświetlania wyników, tylko do zmiany obiektu. Zgodnie z dokumentacją zwracają None. Na dole jest przypis, który wyjaśnia różnicę między niektórymi językami programowania:
Każda funkcja / metoda w Pythonie zwraca “coś”. Jeśli nie zwraca nic konkretnego (brak słowa return lub występuje samo słowo return, które mówi, że w tym miejscu następuje wyjście z funkcji) to domyślnie zwraca None.
Przykład:
>>> def aaa(x):
x += 1
>>> a = aaa(3)
>>> a
>>> a
>>> print(a)
None
>>> import math
>>> def bbb(x):
if x < 0:
return
else:
return math.sqrt(x)
>>> b = bbb(-1)
>>> b
>>> print(b)
None
>>> b = bbb(9)
>>> b
3.0
>>> print(b)
3.0