BASIC was meant as a teaching language. Python is a real language that’s simple enough to be a teaching language. It also runs the same dialect on every machine, which BASIC never did.
Being the second best language at everything, it gets used for everything because people don’t want to learn the first best in any given niche. Python isn’t the best choice for numeric applications, but with NumPy, it’s adequate, so why bother learning R? Even if you knew R already, you’re going to run into a lot of Python code for that domain from other people. You’ll be swimming against the current, and why bother?
Python will die when the sun does.
You have absolutely no idea how much business code has been written in VB.
Python is one of my primary languages (the other one being Rust). But it honestly isn’t the easiest language to teach - I’m saying this from experience. There are so many concepts at play - name binding, iterators, generators, exception chains, context managers, decorators, … . I could go on and on. Teaching becomes hard because any basic question could become a journey into the rabbit hole of python semantics.
Python is, however, a good first language for self learners. (Note: teaching vs learning). Python behaves intuitively. It’s designed in such a way that if you guess something about the language, you’ll probably be right.