Специально для абсолютных новичков

Сегодня начинающий студент спросил меня: Роб, как мне добавить таймер обратного отсчета в мою программу на Python, чтобы я мог ограничить время ответа пользователя?»

Довольно простой пример использования, который должен получить довольно четкий ответ на любом современном языке, но не для Python. Несмотря на то, что asyncio является официальной частью стандартной библиотеки, добавленной в версии 3.4, код, который ее использует, совсем не прост и не интуитивно понятен (погуглите сами), так что простота использования Python служит оправданием для обучения новичков.

Между тем, в стране JavaScript:

setTimeout( () => alert("Ring!"), 3000 )

И в земле Го:

go func() {
      time.Sleep(3 * time.Second)
      fmt.Println("Ring!")
}()

В наши дни несколько вещей происходят одновременно, особенно что-то такое простое, как будильник, который работает на все. Python просто не доставляет. По сравнению с этим подход asyncio граничит с нелепостью.

Я буду продолжать публиковать открытия по мере того, как они органично появляются от учеников, которые их воспитывают. (Я никогда не забуду тот день, когда весь мой класс Java восстал против Java в середине, изучив JavaScript и Python до этого. Они попросили выучить Go и до сих пор кодируют на нем. Удивительно, как много может даже новичок. определить плохой языковой дизайн.)