[Introducción a Python] Guía completa de cast (conversión de tipos) | Explicación exhaustiva de la conversión de números, cadenas y listas

目次

1. Introducción

Python es un lenguaje de programación con una sintaxis simple y funciones potentes, que se utiliza ampliamente desde principiantes hasta usuarios avanzados. Entre sus características, el «cast (conversión de tipos)» es una técnica indispensable para procesar datos de manera adecuada.

En este artículo, explicaremos en detalle el cast (conversión de tipos) en Python, con ejemplos de código para que sea fácil de entender incluso para principiantes. Al leer este artículo, entenderás lo siguiente.

  • Conceptos básicos del cast (conversión de tipos) en Python
  • Diferencia entre conversión de tipos explícita e implícita
  • Métodos específicos de conversión de tipos y puntos de atención
  • Errores comunes y cómo evitarlos

Al entender el cast, el procesamiento de datos se vuelve más flexible y se pueden prevenir errores. Especialmente, al manejar diferentes tipos de datos, es importante realizar la conversión de tipos adecuada.

2. ¿Qué es el casting (conversión de tipos)? [Conceptos básicos de Python]

2.1 Definición de casting (conversión de tipos)

El casting (conversión de tipos) se refiere a convertir un tipo de datos en otro tipo de datos. Por ejemplo, es posible convertir un entero en una cadena o una cadena en un valor numérico.

Se necesita casting en casos como los siguientes:

  • Cuando se desea convertir la entrada del usuario (normalmente una cadena) en un valor numérico para realizar cálculos
  • Cuando se desea convertir una lista de números en cadenas para formatear
  • Para manejar adecuadamente datos de tipos diferentes en el procesamiento interno de Python

En Python, se puede realizar la conversión de tipos fácilmente utilizando funciones integradas.

2.2 Conversión de tipos explícita (Explicit Type Conversion)

Conversión de tipos explícita se refiere a cuando el desarrollador intencionalmente convierte un tipo de datos en otro tipo de datos. En Python, se realiza la conversión de tipos explícita utilizando funciones como las siguientes.

Función de conversiónDescripciónEjemplo
int()Convertir cadenas o números de punto flotante a enterosint("10")10
float()Convertir cadenas o enteros a números de punto flotantefloat("3.14")3.14
str()Convertir números o listas, etc., en cadenasstr(100)"100"
list()Convertir tuplas o cadenas en listaslist("abc")['a', 'b', 'c']
tuple()Convertir listas en tuplastuple([1, 2, 3])(1, 2, 3)
dict()Convertir pares clave-valor en diccionariosdict([(1, 'a'), (2, 'b')]){1: 'a', 2: 'b'}

Ejemplo: Conversión de tipos explícita

# Convertir entero a cadena
num = 10
str_num = str(num)
print(str_num)  # "10"
print(type(str_num))  # <class 'str'="">

# Convertir cadena a número de punto flotante
float_num = float("3.14")
print(float_num)  # 3.14
print(type(float_num))  # <class 'float'="">

2.3 Conversión de tipos implícita (Implicit Type Conversion)

Conversión de tipos implícita se refiere a cuando Python convierte automáticamente el tipo de datos. Incluso sin que el desarrollador lo especifique explícitamente, Python realiza la conversión al tipo apropiado internamente.

Ejemplo: Conversión de tipos implícita

num_int = 10  # Tipo entero
num_float = 2.5  # Número de punto flotante

# Entero + número de punto flotante → se convierte a número de punto flotante
result = num_int + num_float
print(result)  # 12.5
print(type(result))  # <class 'float'="">

De esta manera, Python ajusta automáticamente el tipo de datos para que el resultado de la operación sea correcto.

2.4 Ventajas y precauciones al usar casting

Ventajas del casting

  • Se pueden procesar adecuadamente datos como entradas de usuario
  • Se vuelven posibles cálculos y operaciones entre tipos de datos diferentes
  • Al realizar casting explícito, se facilita predecir el comportamiento del programa

⚠️ Precauciones del casting

  • Una conversión de tipos inadecuada puede causar errores
    Ejemplo: int("abc") no se puede convertir y ocurre ValueError
  • Depender demasiado de la conversión de tipos implícita puede causar errores
    Ejemplo: Al unir directamente un entero y una cadena, ocurre TypeError
  • La conversión de tipos de datos tiene un costo
    En el caso de grandes cantidades de datos, también afecta el rendimiento

