The answer is quite simple:
To run ordinary python code, you need an external (standalone) python interpreter. This interpreter would normally be called via build system (ctrl+b). The default build system of ST is made to run full automated build scripts which at most print some content to a console. Hence it does not provide any interface to send interactive user input to the backend (python in your case).
This is what you need an terminal for. The terminus plugin does exactly that. It can start an interactive console session within a ST view or a panel. It can act as alternative build system to run your open file with the correct interpreter backend allowing full user interaction (input and output).
You can't use ST's internal python interpreter to run ordinary scripts with console I/O. It is meant to drive the plugin infrastructure only.