title: Why does the order of parameters matter?
body: <p>So I've been self-learning Python, and creating Pygame ("Alien Invasion") in the book. While I was following step-by-step explanation, I realized the author has a certain order of parameters in every functions. 
  For example,</p>
  
  <pre><code>def check_bullet_alien_collisions(ai_settings, screen, stats, sb, ship, 
      aliens, bullets):
      """Respond to bullet-alien collisions."""
      # Remove any bullets and aliens that have collided.
      collisions = pygame.sprite.groupcollide(bullets, aliens, True, True)
      if collisions:
          for aliens in collisions.values():
              stats.score += ai_settings.alien_points * len(aliens)
              sb.prep_score()
  </code></pre>
  
  <p>I assumed that these parameters in this function works simultaneously, so the order didn't matter much, but obviously it does matter. But how do I figure out which comes first and last? How do I decide which should be first and last?</p>