<jupyter_start><jupyter_text><jupyter_code><jupyter_output><empty_output><jupyter_text>**Continuacion de estructuras de control iteractivas**---**Acumuladores**se le da este nombre a las variables que se encargan de almacenar algun tipo de información, un ejemplo:El caso de la compra de viveres en la tienda:<jupyter_code>nombre=input("nombre del consumidor: ")
listaComp=""
print(nombre, "escribe los siguientes viveres para su compra en el supermercado: ")
listaComp=listaComp + " 1 paca de papel higenico,"
print("----Compras que tengo que hacer----")
print(listaComp)
listaComp=listaComp+" shampoo,"
print(listaComp)
listaComp=listaComp+" pañales,"
print(listaComp)<jupyter_output>nombre del consumidor: gisela
gisela escribe los siguientes viveres para su compra en el supermercado: 
----Compras que tengo que hacer----
 1 paca de papel higenico,
 1 paca de papel higenico, shampoo,
 1 paca de papel higenico, shampoo, pañales,<jupyter_text>la variable "listaComp" nos esta sirviendo para acumular informacion de la lista de compras, podemos observar que **NO** estamos creando una variable para cada item, sino una variable definida que nos sirve para almacenar información.a coninuacion observemos un ejemplo donde se ponga en practica el uso de una acumulacion en una variable usando cantidades y precios<jupyter_code>preciopapel= 14000 #precio paca palpel higenico 
cantidadpapel= 2 #cantidad de papel que se va a comprar 
precioshampoo= 18000 
cantidadshampoo= 4
preciopanal=17000 #precio de pañales
cantidadpanal= 3 #cantidad pañales

subtotal=0
print("calculando el total de la compra")
total_papel= preciopapel * cantidadpapel
print("el valor total de papel higenico es de: $", total_papel )
subtotal= subtotal + total_papel
print("---- subtotal es: $", subtotal)
total_shampoo= precioshampoo * cantidadshampoo
print("el valor total del shampoo es de: $", total_shampoo)
subtotal= subtotal + total_shampoo
print("---- subtotal es: $", subtotal)
total_panal= preciopanal * cantidadpanal
print("el valor total de los pañales es  es de: $", total_panal)
subtotal= subtotal + total_panal
print("---- subtotal es: $", subtotal)<jupyter_output>calculando el total de la compra
el valor total de papel higenico es de: $ 28000
---- subtotal es: $ 28000
el valor total del shampoo es de: $ 72000
---- subtotal es: $ 100000
el valor total de los pañales es  es de: $ 51000
---- subtotal es: $ 151000<jupyter_text>**Contadores**---tiene mucha relacion con los "acumuladores" vistos en el apartado anterior.estas variables se caractarizan por ser variables de control, es decir, controlan la cantidad de veces que se ejecuta determinada accion.Usando el ejemplo anterior y modificandolo un poco, podemos desarrollar el siguiente algoritmo :<jupyter_code>#ahora se va a comprar solo pañales por unidad
#conteo
conteop=0 #almacena valores numericos.
print("se realizara la compra de pañales etapa 3... se ha iniciado la compra de asignacion en el carrito, en total hay: ",conteop, "de pañales: ")
#cuenta de 1 en 1 
conteop= conteop + 1
print("ahora hay: ",conteop, " pañales ")
conteop= conteop + 1
print("ahora hay: ",conteop, " pañales ")
conteop= conteop + 1
print("ahora hay: ",conteop, " pañales ")
conteop= conteop + 1
print("ahora hay: ",conteop, " pañales")
conteop= conteop + 1
print("ahora hay: ",conteop, " pañales ")
conteop= conteop + 1<jupyter_output>se realizara la compra de pañales etapa 3... se ha iniciado la compra de asignacion en el carrito, en total hay:  0 de pañales: 
ahora hay:  1  pañales 
ahora hay:  2  pañales 
ahora hay:  3  pañales 
ahora hay:  4  pañales
ahora hay:  5  pañales<jupyter_text>**CICLOS CONTROLADOS POR CONDICIONES**---*WHILE*---recordemos que las variables de control nos permite manejar estados, pasar de un estado a otro es por ejemplo: una variable que no contiene elementos a contenerlos o una bariables con un elemento en particular(Acumulador o contador) y cambiarlo por completo (Bandera).Estas variables de control son la base de los ciclos de control. siendo mas claros, pasar de una adicion manual a algo automatizado.empezamos con el ciclo "while". En español es "mientras". este ciclo se compone de una **condicion** y su **bloque de codigo**, lo que nos quiere decir el while es que el bloque de codigo ejecutara **mientras** la condicion da como resultado True or False.<jupyter_code>lapiz= 5
conteo= 0
print("se ha iniciado la compra. En total hay:", conteo, lapiz)

