The BGE's logic (describing behavior within your game) is based on SCA (sensors-controllers-actuators).
It is an event system that let you describe WHEN happens WHAT.
It will be configured via logic bricks. The build-in bricks allow easy configuration of static behavior. The majority of operations can be done with build-in logic bricks.
There is still a huge amount of logic that requires dynamic processing (e.g. find the closest object in a set of several objects). This is very hard with the build-in logic bricks. Therefore you can create your own custom bricks. You describe the behavior with Python. This allows you to use the full power of this programming language (but you need to learn it first).
But there's two ways two ways I can do this:
Knowing the facts from above will hopefully show you - there are no two ways. It is the same way. You can exchange some of the two options (e.g. you can create a custom brick to do what build-in bricks already do and you can use several build-in bricks to do what Python code can do). Quite a lot can't be interchanged and you have to use Python or the Logic bricks unless you choose a complete different design.
Are all of Pythons(and really all coding languages) logic represented in three drop-down lists of Sensors, Actuator, and Controllers?
For unknown reason you can only create custom controllers. This means you need to let the controller act as actuator and/or sensor (inefficient). It can act as all three brick types at the same time.
Be aware it is still a controller. It will be executed with all other controllers (after the sensor evaluation and before the actuator run).
Some people tend to avoid logic bricks and try to implement an own event system. This is not recommended. When you are not happy with the framework the game engine provides you might better change to a game engine that fits your needs better. The BGE is no "script only" engine, nor a "configuration only" one.
- Learn to use the bricks
- Learn to use Python
- Learn to judge when to use what (and use what you think is correct)
I hope it helps