A la siguiente sección

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. Tipos de datos de Python y conversiones

3.1 Principales tipos de datos de Python

Python tiene los siguientes tipos de datos básicos.

Tipo de datosDescripciónEjemplo
int (entero)Tipo de datos que representa enteros10, -5, 1000
float (número de punto flotante)Número que incluye decimales3.14, -2.5, 1.0
str (cadena)Secuencia de caracteres (texto)"Hello", 'Python'
bool (valor booleano)Tipo que tiene True o FalseTrue, False
list (lista)Tipo de arreglo que mantiene múltiples valores[1, 2, 3], ['a', 'b', 'c']
tuple (tupla)Lista inmutable(1, 2, 3), ('x', 'y')
dict (diccionario)Tipo de datos que mantiene pares clave-valor{'name': 'Alice', 'age': 25}
set (conjunto)Colección que no permite duplicados{1, 2, 3}, {'apple', 'banana'}

3.2 Conversión de cada tipo de datos

3.2.1 Conversión a tipos numéricos (int, float)

num_str = "100"
num_int = int(num_str)  # Convierte la cadena "100" en el entero 100
num_float = float(num_int)  # Convierte el entero 100 en el número de punto flotante 100.0

print(num_int, type(num_int))  # 100 <class 'int'="">
print(num_float, type(num_float))  # 100.0 <class 'float'="">

3.2.2 Conversión a cadena (str)

num = 42
str_num = str(num)  # Convierte el entero 42 en la cadena "42"
print(str_num, type(str_num))  # "42" <class 'str'="">

3.2.3 Conversión a lista (list) · tupla (tuple) · conjunto (set)

tuple_data = (1, 2, 3)
list_data = list(tuple_data)  # Convierte la tupla en lista
print(list_data, type(list_data))  # [1, 2, 3] <class 'list'="">

list_data = [4, 5, 6]
tuple_data = tuple(list_data)  # Convierte la lista en tupla
print(tuple_data, type(tuple_data))  # (4, 5, 6) <class 'tuple'="">

3.2.4 Conversión a diccionario (dict)

list_of_pairs = [[1, 'apple'], [2, 'banana']]
dict_data = dict(list_of_pairs)  # Convierte la lista en diccionario
print(dict_data, type(dict_data))  # {1: 'apple', 2: 'banana'} <class 'dict'="">

3.3 Resumen de la conversión de tipos de datos

En Python, se pueden convertir varios tipos de datos usando funciones integradas como int(), float(), str(), etc.

Función de conversiónDescripciónEjemplo
int(x)Convierte a enteroint("100")100
float(x)Convierte a número de punto flotantefloat("3.14")3.14
str(x)Convierte a cadenastr(42)"42"
list(x)Convierte a listalist((1, 2, 3))[1, 2, 3]
tuple(x)Convierte a tuplatuple([1, 2, 3])(1, 2, 3)
set(x)Convierte a conjuntoset([1, 2, 2, 3]){1, 2, 3}
dict(x)Convierte a diccionariodict([(1, 'a'), (2, 'b')]){1: 'a', 2: 'b'}

4. Método de conversión de tipo explícita (cast) [con ejemplos de código]

En Python, se puede realizar una «conversión de tipo explícita (Explicit Type Conversion)» para cambiar intencionalmente el tipo de datos.
Esto es un método en el que los desarrolladores usan funciones integradas como int() o str() para convertir manualmente el tipo de datos.

4.1 Conversión a entero (int)

# Convertir cadena a entero
num1 = int("10")
print(num1, type(num1))  # 10 <class 'int'="">

# Convertir número de punto flotante a entero (truncar la parte decimal)
num2 = int(3.99)
print(num2)  # 3

# Convertir valor booleano a entero
num3 = int(True)
num4 = int(False)
print(num3, num4)  # 1 0

4.2 Conversión a número de punto flotante (float)

# Convertir cadena a número de punto flotante
num1 = float("10.5")
print(num1, type(num1))  # 10.5 <class 'float'="">

# Convertir entero a número de punto flotante
num2 = float(10)
print(num2)  # 10.0

4.3 Conversión a cadena (str)

