COMPARTE ESTE ARTÍCULO

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=''): lee str.

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.ceil
  • Math.pow, Math.sqrt
  • Math.max, Math.min
  • Math.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, LocalDateTime
  • Duration, 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) o lista.sort()
  • Java: Arrays.sort(arr) o Collections.sort(list)

6) Errores típicos del alumno (y cómo evitarlos)

6.1. Python

  • input() siempre devuelve str → hay que convertir.
  • Confundir sorted(lista) (nueva) con lista.sort() (in-place, devuelve None).
  • IndexError por rangos mal calculados.

6.2. Java

  • Confundir arr.length con s.length().
  • Comparar String con == en vez de equals().
  • Scanner.nextLine() después de nextInt() (queda salto de línea pendiente): consumir con un nextLine() extra.

7) Ejercicios prácticos (con solución guía)

7.1. Python (5 ejercicios)

  1. Lee 5 números y muestra suma y media.
nums = [int(input()) for _ in range(5)]
print(sum(nums), sum(nums)/len(nums))
  1. Dada una lista, imprime el máximo y su índice.
lst = [3, 9, 1]
mx = max(lst)
print(mx, lst.index(mx))
  1. Ordena una lista de nombres por longitud.
nombres = ["ana","alberto","luis"]
print(sorted(nombres, key=len))
  1. Genera 10 enteros aleatorios entre 1 y 100.
import random
nums = [random.randint(1,100) for _ in range(10)]
print(nums)
  1. Valida si un string contiene algún dígito.
import re
print(bool(re.search(r"\d", "abc1")))

7.2. Java (5 ejercicios)

  1. 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));
  1. 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);
  1. Ordena un array e imprime.
int[] a = {3,1,2};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
  1. Genera 10 enteros aleatorios 1..100.
Random r = new Random();
for (int i = 0; i < 10; i++) {
    System.out.println(r.nextInt(100) + 1);
}
  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

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert
error: CONTENIDO PROTEGIDO