title: How to declare a byte array contains non-ascii characters without escape in python 3
body: <p>Here is an example I wrote in python2</p>
  
  <pre><code>#!/usr/bin/env python
  # -*- coding: utf-8 -*-
  from __future__ import print_function
  import sys, struct
  
  def pack(*s_list):
      return b"".join(struct.pack("&gt;I", len(s)) + s for s in s_list)
  
  if __name__ == "__main__":
      print(sys.version)
      a = pack("α", "привет мир", "±")
      b = b"\x00\x00\x00\x02α\x00\x00\x00\x13привет мир\x00\x00\x00\x02±"
      print(a == b)
  </code></pre>
  
  <p>And the converted code for python 3, </p>
  
  <pre><code>#!/usr/bin/env python3
  # -*- coding: utf-8 -*-
  import sys, struct
  
  def pack(*s_list):
      return b"".join(struct.pack("&gt;I", len(b)) + b for b in (s.encode() for s in s_list))
  
  if __name__ == "__main__":
      print(sys.version)
      a = pack("α", "привет мир", "±")
      b = b"\x00\x00\x00\x02α" + "α".encode() + b"\x00\x00\x00\x13" + "привет мир".encode() + b"\x00\x00\x00\x02" + "±".encode()
      print(a == b)
  </code></pre>
  
  <p>I notice use <code>b = b"\x00\x00\x00\x02α\x00\x00\x00\x13привет мир\x00\x00\x00\x02±"</code> in python 3 will get an exception <code>SyntaxError: bytes can only contain ASCII literal characters.</code>,
  so I had to escape them all or use many + like previous code.</p>
  
  <p>Is there a better way to declare a byte array contains non-ascii character in python3?</p>