¿En qué se diferencian los bucles while y for en Python?