This is because the “Axis” function that you bind to is called every frame, it is designed to constantly read the value of an axis, like a joystick, or a trigger, or even just forward and back buttons.
If you print the “v” value in your verticalMove function, you’ll notice that it reports 0 when you don’t have any keys pressed down, and then changes when you press one of the keys attached to that axis.
This is the intended functionality, if you want key-down and key-up style events, you’ll need to bind to something else (I’m not totally sure right now what those events are)