# Convertir número a cadena
num1 = str(100)
num2 = str(3.14)
print(num1, type(num1))  # "100" <class 'str'="">
print(num2, type(num2))  # "3.14" <class 'str'="">

4.4 Conversión a lista (list)

# Convertir tupla a lista
tuple_data = (1, 2, 3)
list_data = list(tuple_data)
print(list_data, type(list_data))  # [1, 2, 3] <class 'list'="">

# Convertir cadena a lista
str_data = "hello"
list_chars = list(str_data)
print(list_chars)  # ['h', 'e', 'l', 'l', 'o']

4.5 Conversión a tupla (tuple)

# Convertir lista a tupla
list_data = [1, 2, 3]
tuple_data = tuple(list_data)
print(tuple_data, type(tuple_data))  # (1, 2, 3) <class 'tuple'="">

4.6 Conversión a conjunto (set)

# Convertir lista a conjunto (eliminar duplicados)
list_data = [1, 2, 2, 3, 3, 3]
set_data = set(list_data)
print(set_data, type(set_data))  # {1, 2, 3} <class 'set'="">

4.7 Conversión a diccionario (dict)

# Convertir lista de listas a diccionario
list_of_pairs = [[1, 'apple'], [2, 'banana']]
dict_data = dict(list_of_pairs)
print(dict_data)  # {1: 'apple', 2: 'banana'}

4.8 Resumen

La conversión de tipo explícita en Python es importante para hacer que el programa sea más flexible.
Al usar adecuadamente int(), float(), str(), etc., se puede realizar fácilmente la conversión entre diferentes tipos de datos.

Funciones de conversiónDescripción
int(x)Convertir a entero
float(x)Convertir a número de punto flotante
str(x)Convertir a cadena
list(x)Convertir a lista
tuple(x)Convertir a tupla
set(x)Convertir a conjunto
dict(x)Convertir a diccionario

 

年収訴求

5. Conversión implícita de tipos (Conversión automática de Python)

5.1 ¿Qué es la conversión de tipos que Python realiza automáticamente?

La conversión implícita de tipos es el mecanismo por el cual Python convierte automáticamente al tipo de datos apropiado sin que el desarrollador lo indique explícitamente.

La conversión implícita de tipos en Python ocurre principalmente durante las operaciones con tipos numéricos (int, float, complex).

Ejemplo: Operación entre entero (int) y punto flotante (float)

num_int = 10   # Entero
num_float = 2.5  # Punto flotante

result = num_int + num_float  # Python convierte implícitamente int a float
print(result, type(result))  # 12.5 <class 'float'="">

5.2 ¿En qué situaciones ocurre la conversión implícita?

Caso 1: Entero (int) → Punto flotante (float)

a = 5
b = 2.0
result = a / b  # Python convierte int a float
print(result, type(result))  # 2.5 <class 'float'="">

Caso 2: Entero (int) → Número complejo (complex)

a = 10   # int
b = 2 + 3j  # complex (número imaginario)
result = a + b
print(result, type(result))  # (12+3j) <class 'complex'="">

Caso 3: Valor booleano (bool) → Numérico (int, float)

print(True + 2)   # 3  (True se trata como 1)
print(False + 3.5)  # 3.5 (False se trata como 0)

5.3 Puntos de atención y estrategias de evitación para la conversión implícita de tipos

⚠️ Punto de atención 1: Mezcla de cadenas (str) y numéricos (int, float)

num = 10
text = "円"

# Esto genera un error
# print(num + text)  # TypeError

# Método correcto
print(str(num) + text)  # "10円"

⚠️ Punto de atención 2: No se realiza conversión implícita en listas o diccionarios

num_list = [1, 2, 3]

# Esto genera un error
# print(num_list + 10)  # TypeError

# Método correcto
num_list.append(10)
print(num_list)  # [1, 2, 3, 10]

5.4 Ventajas y desventajas de la conversión implícita de tipos

Ventajas

  • Los desarrolladores pueden realizar operaciones de manera fluida sin preocuparse por la conversión de tipos.
  • intfloat o intcomplex, etc., permiten conversiones que no pierden precisión en los datos.
  • bool se convierte en int, lo que permite cálculos intuitivos como True + 1 == 2.

