You have picked some weird hills to die on there.
for x in list:
This is fine. Many languages now do it. The extra brackets around a for or if dont really add any clarity or make things easier or harder to read. This is the type of thing you just get used to and prefer what you are used to. You get over it quickly.
Why would you provide a way to type parameters but don’t enforce it at runtime?
This is a bit stupid, but really is legacy reasons for it. Since it didnt use to have static type declarations and wants to remain somewhat backwards compatible it needs to ignore them at runtime. But as a JS and PHP developer you should be used to this. Both do the same thing as python here with types (well, TS for JS and the many other attempts at getting types into JS). So it is weird that you are singling out python for this behavior.
Why so many different ways to declare an array-like structure? Tuples, Sets, Dicts, Lists?
DIcts are not array like here. Tuples sets and lists are all common is many languages as well. PHP is a real weird case here given everything, even arrays are effectively a dict - that is a strange language design feature. But Java is way worst for different types of array types in the language.
I’m mainly using it because of interoperability, easy to setup, i
What? I hate setting up python projects. Each one wants to use a different dependency or version manager. Yeah you might have python on most systems but they are all different versions and python is famously terrible at backwards compatibility. It seems every few versions they throw something in the breaks some existing scripts so you really need a version manager for things. Which is more complex setup and management of things. There are far too many different tools to help you with this and fetching dependencies which means if you work on lots of different projects by different people you have a hodge podge of diffing tools you need. It is a complete mess.
Personally I hate python as a language, but you have picked some minor points that IMO dont really matter or that the other languages you use also suffer from. There are far better things to pick from that are far more annoying in the language.
It's both. If busses are cheap and reliable more people will use them. If more people use them they are cheaper to run. Which creates a positive feedback loop to a point.
You can make busses cheaper for people by other means though - like council/government substitutes or running at a loss for a bit. You need to do something to get more people, you cannot just force people to take the bus before doing anything else.