Estructuras Repetitivas

3. Variables dependiendo de su Uso

3.3. Contador

Preguntas para reflexionar:

  • ¿Qué pasaría si eliminamos la condición if entrada1 != clave_correcta: antes del segundo intento?

  • ¿Podrías usar este mismo contador para controlar "vidas" en un juego?

El CONTADOR en programación es una variable, cuyo valor se incrementa o decrementa en un valor FIJO. El uso principal que se le da al CONTADOR es para contar el número de veces que un bucle se repite.

Por lo tanto, EL CONTADOR ES UN CASO PARTICULAR DEL ACUMULADOR CUANDO EL VALOR DE INCREMENTO/DECREMENTO SE MANTIENE FIJO.

Ejemplo de contador de líneas.
Contar cuántas líneas no vacías se ingresan

# Inicialización del contador
contador_lineas = 0
# Primer ingreso
linea1 = input("Ingrese la primera línea de texto: ")
if linea1.strip() != "":
    contador_lineas = contador_lineas + 1
print("Líneas no vacías ingresadas hasta ahora:", contador_lineas)
# Segundo ingreso
linea2 = input("Ingrese la segunda línea de texto: ")
if linea2.strip() != "":
    contador_lineas = contador_lineas + 1
print("Líneas no vacías ingresadas hasta ahora:", contador_lineas)
# Tercer ingreso
linea3 = input("Ingrese la tercera línea de texto: ")
if linea3.strip() != "":
    contador_lineas = contador_lineas + 1
print("Líneas no vacías ingresadas hasta ahora:", contador_lineas)
# Resultado final
print("Total de líneas no vacías ingresadas:", contador_lineas)


💡 ¿Qué hace este programa?
  1. Inicia un contador en 0.

  2. Pide tres líneas de texto al usuario.

  3. Por cada línea, si no está vacía (usamos .strip() para evitar espacios en blanco solamente), el contador suma 1.

  4. Después de cada ingreso, muestra el valor del contador.



🧠 Pregunta para pensar:
  • ¿Qué pasaría si el usuario solo aprieta Enter sin escribir nada?

  • ¿Qué parte del código controlarías si además quisieras contar cuántas son vacías?


Ejemplo: 
Se quiere ingrresar  3 números por teclado , acumularlos, contarlos y calcular el promedio

# Inicializamos acumulador y contador
suma_total = 0
cantidad_numeros = 0
# Primer número
n1 = float(input("Ingrese el primer número: "))#ver que tipo de datos float!!
suma_total = suma_total + n1
cantidad_numeros = cantidad_numeros + 1
# Segundo número
n2 = float(input("Ingrese el segundo número: "))#ver que tipo de datos float!!
suma_total = suma_total + n2
cantidad_numeros = cantidad_numeros + 1
# Tercer número
n3 = float(input("Ingrese el tercer número: "))#ver que tipo de datos float!!
suma_total = suma_total + n3
cantidad_numeros = cantidad_numeros + 1
# Mostrar resultados
print("Suma total:", suma_total)
print("Cantidad de números:", cantidad_numeros)
# Calcular promedio (solo si se ingresaron datos válidos)
if cantidad_numeros > 0:
    promedio = suma_total / cantidad_numeros
    print("Promedio:", promedio)
else:
    print("No se ingresaron números válidos.")

💡 ¿Qué conceptos aparecen acá?
  • Acumulador: suma total de los números.

  • Contador: lleva la cuenta de cuántos números se ingresaron.

  • Promedio: división entre suma y cantidad.


🧠 Pregunta para pensar:
  • ¿Qué pasaría si alguno de los valores fuera incorrecto (por ejemplo, un string)? ¿Qué estructura deberías usar para controlar errores?


Un contador no siempre suma. También puede restar, aumentar de a dos o más, o incluso decrementar según alguna condición.

Ejemplo
Contador que empieza en 3 e indica cuántos intentos quedan.

# Valor inicial del contador (decreciente)
intentos_restantes = 3
clave_correcta = "abc123"
# Primer intento
entrada1 = input("Ingrese la clave: ")
if entrada1 != clave_correcta:
    intentos_restantes = intentos_restantes - 1
    print("Clave incorrecta. Intentos restantes:", intentos_restantes)
else:
    print("¡Acceso concedido!")
# Segundo intento
if entrada1 != clave_correcta:
    entrada2 = input("Ingrese la clave: ")
    if entrada2 != clave_correcta:
        intentos_restantes = intentos_restantes - 1
        print("Clave incorrecta. Intentos restantes:", intentos_restantes)
    else:
        print("¡Acceso concedido!")
# Tercer intento
if entrada1 != clave_correcta and entrada2 != clave_correcta:
    entrada3 = input("Ingrese la clave: ")
    if entrada3 != clave_correcta:
        intentos_restantes = intentos_restantes - 1
        print("Clave incorrecta. No quedan más intentos.")
    else:
        print("¡Acceso concedido!")

¿Qué vemos en este ejemplo?
  • El contador decrece cada vez que la clave ingresada es incorrecta.

  • Controlamos paso a paso, sin estructuras repetitivas, para entender bien cómo cambia el valor.

  • El contador se puede usar para dar seguimiento descendente (como un cronómetro o vidas en un juego).

Preguntas para reflexionar:
  • ¿Qué pasaría si eliminamos la condición if entrada1 != clave_correcta: antes del segundo intento?

  • ¿Podrías usar este mismo contador para controlar "vidas" en un juego?