Putting grade on the second line can be thought of as a “base case” or the starting point. Not only does it help write fewer conditionals, in more complicated functions you will need it to properly establish the control flow. It is just conceptual in this example as the variations of what can happen are simple.
In terms of print and return, you should consider what each action does, and what functions are used for. Printing essentially doesn’t do anything other than write on the terminal output… it doesn’t change any variable, or affect anything whatsoever.
When you return something from a function, you can use it for other purposes.
Return is vital for how programs are built.
Print usually serves to just help us track what’s happening. Entire programs can run without printing, while it will be rare to see a program that never uses return.