for i in range(10, 0, -1):
print(i)
for i in range(101):
cuadrado = i ** 2
if cuadrado % 2 == 0:
print(cuadrado)
numero = 20000000
queEs = True
for i in range(2, numero):
if numero % i == 0:
queEs = False
break # Un ejemplo muy bueno de uso de break
print(queEs)
# ¿Que nos está averiguando la variable queEs?
if queEs:
print(numero, "es primo")
else:
print(numero, "no es primo")
# break y continue
# break sale del bucle y continue se salta las siguientes instrucciones del bucle
for i in range(10):
if i == 5:
break # Sal del bucle, acabado
print(i)
for i in range(10):
if i == 5:
continue # Salta la siguiente instrucción
print(i)
cesta = [10, 30, 40, 5] # esto es una lista lo veremos
suma = 0
for valor in cesta:
suma += valor
print(suma)
cadena = ""
for i in range(5):
cadena += "*"
print(cadena)
cadena = "hola que tal"
palabras = 1
for letra in cadena:
if letra == " ":
palabras += 1
print(palabras)
# Bucles anidados: un bucle dentro de otro bucle
for i in range(1, 11):
print(i, "x 7 =", i * 7)
print("-----------")
# Todas las tablas de multiplicar
for tabla in range(1, 11):
for i in range(1, 11):
print(i, "x ", tabla, " =", i * tabla)
print("-----------")
# Todos los números primos hasta el 100
for numero in range(2,101):
queEs = True
for i in range(2, numero):
if numero % i == 0:
queEs = False
break
if queEs:
print(numero)
Bucle for
frutas = ["manzana", "banana", "cereza"]
for fruta in frutas:
print(fruta)
for contador in range(10):
print(contador)
# range(valor) -> 0 hasta el valor -1
# range(inicio,fin) -> desde inicio hasta fin -1
# range(inicio,fin,paso) -> desde inicio hasta fin de paso en paso
for i in range(5, 12):
print(i)
print("---------")
for i in range(0, 100, 5): # range(inicio,fin) -> desde inicio hasta fin -1
print(i)
print("---------")
for i in range(10, 1, -1): # range(inicio,fin) -> desde inicio hasta fin -1 en este caso paso negativo
print(i)
suma = 0
for i in range(101):
suma += i
print(suma)
for letra in "hola que tal":
print(letra)
letraABuscar = "a"
contador = 0
cadena = "tal"
for letra in cadena:
if letra == letraABuscar:
contador += 1
print("En '", cadena, "' hay", contador, "letras", letraABuscar)
notas = [5, 8, 1, 3, 6, 9]
aprobados = 0
for nota in notas:
if nota >= 5:
aprobados += 1
print("Hay", aprobados, "aprobados")
Soluciones ejercicios bucles while
# Escribir un programa que nos muestre una cuenta atrás desde 10
# 10 9 8 ...
cuenta = 10
while cuenta > 0:
print(cuenta)
cuenta -= 1
# Escribir un programa que muestre los cuadrados pares de los números del 1 al 100
# 4,16,36....
contador = 1
while contador <= 100:
# calculo el cuadrado
cuadrado=contador**2
# compruebo si es par
if (cuadrado % 2 == 0):
# imprimo
print(cuadrado)
contador += 1
Otro ejemplo de renderizar listas
function Alumnos() {
let lista = [{ id: 1, nombre: "Ana", nota: 7 },
{ id: 2, nombre: "Eva", nota: 5 },
{ id: 3, nombre: "Pep", nota: 8 }
]
return (<ul>
{
lista.map((valor) => <li key={valor.id}>{valor.nombre + " : " + valor.nota}</li>)
}
</ul>)
}
export default Alumnos;
Ejemplo estados complejos
import React, { useState } from 'react';
import Numero from './Numero'
const Contador = () => {
// Quiero variables dentro de una página de react tengo que utilizar estado
const [contador, setContador] = useState({ valor: 0, historial: [] });
const [cadena, setCadena] = useState("")
const incrementarContador = () => {
setContador({ valor: contador.valor + 1,
historial: contador.historial.concat("I") });
setCadena("")
console.log(contador)
};
const decrementarContador = () => {
if (contador.valor > 0) {
setContador({ valor: contador.valor - 1,
historial: contador.historial.concat("D") });
} else {
setCadena("No puedes poner número negativos")
}
};
const resetearContador = () => {
setContador({ valor: 0,
historial: [...contador.historial,"R"] });
setCadena("")
};
return (
<div>
<Numero numero={contador.valor} resetear={resetearContador} />
<p> {cadena}</p>
<button onClick={incrementarContador}>Incrementar</button>
<button onClick={decrementarContador}>Decrementar</button>
<button onClick={resetearContador}>Reset</button>
</div>
);
};
export default Contador;
Interacción estados padres e hijos
import React, { useState } from 'react';
import Numero from './Numero'
const Contador = () => {
// Quiero variables dentro de una página de react tengo que utilizar estado
const [contador, setContador] = useState(0);
const [cadena, setCadena] = useState("")
const incrementarContador = () => {
setContador(contador + 1);
setCadena("")
};
const decrementarContador = () => {
if (contador>0) {
setContador(contador - 1);
}else{
setCadena("No puedes poner número negativos")
}
};
const resetearContador = () => {
setContador(0);
setCadena("")
};
return (
<div>
<Numero numero={contador} resetear={resetearContador}/>
<p> {cadena}</p>
<button onClick={incrementarContador}>Incrementar</button>
<button onClick={decrementarContador}>Decrementar</button>
<button onClick={() => setContador(0)}>Reset</button>
</div>
);
};
export default Contador;
import './Numero.css'
function Numero({ numero, resetear }) {
return <h1 onClick={resetear}>{numero}</h1>
}
export default Numero;
Ejemplo de estados con contador y texto
import React, { useState } from 'react';
const Contador = () => {
// Quiero variables dentro de una página de react tengo que utilizar estado
const [contador, setContador] = useState(0);
const [cadena, setCadena] = useState("")
const incrementarContador = () => {
setContador(contador + 1);
setCadena("")
};
const decrementarContador = () => {
if (contador>0) {
setContador(contador - 1);
}else{
setCadena("No puedes poner número negativos")
}
};
return (
<div>
<p>Contador: {contador}</p>
<p> {cadena}</p>
<button onClick={incrementarContador}>Incrementar</button>
<button onClick={decrementarContador}>Decrementar</button>
<button onClick={() => setContador(0)}>Reset</button>
</div>
);
};
export default Contador;
Solución 2
import Cabecera from './Cabecera';
import Boton from './Boton';
function Bloque({ texto }) {
const pinchar=()=>{
console.log("Has pinchado el botón "+texto)
}
// Paso el evento del padre al hijo
return <div>
<Cabecera texto={texto} />
<Boton texto="Pincha aquí" evento={pinchar}/>
</div>;
}
export default Bloque;
function Boton({ texto,evento }) {
return <button onClick={evento}>{texto}</button>;
}
export default Boton;
Solución 1 evento botón
Pasar la información del padre al hijo
En bloque pasamos el texto al botón
import Cabecera from './Cabecera';
import Boton from './Boton';
function Bloque({ texto }) {
// Paso la información del padre al hijo
return <div>
<Cabecera texto={texto} />
<Boton texto="Pincha aquí" bloque={texto}/>
</div>;
}
export default Bloque;
function Boton({ texto,bloque }) {
return <button onClick={()=>pinchar(bloque)}>{texto}</button>;
}
const pinchar=(texto)=>{
console.log("Has pinchado el botón "+texto)
}
export default Boton;