isdecimal() и друзья

Помните задачу «Мы уже приехали»? Для её решения некоторые начинающие программисты применяли строковые методы isdigit() и isnumeric(), чтобы узнать, содержит ли строка только цифровые символы. Выглядело это примерно так:

if time_split[0].isdigit():
...
if departure[0:2].isnumeric():
...

Но судя по тому, что использовались именно isdigit() и isnumeric(), а вот isdecimal() в решениях ни разу не был обнаружен, многие не понимают, в чём разница между этими 3 методами. Ведь на самом деле использовать в данной ситуации isdigit() и isnumeric() нельзя. Хотите узнать, почему? Тогда читайте пост до конца!