title: Simplest async/await example possible in Python
body: <p>I've read many examples, blog posts, questions/answers about <code>asyncio</code> / <code>async</code> / <code>await</code> in Python 3.5+, many were complex, the simplest I found was probably <a href="https://stackoverflow.com/a/37345564/1422096">this one</a>.<br />
  Still it uses <code>ensure_future</code>, and for learning purposes about asynchronous programming in Python, I would like to see an even more minimal example, and what are the <em>minimal tools necessary</em> to do a basic async / await example.</p>
  <p>Question: is it possible to give a <strong>simple example showing how <code>async</code> / <code>await</code> works</strong>, by using only these two keywords + code to run the async loop + other Python code but no other <code>asyncio</code> functions?</p>
  <p>Example: something like this:</p>
  <pre><code>import asyncio
  
  async def async_foo():
      print(&quot;async_foo started&quot;)
      await asyncio.sleep(5)
      print(&quot;async_foo done&quot;)
  
  async def main():
      asyncio.ensure_future(async_foo())  # fire and forget async_foo()
      print('Do some actions 1')
      await asyncio.sleep(5)
      print('Do some actions 2')
  
  loop = asyncio.get_event_loop()
  loop.run_until_complete(main())
  </code></pre>
  <p>but without <code>ensure_future</code>, and still demonstrates how await / async works.</p>