The term "weak typing" does not really mean anything and confuses a lot of discussions about programming languages. Here you are clearly talking about implicit conversions, but weak typing is also used to refer to completely unrelated things like casts in C (which can be unsound). Python having both "strong" and "weak" typing illustrates this: these terms are ill-defined.
Edit: mindslight's comment adds another possible interpretation of "weak typing" (integers which overflow), further illustrating my point.
Edit: mindslight's comment adds another possible interpretation of "weak typing" (integers which overflow), further illustrating my point.