# 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)