things I don’t like about Python

You don’t declare variables in python, you just assign to them. This isn’t as bad as it looks, because you can’t assign as a side-effect, so you can fake declaration by initialising the vars you want. Referencing a variable that hasn’t been initialised is a run time error. This leads to the following annoyance:

for var in (1,2,3):
    pass # don't do anything

print var # prints '3'

which makes sense, and:

for var in (): empty list!
    pass # this won't happen

print var # throws run-time error