⚠️ Desventajas

  • Las conversiones de tipos no intencionadas pueden causar errores (por ejemplo, cuando int se convierte en float, podría surgir un error en el manejo de decimales).
  • Los tipos de datos como listas o diccionarios no se convierten implícitamente, por lo que se necesita un procesamiento adecuado.

5.5 Resumen

En Python, se realiza principalmente la conversión implícita de tipos centrada en los tipos numéricos, por lo que los desarrolladores pueden realizar operaciones con el tipo apropiado sin necesidad de un casting explícito.

Fuente de conversiónDestino de conversiónEjemplo
intfloatfloat10 + 2.5 → 12.5
intcomplexcomplex10 + (2+3j) → (12+3j)
boolintintTrue + 1 → 2

6. Errores comunes en la conversión de tipos en Python y contramedidas

6.1 Principales errores que ocurren durante la conversión de tipos

En la conversión de tipos (casting) en Python, los errores comunes incluyen los siguientes.

Tipo de errorCausa de ocurrenciaEjemplo
ValueErrorCuando se intenta convertir datos que no se pueden convertirint("abc")
TypeErrorCuando se intenta operar con tipos inadecuados10 + "5"
KeyErrorCuando se especifica una clave que no existe en un dictmy_dict["missing_key"]
AttributeErrorCuando se usa un método o atributo que no existe en el tipo10.append(5)

6.2 ValueError: Conversión de valor inválido

# La cadena "abc" no se puede convertir a entero
num = int("abc")  # ValueError

Solución

user_input = "abc"

if user_input.isdigit():
    num = int(user_input)
    print(num)
else:
    print("No se puede convertir a número")

6.3 TypeError: Operación entre tipos inadecuados

num = 10
text = "円"
print(num + text)  # TypeError

Solución

print(str(num) + text)  # "10円"

6.4 KeyError: Obtención de una clave inexistente en un diccionario

my_dict = {"name": "Alice", "age": 25}
print(my_dict["gender"])  # KeyError

Solución

print(my_dict.get("gender", "Información no disponible"))  # "Información no disponible"

6.5 AttributeError: Uso de un método o atributo inexistente

num = 10
num.append(5)  # AttributeError

Solución

if hasattr(num, "append"):
    num.append(5)
else:
    print("Este objeto no tiene el método append()")

6.6 ZeroDivisionError: Error de división por cero

result = 10 / 0  # ZeroDivisionError

Solución

num = 10
denominator = 0

if denominator != 0:
    result = num / denominator
    print(result)
else:
    print("No se puede dividir por cero")

6.7 IndexError: Acceso fuera del rango de la lista

my_list = [1, 2, 3]
print(my_list[5])  # IndexError

Solución

if 0 <= index < len(my_list):
    print(my_list[index])
else:
    print("El índice especificado está fuera de rango")

6.8 TypeError: Tipo de argumento de función incorrecto

def add_numbers(a: int, b: int):
    return a + b

print(add_numbers(10, "20"))  # TypeError

Solución

def add_numbers(a, b):
    if isinstance(a, (int, float)) and isinstance(b, (int, float)):
        return a + b
    else:
        return "Por favor, ingrese números"

print(add_numbers(10, "20"))  # "Por favor, ingrese números"

6.9 Resumen

En la conversión de tipos en Python, es importante tomar las medidas adecuadas para evitar los siguientes errores comunes.

ErrorCausa de ocurrenciaMedida de evitación
ValueErrorConversión de valor inválidoVerificar con isdigit()
TypeErrorOperación entre tipos inadecuadosConvertir explícitamente con str()
KeyErrorReferencia a una clave inexistente en el diccionarioUsar dict.get()
AttributeErrorLlamada a un método inexistenteVerificar con hasattr()
ZeroDivisionErrorDivisión por ceroEvitar con if denominator != 0
IndexErrorAcceso fuera del rango de la listaVerificar con if index < len(list)

7. [Práctica] Formas de usar el casting en Python | Con ejemplos de código

7.1 Convertir la entrada del usuario a un número y realizar cálculos

age = input("Ingrese su edad: ")  # La entrada del usuario es de tipo str
if age.isdigit():  # Verificar si es un número
    age = int(age)  # Convertir a entero
    print(f"Al cabo de 10 años, tendrá {age + 10} años.")
else:
    print("Por favor, ingrese un número.")

7.2 Convertir los números de una lista a cadenas y unirlos

