Objetivo didáctico: que el alumno distinga funciones del lenguaje (built-in) de funciones/bibliotecas estándar (standard library), sepa cuándo usarlas, y pueda resolver ejercicios típicos con seguridad.
1) Conceptos clave
1.1. ¿Qué es una función integrada (built-in)?
- Está disponible sin importar módulos/paquetes adicionales.
- Forma parte del núcleo del lenguaje.
Ejemplos típicos:
- Python:
print(),len(),range(),type(),sum(),sorted(). - Java: Java no tiene “built-ins” como Python; lo más parecido son operadores y métodos estáticos accesibles desde clases del núcleo (
Math,System,Integer, etc.). En Java hablamos más de API estándar.
1.2. ¿Qué es una función de librería estándar?
- Viene incluida con el lenguaje/plataforma, pero suele requerir:
import ...(Python)import ...;y usar el paquete/clase (Java)
Ejemplos típicos:
- Python:
math.sqrt,random.randint,datetime.date,re.search. - Java:
java.util.Arrays.sort,java.util.Collections,java.time,java.nio.file.Files.
1.3. Ventajas
- Reutilización y fiabilidad.
- Menos bugs.
- Mejor legibilidad.
2) Python: funciones integradas (built-ins)
2.1. Entrada/Salida
print(*args, sep=' ', end='\n'): imprime.input(prompt=''): leestr.
Patrón típico:
nombre = input("Nombre: ")
print("Hola", nombre)
2.2. Conversión de tipos
int(x),float(x),str(x),bool(x).
Ejemplos:
edad = int(input("Edad: "))
precio = float("12.50")
2.3. Longitud y agregación
len(iterable)sum(iterable, start=0)min(iterable),max(iterable)
nums = [3, 1, 9]
print(len(nums), sum(nums), min(nums), max(nums))
2.4. Ordenación y selección
sorted(iterable, key=None, reverse=False)devuelve nueva lista.reversed(seq)devuelve iterador.
nombres = ["ana", "luis", "marta"]
print(sorted(nombres))
print(sorted(nombres, key=len))
2.5. Rango e iteración
range(start, stop, step)enumerate(iterable, start=0)zip(a, b, ...)
for i, v in enumerate([10,20,30]):
print(i, v)
for a, b in zip([1,2], ["a","b"]):
print(a, b)
2.6. Estructuras de datos
list(),tuple(),set(),dict()
s = set([1,2,2,3])
d = dict(a=1, b=2)
2.7. Predicados y lógica
any(iterable)(¿alguno True?)all(iterable)(¿todos True?)
print(any([False, True]))
print(all([True, True]))
2.8. Otras muy usadas
abs(x)round(x, ndigits=None)pow(a, b, mod=None)isinstance(obj, cls)type(obj)
3) Python: funciones de librería estándar (módulos clave)
3.1. math
math.sqrt,math.floor,math.ceil,math.pi,math.sin/cos/tan,math.log.
import math
print(math.sqrt(16))
print(math.pi)
3.2. random
random.random()(0..1)random.randint(a,b)random.choice(seq)random.shuffle(list)
import random
print(random.randint(1, 6))
3.3. datetime
- Fechas/horas.
from datetime import date
hoy = date.today()
print(hoy.year)
3.4. re (expresiones regulares)
re.search,re.match,re.findall,re.sub.
import re
m = re.search(r"\d+", "abc123")
print(m.group())
3.5. os y pathlib
- Sistema de ficheros y rutas.
from pathlib import Path
p = Path("datos") / "file.txt"
print(p.exists())
3.6. json
json.dumps,json.loads,json.dump,json.load.
import json
s = json.dumps({"a": 1})
obj = json.loads(s)
4) Java: API estándar (“funciones” más usadas)
En Java, el uso típico es: clase + método (muchos son
static).
4.1. Entrada/Salida
- Consola rápida:
System.out.println()System.out.print()
- Lectura con
Scanner:
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int edad = sc.nextInt();
String nombre = sc.next();
Importante: Scanner separa por espacios; para líneas completas usar nextLine().
4.2. Conversión de tipos
Integer.parseInt(String)Double.parseDouble(String)String.valueOf(x)
int n = Integer.parseInt("123");
double d = Double.parseDouble("3.14");
String s = String.valueOf(10);
4.3. Matemáticas (Math)
Math.abs,Math.round,Math.floor,Math.ceilMath.pow,Math.sqrtMath.max,Math.minMath.random()
double r = Math.sqrt(49);
int m = Math.max(3, 10);
4.4. Cadenas (String)
length(),charAt(i)substring(a,b)toLowerCase(),toUpperCase()trim(),replace(),split()equals(),equalsIgnoreCase()contains(),startsWith(),endsWith()
String t = " Hola ".trim();
System.out.println(t.length());
4.5. Arrays (java.util.Arrays)
Arrays.sort(arr)Arrays.toString(arr)Arrays.copyOf(arr, n)Arrays.binarySearch(arr, key)(requiere orden)
import java.util.Arrays;
int[] a = {3,1,2};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
4.6. Colecciones (java.util)
ArrayList<E>add,get,set,remove,size,contains
Collections:Collections.sort(list)Collections.max/min
import java.util.*;
ArrayList<String> lista = new ArrayList<>();
lista.add("ana");
System.out.println(lista.get(0));
4.7. Fechas modernas (java.time)
LocalDate.now(),LocalDate.of(...)LocalTime,LocalDateTimeDuration,Period
import java.time.LocalDate;
LocalDate hoy = LocalDate.now();
System.out.println(hoy.getYear());
4.8. Ficheros (java.nio.file)
Path,Files.readString,Files.writeString,Files.exists
import java.nio.file.*;
Path p = Paths.get("datos.txt");
if (Files.exists(p)) {
String contenido = Files.readString(p);
}
5) Comparativa rápida (Python vs Java)
5.1. Imprimir
- Python:
print(x) - Java:
System.out.println(x)
5.2. Longitud
- Python:
len(lista) - Java: array:
arr.length, String:s.length(), List:list.size()
5.3. Convertir texto a número
- Python:
int("12") - Java:
Integer.parseInt("12")
5.4. Ordenar
- Python:
sorted(lista)olista.sort() - Java:
Arrays.sort(arr)oCollections.sort(list)
6) Errores típicos del alumno (y cómo evitarlos)
6.1. Python
input()siempre devuelvestr→ hay que convertir.- Confundir
sorted(lista)(nueva) conlista.sort()(in-place, devuelveNone). - IndexError por rangos mal calculados.
6.2. Java
- Confundir
arr.lengthcons.length(). - Comparar
Stringcon==en vez deequals(). Scanner.nextLine()después denextInt()(queda salto de línea pendiente): consumir con unnextLine()extra.
7) Ejercicios prácticos (con solución guía)
7.1. Python (5 ejercicios)
- Lee 5 números y muestra suma y media.
nums = [int(input()) for _ in range(5)]
print(sum(nums), sum(nums)/len(nums))
- Dada una lista, imprime el máximo y su índice.
lst = [3, 9, 1]
mx = max(lst)
print(mx, lst.index(mx))
- Ordena una lista de nombres por longitud.
nombres = ["ana","alberto","luis"]
print(sorted(nombres, key=len))
- Genera 10 enteros aleatorios entre 1 y 100.
import random
nums = [random.randint(1,100) for _ in range(10)]
print(nums)
- Valida si un string contiene algún dígito.
import re
print(bool(re.search(r"\d", "abc1")))
7.2. Java (5 ejercicios)
- Lee 5 enteros, muestra suma y media.
Scanner sc = new Scanner(System.in);
int suma = 0;
for (int i = 0; i < 5; i++) suma += sc.nextInt();
System.out.println("Suma=" + suma + " Media=" + (suma/5.0));
- Dado un array, imprime máximo.
int[] a = {3,9,1};
int max = a[0];
for (int v : a) if (v > max) max = v;
System.out.println(max);
- Ordena un array e imprime.
int[] a = {3,1,2};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
- Genera 10 enteros aleatorios 1..100.
Random r = new Random();
for (int i = 0; i < 10; i++) {
System.out.println(r.nextInt(100) + 1);
}
- Normaliza texto: trim + minúsculas + reemplazo.
String s = " Hola Mundo ".trim().toLowerCase().replace(" ", "-");
System.out.println(s);
8) Chuleta final (para examen)
Python
- E/S:
input,print - Tipos:
int,float,str - Listas:
len,sum,min,max,sorted,enumerate,zip - Módulos:
math,random,datetime,re,pathlib,json
Java
- E/S:
System.out...,Scanner - Tipos:
Integer.parseInt,Double.parseDouble,String.valueOf - Math:
Math.* - String:
length,substring,split,replace,equals - Arrays:
Arrays.sort,Arrays.toString - Colecciones:
ArrayList,Collections - Fechas:
java.time.* - Ficheros:
java.nio.file.*
9) Plan de estudio recomendado (2 sesiones)
Sesión 1 (60–90 min)
- Built-ins Python + ejercicios 1–3.
- String/Math en Java + ejercicios 1–2.
Sesión 2 (60–90 min)
- Módulos Python (math/random/re) + ejercicios 4–5.
- Arrays/ArrayList/Collections en Java + ejercicios 3–5.
Contenido restringido
Comments are closed