Języki programowania w różnym stopniu opierają się na operacjach związanych z wyrażeniami. Główną rolą wyrażenia jest obliczanie nowych wartości, np.

[10, 20] + [30]   # [10, 20, 30]

0 < x <= 5       # True, gdy x należy do zbioru liczb od 1 do 5 

Python jest językiem programowania, który cechuje wysoki poziom ekspresji.

Jednak zbyt duża ekspresja wyrażeń może wywoływać złe skojarzenia z powodu tzw. "jednolinijkowców", czyli fragmentów kodu, które łączą tak wiele operacji w jednej linii, że z trudem przychodzi ich zrozumienie.

Ekspresja wyrażeń oczywiście ma też swoje plusy. Na przykład, czasem trudno jest dobrać odpowiednią nazwę dla funkcji, która mogłaby wyraźnie podkreślić jej znaczenie. Jeśli nazwa mówi niewiele, to tworzenie funkcji może okazać się bezzasadne. W takim przypadku lepszym rozwiązaniem może okazać się zapis kodu w postaci wyrażenia, bez pośredniej nazwy, która tak naprawdę nic nie wnosi.

Dla przykładu poniższy fragment, opisuje regułę z gry Chińczyk, gdzie wyjście pionka z bazy wymaga wylosowania liczby 6 spośród 3 możliwych rzutów:

any(random.randint(1, 6) == 6 for _ in range(3))

Kod wyrażeń charakteryzuje duża zwięzłość, a przede wszystkim czytelność. Zrozumienie kodu nie wymaga przeskoków w jego czytaniu, ponieważ cała operacja znajduje się w jednym miejscu.