I am currently reading through Robert's A Course in p-adic Analysis textbook and got stuck on one of the steps on his proof of the Mahler Theorem (p173). I can embed images, so here is an excerpt of the proof:

I understand that continuous functions send compact sets to compact sets (so $f(\mathbb{Z}_p)$ is compact), but how does one show that $|f(\mathbb{Z}_p)|$ (p-adic absolute value) has at most $0$ as a limit point in the non-zero reals?
I think I start with supposing that there is some $r > 0$ that is a limit point, so there is sequence of points $x_1, x_2, \dots \in \mathbb{Z}_p$ so that $|f(x_n)| \to p^{-r}$, but I'm not sure where to go from there.
The key concept is this: the non-zero accumulation points are deceptive, in the sense that if $x_n \to x$ in $\Bbb C_p$, then either $|x_n|$ is eventually constant, or $|x_n| \to 0$; in other words, if $|x_n|$ tends to say $1$, and $|x_n|$ is strictly increasing, then there is no chance that $x_n$ actually converges.
With this in mind, it is now a trivial application of the "Bolzano–Weierstrass theorem":
Assume $y \in \Bbb R$ is a non-zero accumulation point, so there are $x_n \in \Bbb Z_p$ such that $|f(x_n)| \to y$ and $|f(x_n)|$ are all distinct. By "Bolzano–Weierstrass theorem", $x_n$ has a convergent subsequence, so we might WLOG assume that $x_n \to x$; since $f(x_n) \to f(x)$ and $|f(x_n)|$ are all distinct, we must have $|f(x_n)| = y = 0$, contradiction.