Simple Printing Arrows

Pyth, 23 bytes

May or may not be valid, based on the answer to this comment. Regardless, I found this neat, and, if it is invalid, the other Pyth answers are also invalid. ;) Well, it's valid, because I apparently missed the blatantly obvious. :/

EDIT: I WON!!!! YESSS!!!! First time ever! :D

j+_J_Wqz\r.e+*dkb*\*QtJ

Live demo.


Pyth, 27

j<tQ_Wqz\l++Jm+*\ d\*Q_PJtJ

Try it online

The basic idea here is to build one string that, for say 5, looks like this:

*
 *
  *
   *
    *
   *
  *
 *
*
 *
  *
   *
    *

And then flip it upside down if we get l as our input. Then we take all but the last input-1 lines of this string and print it out.


Python 2, 81 79 bytes

c=input()
r=1
l=0
exec"print' '*(%sabs(c-r))+'*';r+=1;"%("c+~"*input())*(2*c-1)

Might still be golfable, but we'll see :)