Я тут немного потыкал Python 3.8 (а заодно и pyenv). Новых модулей и синтаксических бомбезных штук там ещё нет, но пару интересностей уже добавили:

  1. Можно распаковывать аргументы прям в строке return или yield:
    rest = (4, 5, 6)
    return 1, 2, 3, *rest

def h():
    rest = (4, 5, 6)
    yield 1, 2, 3, *rest```

2. `reversed` может переворачивать `dict`, который начиная с Python 3.6/3.7 сохраняет порядок вставки ключей:

```list(reversed({i: i+1 for i in range(5)}.items()))
# [(4, 5), (3, 4), (2, 3), (1, 2), (0, 1)]```

3. Появилась функция `math.dist` для вычисления Эвклидова расстояния между двумя точками:

```math.dist((1, 1), (2, 2))
# 1.4142135623730951```

4. А ещё функция `math.prod`, которая работает как `sum`, но только умножает. Например, вот факториал 5:

```math.prod(range(1, 6))
# 120```


5. Модуль `statistics` понемногу жирнеет. Появилась функция для вычисления среднегеометрического (корень произведения). Все эти функции нужны потому что они не теряют точности, когда это возможно:

```statistics.geometric_mean([2, 4, 8])
# 4.0

(2 * 4 * 8) ** (1/3)
# 3.9999999999999996```

Мелочи, а приятно.