Listy w Pythonie są wewnętrznie reprezentowane w postaci tablic. Dodawanie elementów metodą append wiąże się z okresową realokacją pamięci i przeniesieniem wszystkich elementów. Jeżeli docelowy rozmiar listy jest znany, można ją wstępnie zaalokować, np.:
xs = [None] * 100
Korzystanie z wycinków list (ang. slice), wiąże się ze stworzeniem ich kopii (alokacją pamięci i skopiowaniem odpowiedniego fragmentu listy).
Interpreter Pythona ogranicza maksymalną liczbę wywołań funkcji na stosie, co chroni przed jego przepełnieniem w przypadku nieskończonej rekurencji. Wartość tego ograniczenia można uzyskać przy użyciu funkcji sys.getrecursionlimit(). Rezultatem jego przekroczenia będzie przerwanie działania programu.
W przypadku algorytmów rekurencyjnych, domyślne ograniczenie (zwykle 1000) może być zbyt małe. Można je zmienić przy użyciu funkcji sys.setrecursionlimit(limit), gdzie limit będzie nową wartością ograniczenia.
Do pomiaru czasu wykonania fragmentu kodu można także użyć funkcji time.process_time() (dostępnej od wersji 3.3 Pythona), która zwraca czas procesora wykorzystany przez aktualny proces:
import time
start = time.process_time() # pobierz aktualny czas
my_function()
stop = time.process_time()
print('Czas wykonania w sekundach:', stop - start)
Funkcja ta nie uwzględnia czasu, gdy proces został uśpiony (system operacyjny przydzielił czas innemu procesowi), dzięki czemu na pomiary nie będą miały wpływu inne uruchomione programy.
W takcie wykonywania mierzonego kodu może się uruchomić odśmiecanie pamięci (ang. garbage collection). Czas wykonania odśmiecania zostanie uwzględniony w pomiarze, dlatego przed rozpoczęciem pomiaru należy wyłączyć odśmiecanie pamięci:
import gc
gc_old = gc.isenabled() # pobierz aktualny stan odśmiecania
gc.disable() # wyłącz odśmiecanie
# pomiar czasu wykonania...
if gc_old: gc.enable() # przywróć pierwotny stan odśmiecania
Do tworzenia wykresów można użyć biblioteki Matplotlib (https://matplotlib.org). Biblioteka ta oferuje dwa zestawy funkcji (API): object-oriented i pyplot, z których ten drugi daje mniejsze możliwości, ale jest prostszy w użyciu. Aby utworzyć plik PNG z wykresem, należy zamiast funkcji show() użyć savefig('plik.png').
Do wygenerowania losowej liczby całkowitej można użyć funkcji random.randint(a, b), gdzie a i b określają przedział (domknięty), z którego generowana będzie liczba. Np. wywołanie:
random.randint(0, 1000)
zwróci liczbę z zakresu od 0 do 1000.
Do wybrania losowej wartości z podanej listy można użyć funkcji random.choice(lista). Np. wywołanie:
random.choice(['A', 'G', 'C', 'T'])
zwróci jeden z czterech napisów.