title: Why must print()'s end argument be empty in order to facilitate proper "per-coordinate" character printing with the blessed python library?
body: <p>I've just recently started delving into the <code>blessed</code> library for Python. My intention here was to fill the entire screen with a character. <code>blessed</code> luckily features a method in the <code>Terminal</code> class named <code>move_xy()</code>, allowing me to print a character anywhere I want on the screen provided a row and column 'co-ordinate'. The following is what I've done:</p>
  <pre><code>import blessed
  import time
  import os
  
  
  terminal = blessed.Terminal()
  
  time.sleep(3)
  print(os.get_terminal_size())
  
  for i in range(0,238):
      for j in range(0,67):
          print(terminal.move_xy(i,j)+&quot;8&quot;)
          
  t = input('Stopgap')
  </code></pre>
  <p>238 and 67 are not arbitrary values; 237 and 66 are outputted by <code>os.get_terminal_size()</code>. Upon running the program in a full-screen terminal, I instead get characters printed diagonally across the screen. Setting it instead to <code>print(terminal.move_xy(i,j)+&quot;8&quot;, end = '')</code> fixes the issue</p>
  <p>This is what I find puzzling. Why should we specify <code>end = ''</code>? Isnt <code>terminal.move_xy(i,j)</code> moving us exactly where we want on screen? So why should the default value of the end argument, <code>\n</code> factor into this? If I am specifying exactly where to print, why should the end argument matter exactly? I am thoroughly confused</p>