# Crea un programa que pida al usuario dos números y determine cuál es el # mayor de los dos números. # Si son iguales, muestra cualquiera de los dos # mejorado: un mensaje que indique que los números son iguales. # pedir un numero al usuario y convertirlo numero1 = input("Dime el primer número ") numero1 = float(numero1) # pedir un segundo numero y convertirlo numero2 = input("Dime el segundo número ") numero2 = float(numero2) # con un if mirar cual es el mayor e imprimirlo if numero1 > numero2: print("El número mayor es ", numero1) elif numero2 > numero1: print("El número mayor es ", numero2) else: print("Son iguales") # o a>b y el mayor es a o b>a y el mayor es b ==> lo pasamos a if # Escribe un programa que solicite al usuario su calificación en un examen y determine si # ha aprobado o reprobado. Si la calificación es igual o superior a 60, # muestra “Aprobado”, de lo contrario, muestra “Reprobado”. calificacion = input("Dime tu calificación ") calificacion = float(calificacion) if calificacion >= 60: print("Aprobado") else: print("Reprobado")
Pasar una función como propiedad
App.js
import './App.css'; // Estilos propios del componente import Tarjeta from './componentes/Tarjeta'; // Importo la tarjeta const foo=(elemento)=>{ console.log("Has pinchado en " + elemento.alt) if (elemento.alt === "Marie Curie") { elemento.src = "/img/ok.jpg" } } function App() { // Devuelvo un div con las tarjetas que quiera // la Tarjeta tiene unas propiedades que se pasan al componente // Pasamos el nombre y la url de la imagen return ( <div className="App"> <h1>¿Quien descubrió el radio?</h1> <Tarjeta nombre="Einstein" correcta="Marie Curie" foo={foo}/> <Tarjeta nombre="Marie Curie" correcta="Marie Curie" foo={foo}/> <Tarjeta nombre="Schrodinger" correcta="Marie Curie" foo={foo}/> </div> ); } export default App;
Tarjeta.js
import Foto from './Foto'; // Importo Foto import Cabecera from './Cabecera'; // Importo Cabecera // Tarjeta le paso las propiedades nombre y url // Esto va dentro de props pero uso destructuring function Tarjeta({nombre, correcta,foo}) { // En el div es donde pongo la clase, porque es elemento html // Uso los componentes Cabecera y Foto return ( <div className="tarjeta"> <Cabecera nombre={nombre} correcta={correcta}/> <Foto descripcion={nombre} foo={foo}/> </div> ) } export default Tarjeta;
Foto.js
function Foto({descripcion, foo}) { let ruta='/img/' let nombre=descripcion.toLowerCase().replaceAll(" ","")+".jpg" return <img onClick={(evt)=>{foo(evt.target)}} className="foto" src={ruta+nombre} alt={descripcion} /> } export default Foto;
Ejemplos eventos
App.js
import './App.css'; // Estilos propios del componente import Tarjeta from './componentes/Tarjeta'; // Importo la tarjeta function App() { // Devuelvo un div con las tarjetas que quiera // la Tarjeta tiene unas propiedades que se pasan al componente // Pasamos el nombre y la url de la imagen return ( <div className="App"> <h1>¿Quien descubrió el radio?</h1> <Tarjeta nombre="Einstein" correcta="Marie Curie" /> <Tarjeta nombre="Marie Curie" correcta="Marie Curie"/> <Tarjeta nombre="Schrodinger" correcta="Marie Curie"/> </div> ); } export default App;
Tarjeta.js
import Foto from './Foto'; // Importo Foto import Cabecera from './Cabecera'; // Importo Cabecera // Tarjeta le paso las propiedades nombre y url // Esto va dentro de props pero uso destructuring function Tarjeta({nombre, correcta}) { // En el div es donde pongo la clase, porque es elemento html // Uso los componentes Cabecera y Foto return ( <div className="tarjeta"> <Cabecera nombre={nombre} correcta={correcta}/> <Foto descripcion={nombre}/> </div> ) } export default Tarjeta;
Cabecera.js
const comprobar = (objeto, correcta) => { console.log("Has pinchado en " + objeto.innerHTML) if (objeto.innerHTML === correcta) { objeto.innerHTML = "Muy BIEN" } else { objeto.innerHTML = "INCORRECTO" } } function Cabecera({ nombre, correcta }) { return <h1 onClick={(event) => { comprobar(event.target, correcta) }} >{nombre}</h1>; } export default Cabecera;
Minipágina React
Yo tengo varias cosas.
En public tengo una carpeta img con diferentes imágenes. Si dentro de mi programa pongo ruta absoluta ‘/img/…’ React va a buscar esa imagen en la carpeta.
Tengo mi App como siempre, que en general es el punto de entrada de cualquier web.
import './App.css'; // Estilos propios del componente import Tarjeta from './componentes/Tarjeta'; // Importo la tarjeta function App() { // Devuelvo un div con las tarjetas que quiera // la Tarjeta tiene unas propiedades que se pasan al componente // Pasamos el nombre y la url de la imagen return ( <div className="App"> <Tarjeta nombre="Einstein" url='/img/einstein.jpg' /> </div> ); } export default App;
El componente ‘Tarjeta’ es un componente compuesto, importa otros componentes:
import Foto from './Foto'; // Importo Foto import Cabecera from './Cabecera'; // Importo Cabecera // Tarjeta le paso las propiedades nombre y url // Esto va dentro de props pero uso destructuring function Tarjeta({nombre, url}) { // En el div es donde pongo la clase, porque es elemento html // Uso los componentes Cabecera y Foto return ( <div className="tarjeta"> <Cabecera nombre={nombre}/> <Foto descripcion={nombre} url={url}/> </div> ) } export default Tarjeta;
Cabecera.js
function Cabecera({nombre}) { return <h1>{nombre}</h1>; } export default Cabecera;
Fotos.js
function Foto({url,descripcion}) { return <img className="foto" src={url} alt={descripcion} /> } export default Foto;
Más ejemplos if
# Basándonos en el imc decir al usuario si está bien en su peso o no peso = input("Dame tu peso ek kg ") # pido el peso y nos devuelve una cadena altura = input("Dame tu altura en metros ") # pido la altura y nos devuelve una cadena peso = float(peso) # float es para números con decimales altura = float(altura) # La altura tendrá decimales imc = peso / (altura ** 2) print("Tu imc es ", imc) if imc < 18.5: print("Bajo peso") elif imc < 25: print("Peso normal") elif imc < 35: print("Sobrepeso") else: print("Obesidad") anyo = input("Dime tu año de nacimiento") anyo = int(anyo) edad = 2024 - anyo if edad < 18: print("Eres menor de edad") else: print("Eres mayor de edad") # Desarrolla un programa que pida al usuario un número entero y determine si es par o impar. # Si es par, muestra “Es un número par”, si es impar, muestra “Es un número impar”. numero = input("Dime un número, por favor ") numero = int(numero) if numero % 2 == 0: print("Es par") else: print("Es impar")
Ejemplos if python
edad = 12 if edad >= 18: print("Eres mayor de edad") print("Puedes entrar a la discoteca") else: # opcional y se ejecuta si no se cumple la condición print("Los menores de edad no tienen permitida la entrada") print("Esto está fuera del if") # > >= < <= == (igual) != (diferente) ciudad = "Barcelona" if ciudad == "Barcelona": print("Tienes descuento") if ciudad != "Tarragona": print("Ven a visitarnos") # if ... elif nos permite concatenar diferentes condiciones # Normalmente se utiliza sobre la misma variable y se usa para # rangos if edad < 10: print("Eres un infante") elif edad < 18: print("Eres menor de edad") elif edad < 65: print("Eres un adulto") else: print("Eres un jubilado") if edad < 18: if ciudad == "Barcelona": print("Eres un menor de edad de Barcelona") else: print("Eres un menor de edad pero no de Barcelona") else: print("Eres mayor de edad")
Ejemplos React
App.js
import logo from './logo.svg'; import './App.css'; import Foto from './componentes/Foto'; function App() { return ( <div className="App"> <Foto descripcion="Einstein" url="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Albert_Einstein_Head.jpg/330px-Albert_Einstein_Head.jpg"/> <Foto descripcion="Marie Curie" url="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQbLv9v4IWJ5tPUsHQwLsWLIPhIpznuTZGsNBfoHqXYNLxPSLHf"/> </div> ); } export default App;
/componentes/Foto.js
function Foto({url,descripcion}) { return <img className="foto" src={url} alt={descripcion} /> } export default Foto;
Más React
import logo from './logo.svg'; import './App.css'; const Saludo = ({nombre,apellidos="",edad=0}) => { console.log(nombre,apellidos,edad) return <h1>Hola {nombre+" "+apellidos}, qué tal?</h1>; } const gestionarClick = (evt) => { console.log("clickado",evt); } const Despedida = () => { let tipo = "compañero" return ( <> <h2 onClick={gestionarClick} className='destacado'>Adios {tipo.toUpperCase()}</h2> <p >Nos vemos otro día</p> <br /> <img onClick={gestionarClick} className='App-logo' src={logo} /> </> ); } function App() { return ( <div className="App"> <Saludo nombre="Juan" apellidos="Pérez" edad="30" /> <Despedida /> <Saludo nombre="Ana" /> </div> ); } export default App;
Ejemplos React
const Saludo = (props) => { console.log("Hola que tal") return <h1>Hola {props.nombre}, qué tal?</h1>; } const gestionarClick = () => { console.log("clickado"); } const Despedida = () => { let tipo = "compañero" return ( <> <h2 className='destacado'>Adios {tipo.toUpperCase()}</h2> <p onClick={gestionarClick}>Nos vemos otro día</p> <br /> <img className='App-logo' src={logo} /> </> ); } function App() { return ( <div className="App"> <Saludo nombre="Juan" /> <Despedida /> <Saludo nombre="Ana" /> </div> ); }
Solución ejercicios módulos
utiliades.js
function ordenar(a, b) { if (a > b) { return [b, a]; } else { return [a, b]; } } function ordenarT(a, b) { return a > b ? [b, a] : [a, b]; } function iniciales(nombre,apellidos){ return [nombre.at(0)+apellidos.at(0),apellidos.at(0)+nombre.at(0)] } export {ordenar,ordenarT,iniciales}
test.js
import { ordenar,iniciales } from "./utilidades.js"; let [a,b]=ordenar(1,8); console.log(a,b) let [ini1,ini2]=iniciales("Juan","Pérez"); console.log(ini1) console.log(ini2)