Trying to understand pull-up resistors

Maybe I can simplify your understanding.

Imagine a pipe of water, we can have current/voltage, which is the water flowing, when the water stops flowing, there's no more water/current.

You supply the water into the pipe, now at the other end we have a guy checking the amount of water flowing, just to make it simpler, the guy who's checking the water flow happens to be an Arduino on digital pin 2.

Now, if you're still with me..

On digital pin 2, we have a High and Low voltage, High meaning you're dumping water into the pipe to keep that pipe flowing... and LOW means there's little or no water flowing.... so what happens if you dump some of the water into the pipe?..

Arduino may see HIGH or it may see LOW. depending on how much water is flowing at the time, so what you do is add another pipe, either as a Pull Up, or a Pull Down, so when you press a button, the water either flows and fills up with a pull up, or with a pull down, the pipe will empty, if you don't the excess water just sitting in the pipe could give you false readings either reporting high (flowing) or low (not flowing) the extra pipe/pull up/down is there to make sure it's not floating....