I think Python’s tendency to look like pseudo code is a big reason. It’s less intimidating than archaic incantations like “int foo = 1;” or “for (x; y; z) { … }”. While familiar to us, everybody has seen a colon followed by an indented list of things, and everybody has seen “x = 1” at some point.