# 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;
Todo sobre Unicode
Ejemplos
# Bucle es repetir algo varias veces
# while condicion: ejecutamos algo
contador = 0
while contador < 5: # mientras contador valga menos de 10 ejecuta el siguiente código
contador += 1 # dentro del while
print(contador) # dentro del while
print("Proceso acabado") # fuera del while
contador = 1
while contador < 100 and contador % 7 != 0:
contador += 1 # dentro del while
print(contador) # dentro del while
# suma los números del 1 al 100
contador = 1
suma = 0
while contador <= 100:
suma += contador
contador += 1
print("Los numeros del 1 al 100 suman ", suma)
# imprime por la consola los cuadrados de los números del 1 al 10
contador = 1
while contador <= 10:
print(contador ** 2)
contador += 1
cadena=""
while len(cadena)<10:
cadena+="*"
print(cadena)
contador=0
while contador<100:
contador+=7
print(contador)
Ejemplos combinadas
edad = 19
altura = 130
print("Tu altura es de ", 130, " cm")
# En una atracción del Tibidabo puedes entrar si mides más de 130 cm o tienes más de 10 años
# condiciones combinadas: tener varias condiciones conectadas con operadores lógicos
# ¿Qué es un operador lógico? Básicamente dos: and y or
# and implica que se cumplan las dos condiciones
# or que se cumpla alguna
if edad >= 10 or altura >= 130:
print("Puedes subir")
else:
print("No puedes subir")
# Para entrar en la discoteca tienes que tener más de 18 años y llevar zapatos
llevoZapatos = True
if edad >= 18 and llevoZapatos:
print("Puedes entrar a la discoteca")
else:
print("No puedes entrar")
# hay otro operador lógico que es el not: lo que hace es negar la condición
llevoZapatillas = True
if edad >= 18 and not llevoZapatillas:
print("Puedes entrar")
else:
print("No puedes entrar")
departamento = "marketing"
sueldo = 1000
# si el departamento es marketing y el sueldo está entre 900 y 1500 el irpf es de .8
# si el departamento es contabilidad y el sueldo está entre 1000 y 5000 el irpf es de .9
if departamento == "marketing" and sueldo >= 900 and sueldo <= 1500:
irpf = .8
if departamento == "contabilidad" and sueldo >= 1000 and sueldo <= 5000:
irpf = .9
# prioridad: not and or
# departamento marketing y sueldo > 3000 o departamento contabilidad y sueldo >4000 irpf=1.2
if departamento == "marketing" and sueldo > 3000 or departamento == "contailidad" and sueldo > 4000:
irpf = 1.2
# pero si no lo tengo claro
if (departamento == "marketing" and sueldo > 3000) or (departamento == "contailidad" and sueldo > 4000):
irpf = 1.2
# tengo una tienda online y aplico descuentos si se cumplen las siguientes características:
# por defecto ningún descuento
# si el cliente es de Barcelona y la compra es superior a 500, 10% de descuento
# si el cliente es de Tarragona y la compra es superior a 700, 10% de descuento
# si no es de Barcelona ni Tarragona y la compra es superior a 1000, 5% de descuento
descuento = 0
compra = 800
ciudad = "Logroño"
# ciudad=="Barcelona"
# compra>=500
if ciudad == "Barcelona" and compra >= 500:
descuento = 10
if ciudad == "Tarragona" and compra > 700:
descuento = 10
# este if es equivalente a los dos anteriores
if ciudad == "Barcelona" and compra >= 500 or ciudad == "Tarragona" and compra > 700:
descuento = 10
# ciudad no sea Tarragona o Barcelona
if not (ciudad == "Barcelona" or ciudad == "Tarragona") and compra >= 1000:
descuento = 5