numbers = [10, 20, 30, 40]
str_numbers = [str(num) for num in numbers]  # Convertir cada elemento a cadena
result = ", ".join(str_numbers)
print(result)  # "10, 20, 30, 40"

7.3 Casting al procesar datos CSV

csv_data = [
    ["Alice", "25", "170.5"],
    ["Bob", "30", "180.2"],
]

for row in csv_data:
    name = row[0]
    age = int(row[1])  # Convertir la edad a entero
    height = float(row[2])  # Convertir la altura a número de punto flotante
    print(f"{name} tiene {age} años y mide {height} cm de altura.")

7.4 Casting de datos JSON

import json

json_str = '{"name": "Alice", "age": "25", "height": "170.5"}'
data = json.loads(json_str)

data["age"] = int(data["age"])
data["height"] = float(data["height"])

print(data)  # {'name': 'Alice', 'age': 25, 'height': 170.5}

7.5 Tratar las claves de un diccionario como números

data = {"1": "apple", "2": "banana", "3": "cherry"}

new_data = {int(k): v for k, v in data.items()}
print(new_data)  # {1: 'apple', 2: 'banana', 3: 'cherry'}

7.6 Redondear el resultado de un cálculo a entero

num = 3.75

# Redondeo
rounded_num = round(num)
print(rounded_num)  # 4

# Truncado
truncated_num = int(num)
print(truncated_num)  # 3

7.7 Tratar valores booleanos como números

print(int(True))  # 1
print(int(False))  # 0

7.8 Resumen

Al usar adecuadamente el casting en Python, el procesamiento de datos se vuelve fluido. En particular, el casting es importante en los siguientes casos.

Escenarios de usoMétodos de casting
Procesamiento de entrada del usuarioint() o float()
Convertir datos de una lista a cadenas[str(x) for x in list]
Conversión de tipos en datos CSV o JSONint(), float()
Convertir las claves de un diccionario a números{int(k): v for k, v in dict.items()}
Redondear el resultado de un cálculo a enteroround() o int()
Usar valores booleanos como númerosint(True) → 1, int(False) → 0

8. Preguntas frecuentes y soluciones sobre el casting en Python【FAQ】

8.1 ¿El casting y la conversión de tipo tienen el mismo significado?

Sí, básicamente el casting (cast) y la conversión de tipo (type conversion) se usan con el mismo significado.
Sin embargo, la palabra «casting» a menudo se refiere específicamente a la «conversión de tipo explícita (Explicit Type Conversion)».

8.2 ¿Es posible el casting entre todos los tipos de datos?

No, no es posible el casting entre todos los tipos de datos.
Veamos ejemplos de casos en los que se puede y no se puede realizar la conversión de tipo.

✔ Ejemplos de casting posible

print(int("10"))  # 10
print(float("3.14"))  # 3.14
print(str(100))  # "100"
print(list("abc"))  # ['a', 'b', 'c']

❌ Ejemplos de casting imposible (se produce un error)

print(int("abc"))  # ValueError
print(float("hello"))  # ValueError
print(int([1, 2, 3]))  # TypeError

8.3 ¿Se debe evitar la conversión de tipo implícita?

No, la conversión de tipo implícita de Python es muy conveniente en situaciones apropiadas, pero si ocurre una conversión de tipo no intencionada, puede causar errores.

num_int = 10
num_float = 2.5
result = num_int + num_float  # int + float → se convierte a float
print(result, type(result))  # 12.5 <class 'float'="">

8.4 ¿Qué errores ocurren si se comete un error en la conversión de tipo?

El fracaso en el casting provoca principalmente los siguientes 3 errores.

ErrorCausa de ocurrenciaEjemplo
ValueErrorConversión de tipo de un valor inválidoint("abc")
TypeErrorOperación entre tipos inapropiados10 + "5"
AttributeErrorUso de un método inexistente10.append(5)

Métodos para prevenir errores

value = "abc"

if value.isdigit():
    num = int(value)
else:
    print("No se puede convertir a número")

8.5 ¿Cuál es la diferencia entre isinstance() y el casting?

isinstance() es una función para verificar el tipo de una variable y es diferente del casting (conversión de tipo).

num = 10
print(isinstance(num, int))  # True
print(isinstance(num, float))  # False

8.6 ¿Cómo realizar el casting de forma segura en entradas de usuario?