while (conteo < lapiz):
  conteo=conteo + 1
  print("se ha realizado la compra de lapices, ahora hay: ", conteo, "lapices")<jupyter_output>se ha iniciado la compra. En total hay: 0 5
se ha realizado la compra de lapices, ahora hay:  1 lapices
se ha realizado la compra de lapices, ahora hay:  2 lapices
se ha realizado la compra de lapices, ahora hay:  3 lapices
se ha realizado la compra de lapices, ahora hay:  4 lapices
se ha realizado la compra de lapices, ahora hay:  5 lapices<jupyter_text>tener en cuenta que, dentro del ciclo de while, se va afectando las variables implicadas en la declaracion de la condicion que debe cumplir. En el ejemplo anterior la variable "conteo" para que en algun momento la condicion sea verdadera y termine el ciclo, se tiene que cumplir la condicion (conteo < lapi<), de lo contrario, tendriamos un ciclo infinito.  **Ciclo for**---es un ciclo especializado y optimizado para los ciclos controlador por cantidad. Se compone de tres elementos:1. la variable de iteracion2. elemento de iteracion3. bloque de codigo a iterar.¿ventajas de usar el FOR?en python es muy importante y se considera una herramienta bastante flexible y poderosa por permitir ingresar estructuras de datos complejas, cadena de caracteres, rangos, entre otros. Los elementos de iteracion usados en esta estructura de datos son necesarios que tengan la siguiente caracteristica :1.  una cantidad definida (Esto lo diferencia totalmente del while)el while parte de una condicion de verdad, pero el **FOR** parte de una cantidad definida<jupyter_code>#retomamos el ejemplo de los lapices.
print("se ha iniciado la compra, en total hay: 0 lapices.")
#el i, es la variable de iteracion, (1,6) es el elemento de iteracion
for i in range(1, 6): #en los rangos, la funcion range, maneja un intervalo abierto a la derecha y cerrado a la izquiera
#por ejemplo ahi empieza con 1, pero termina antes del 6, osea en 5.
  print("se ha realizado la compra de lapices. Ahora hay:", i, "lapices")<jupyter_output>se ha iniciado la compra, en total hay: 0 lapices.
se ha realizado la compra de lapices. Ahora hay: 1 lapices
se ha realizado la compra de lapices. Ahora hay: 2 lapices
se ha realizado la compra de lapices. Ahora hay: 3 lapices
se ha realizado la compra de lapices. Ahora hay: 4 lapices
se ha realizado la compra de lapices. Ahora hay: 5 lapices
{'fraction_non_alphanumeric': 0.07448377581120944, 'fraction_numerical': 0.014749262536873156, 'mean_word_length': 4.974449339207048, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 20, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '420701', 'license': 'MIT', 'n_tokens_mistral': 2368, 'n_tokens_neox': 2296, 'n_words': 957, 'path': 'Clase4.ipynb', 'repo_name': 'GiselaCS/Mujeres_Digitales', 'size': '6780'}