¿Cómo transformar tipos de datos en Python de manera dinámica?
La flexibilidad de Python permite transformar tipos de datos de manera dinámica, lo que otorga un alto grado de adaptabilidad en tus programas. En esta clase aprenderemos a cambiar tipos de datos y las posibles implicaciones al hacerlo. Este conocimiento esencial te permitirá manipular datos con mayor soltura y eficacia.
¿Cómo transformar un string a otros tipos de datos?
La transformación de tipos en Python es bastante directa, gracias a su naturaleza dinámica. Vamos a crear un archivo llamado transformation.py, y usaremos una variable como ejemplo:
Iniciamos con un string:
nombre ="Nicolás"print(type(nombre))# Salida: <class 'str'>
Aquí, nombre es un string. Pero Python nos permite cambiar dinámicamente su tipo.
Convertir un string a un entero:
Podríamos asignar un número a la variable nombre:
nombre =5print(type(nombre))# Salida: <class 'int'>
Ahora nombre se ha convertido en un entero.
Convertir un string a un booleano:
Cambiemos nombre a un booleano:
nombre =Trueprint(type(nombre))# Salida: <class 'bool'>
Python realiza esta inferencia de tipos automáticamente. No obstante, es crucial manejar este dinamismo con precaución para evitar errores inesperados.
¿Qué consideraciones tomar al concatenar tipos de datos diferentes?
La operación con diferentes tipos puede ser arriesgada si no se hace correctamente. Tomemos un string y un entero para analizar los posibles errores:
Si intentas sumar un string y un número, Python lanza un error:
# nombre = "Nicolás" + 8 # Provoca un error
Python no puede determinar si debe concatenar o sumar, por lo que una opción es convertir el número en string:
resultado ="Nicolás "+str(8)# Salida: Nicolás 8
¿Cómo asegurar la correcta manipulación de cadenas y números en cadenas formateadas?
La función str() en Python facilita la conversión de enteros a strings, permitiendo una concatenación válida.
Concatenación usando str():
edad =12print("Mi edad es "+str(edad))# Salida: Mi edad es 12
Cadenas formateadas:
Con el uso del formato f-string, esta operación se vuelve más simple y limpia:
print(f"Mi edad es {edad}")# Salida: Mi edad es 12
Con f-string, no es necesario utilizar str(), ya que el formato gestiona automáticamente las transformaciones necesarias.
¿Cómo podemos convertir entradas de usuario al tipo deseado?
El comando input() siempre devuelve un string. Sin embargo, para trabajar con números, hay que convertir las entradas.
Obtener y transformar entrada:
edad =int(input("Escribe tu edad: "))print(type(edad))# Salida: <class 'int'>
Predecir futuras edades:
Podemos usar este valor para realizar operaciones matemáticas:
print(f"Tu edad en 10 años será {edad +10}")
En este caso, se transforma el string en un entero para poder sumar.
¿Qué errores pueden surgir al transformar datos erróneos?
Al intentar transformar un string que no representa un número, Python lanza un error:
Errores de transformación:
# Entrada inválida: "Nicolás" será un problemaedad =int("Nicolás")# Lanza un error
Para manejar este tipo de errores, más adelante se verá cómo implementar mecanismos de control y validación de datos, asegurando que cada entrada sea válida antes de su transformación.
Sigue practicando y experimentando con este increíble mundo de transformaciones de tipos en Python. La clave está en comprender cómo estos pueden influir en tus programas y cómo pueden manejarse eficazmente.
Hola, un pequeño atajo para transformar directamente el input:
Gracias por el aporte José Beltran. Es de mucha ayuda.
Genial!
Aprovechando que finalizó este módulo, quiero darles un tip.
Al momento de declarar una variable o constante, agreguen el tipo de dato a la misma. Por ejemplo:
Otro ejemplo: Un función que recibe dos parámentros (num1, num2) de tipo entero, que retorna True si num1 es diferente de num2, si no se cumple esa condición entonces retorna False.
Esto se ha estado utilizado desde la versión 3.5 de Python. Ayuda sobre todo al momento en que otros leen nuestro código y crear software más profesional, también pueden crear sus tipos personalizados.
Parece una muy buena practica para asignarle a la variable el tipo de dato esperado.
Me gusta mucho esta practica para cambiarlo se ve mas presentable y fácil de comprender.
**También podemos colocar la coma para indicarle a Python que no estamos sumando si no concatenado **
EJEMPLO
edad =int(input("Ingresa tu edad: "));print("Tu edad en 10 años es", edad +10);
; No es necesario aquí jaja :)
la costumbre de Java del ; jajaja me pasa también
Resumen SM 🚀
Transformación de tipos
En python no se pueden hacer operaciones entre tipo de datos diferentes, por eso es importante transformarlos para que tengan el mismo tipo y así si se puedan operar.
float([numero int ó string])
int([numero float ó string])
str([numero])
By SsimorPro
La transformación de datos lo conocerás en el bajo mundo como Casteo o Casting. Dejo link para complementar clase.
Buenas noches envió un programa que hice con lo aprendido hasta ahora mejorando el ejercicio de la clase anterior
# Nunca pares de aprender
name=input("What's your name is? ")last_name=input("What's you lastname is? ")age=int(input('How old are you=> '))age +=10namecomp =name+" "+last_name
print(f'Hello, {namecomp}')print(f"Your age 10 years will be {age}")budgetJan =int(input('Income in January: '))budgetFeb =int(input('Income in February: '))bubgetMar =int(input('Income in March: '))budgetSum = budgetJan+ budgetFeb + bubgetMar
budgetProm = budgetSum /3print(f"{namecomp} The average of these months (Jan,Feb,Mar) is {budgetProm}")
muy bueno , pero tiene algunos errores de ingles
Lo ideal es que programas o en inglés, o en español 😅. namecomp sonaría mejor como full_name
Hola gente!
¿Quieren saber cuántas horas han vivido?
Se me ocurrió este programa con lo que vimos en clase.
### Cuántas horas has vivido
age =int(input("Hola, para saber cuántas horas has vivido por favor introduce tu edad en años: "))horas_ano =24*365horas_vida =round(age*horas_ano) #La función round omite los decimales
print(f"Has vivido alrededor de {horas_vida} horas en tus {age} años")
Genial idea, Miguel, sería interesante que con manejo de fechas, ingresando la fecha de nacimiento el programa devuelva la cantidad de horas vividas hasta el día de hoy. 😮
Otra forma para concatenar un número es la coma.
age =24print("Mi edad es", age)
my_age = input('Escribe tu edad =>')
my_age = int(my_age) # Aqui casteamos de str a int
print(f'Tu edad es {my_age}')
Trata de hacer este ejercicio en 2 líneas en vez de 3
#En dos líneas
my_age =int(input('whats your age ? : '))print( f' your age is {my_age}')
Int
x =int(1) # x will be 1y =int(2.8) # y will be 2z =int("3") # z will be 3
|
Floats:
x =float(1) # x will be 1.0y =float(2.8) # y will be 2.8z =float("3") # z will be 3.0w =float("4.2") # w will be 4.2
|
Strings:
x =str("s1") # x will be 's1'y =str(2) # y will be '2'z =str(3.0) # z will be '3.0'
Cómo convertir enteros en flotantes
El método de Python float() le permitirá convertir los enteros en flotantes. Para utilizar esta función, añada un entero dentro del paréntesis:
float(57)
En este caso, 57 se convertirá en 57.0.
También puede utilizar esto con una variable.
Declaremos que f es igual a 57 y, luego, imprima el nuevo flotante:
f =57print(float(f))
Output
57.0
Utilizando la función float(), podemos convertir enteros en flotantes.
name ='Sergio'print(type(name))name =12print(type(name))name =Trueprint(type(name))print('Sergio'+' Pinon')print(10+20)print('Sergio'+'12')age =12print('mi edad es '+str(age))print(type(age))print(f'Mi edad es {age}')age =input('escribe tu edad => ')print(type(age))age =int(age)print(f'Tu edad mas 10 es: {age +10}')
Gracias por la transcripcion, me salvaste de escribir todo jaja
Hola comunidad, alguien podria ayudarme a solucionar algo de replit por favor?
me aparece que tiene un problema al crear el enviroment de nix
y no se como solucionarlo
¿Puedes enviar una captura de tu problema por favor?
El int en el input, hace que el resultado sea automaticamente int.
Una forma de combinar cadenas de texto(str) con números(int) es utilizando el método format()
"Nos devuelve el tipo de dato guardado en la variable"print(type(variable))"Guardamos un string como un int"numero1 =int(numero1)"Guardamos una variable como un string"variable =str(variable)
Adelantándome un poco a esta clase, para que puedan validar si el valor ingresado con la función input es numérico y recién realizar la conversión a entero pueden hacerlo de esta manera:
age = input("Escribe tu edad ")
print(type(age))
print(age.isnumeric())
if age.isnumeric() == True:
age = int(age)
age += 10
print(f"Tu edad en 10 años será {age}")
Qué bien que explica este profe. Me agrada
Como nota 'cultural', el término sumatoria es un anglicismo que se origina de sumatory. Al menos la comunidad matemática en latinoamérica no ve con buenos ojos emplear 'sumatoria' ya que la operación suma se define como operación binaria, por lo que toda 'sumatoria' es una suma y no hay por qué llamarla de otra forma. Es como decirle 'productoria' al producto, 'divisoria' a la división, etc.
Algo similar pasa cuando alguien le dice 'grafo' a la gráfica o 'círculo' a la circunferencia. :v Saludos