Las entradas de usuario se realizan con input(), por lo que todas son cadenas (str).
Para prevenir errores, realice el casting utilizando manejo de excepciones (try-except).

while True:
    user_input = input("Por favor, ingrese un entero: ")

    try:
        num = int(user_input)
        break
    except ValueError:
        print("Entrada inválida. Por favor, ingrese un entero.")

print(f"Número ingresado: {num}")

8.7 Resumen

Explicamos las preguntas frecuentes y soluciones sobre el casting en Python.

PreguntaSolución
¿Cuál es la diferencia entre casting y conversión de tipo?Básicamente tienen el mismo significado, pero «casting» a menudo se refiere a la conversión explícita
¿Es posible el casting entre todos los tipos de datos?No siempre es posible (ej.: int("abc") produce un error)
¿Se debe evitar la conversión de tipo implícita?Si se usa adecuadamente es conveniente, pero una conversión no intencionada puede causar errores
isinstance() ¿y el casting?isinstance() es verificación de tipo, el casting es conversión de tipo
¿Cuál es el método de conversión de tipo segura?try-except permite prevenir errores

9. Resumen | Ejemplos de código que puedes probar ahora mismo

9.1 Importancia del casting en Python

El casting (conversión de tipos) es una técnica básica para manejar datos de manera adecuada en la programación con Python.
Se utiliza principalmente en situaciones como las siguientes.

Mantener la integridad del tipo de datos
Posibilitar cálculos entre tipos de datos diferentes
Prevenir errores

9.2 Conceptos básicos del casting (conversión de tipos) en Python

En Python, se pueden convertir tipos de datos de manera explícita utilizando funciones integradas.

Función de conversiónDescripciónEjemplo
int(x)Convertir a enteroint("100")100
float(x)Convertir a número de punto flotantefloat("3.14")3.14
str(x)Convertir a cadenastr(100)"100"
list(x)Convertir a listalist((1, 2, 3))[1, 2, 3]
tuple(x)Convertir a tuplatuple([1, 2, 3])(1, 2, 3)
set(x)Convertir a conjuntoset([1, 1, 2]){1, 2}
dict(x)Convertir a diccionariodict([(1, 'a'), (2, 'b')]){1: 'a', 2: 'b'}

9.3 Conversión de tipos implícita en Python

# Entero + número de punto flotante → se convierte a número de punto flotante
result = 10 + 2.5
print(result, type(result))  # 12.5 <class 'float'="">

# Tratar valores booleanos como enteros
print(True + 1)  # 2
print(False + 5)  # 5

9.4 Errores comunes al hacer casting y medidas para evitarlos

ErrorCausa de ocurrenciaMedida de evitación
ValueErrorConversión de tipo de valor inválidoisdigit() para verificar si es numérico
TypeErrorOperación entre tipos inadecuadosstr() para conversión explícita
KeyErrorReferencia a clave de diccionario inexistentedict.get() para usarlo
AttributeErrorLlamada a método inexistentehasattr() para verificar

Ejemplo de casting seguro

user_input = "100a"

try:
    num = int(user_input)  # Convertir a número
    print(f"Conversión exitosa: {num}")
except ValueError:
    print("Entrada inválida. Por favor, ingrese un número.")

9.5 Código práctico: Aprovechando el casting en Python

while True:
    user_input = input("Por favor, ingrese la edad (solo enteros): ")

    if user_input.isdigit():  # Verificar si la entrada es numérica
        age = int(user_input)
        print(f"La edad en 10 años será {age + 10} años.")
        break
    else:
        print("Entrada inválida. Por favor, ingrese un entero.")

9.6 Mejores prácticas para el casting

Verificar el tipo de datos de antemano
Implementar manejo de errores
Usar la función de conversión de tipo adecuada
No depender en exceso de la conversión de tipos implícita

9.7 Resumen y puntos para el aprendizaje futuro

En este artículo, se explicó lo siguiente.

Conceptos básicos del casting en Python
Conversión de tipos explícita (int(), float(), str(), etc.)
Conversión de tipos implícita (conversión automática de Python)
Errores comunes en el casting y sus medidas
Ejemplos prácticos de uso del casting

Para eficientar la programación en Python, ¡por favor, intente escribir y probar código real! 🚀

年収訴求