Hola, un pequeño atajo para transformar directamente el input:
Introducción y primeros pasos con Python
¿Por qué aprender a programar en Python?
Accede a la versión más actualizada de este contenido
Herramientas del curso
Tu primer programa con Python
Herramientas para programar con Python
Playgrounds: Te doy la bienvenida a los ejercicios interactivos
Variables
Playgrounds: Modifica el valor de una variable
Quiz: Introducción y primeros pasos con Python
Tipos de datos en Python
Tipos de datos
Strings
Numbers
Booleans
Transformación de tipos
Playgrounds: Imprime el formato adecuado
Operadores y condicionales
Operadores aritméticos
Operadores de comparación
Comparación de números flotantes
Operadores lógicos: and y or
Operador lógico not
Condicionales
Proyecto: condicionales
Playgrounds: Identifica si un número es par o impar
Listas y diccionarios
String recargado
Indexing y slicing
Listas
Métodos de listas
Playgrounds: Agrega, modifica y elimina elementos de una lista
Tuplas
Proyecto: tuplas
Diccionarios: definición y lectura
Diccionarios: inserción y actualización
Playgrounds: Agrega, modifica y elimina elementos de un diccionario
Ciclos
Loops: While
Loops: For
Playgrounds: Agrega solo los números positivos de una lista
Ciclos anidados
¡Es tu turno: crea un tutorial!
Cierre
Proyecto: aplicando ciclos
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
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.
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 = 5
print(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 = True
print(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.
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:
Concatenación de strings:
Al concatenar strings, el operador +
los une:
resultado = "Nicolás " + "Molina"
# Salida: Nicolás Molina
Suma de enteros:
La suma entre números funciona diferente:
suma = 10 + 20
# Salida: 30
Error al mezclar tipos:
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
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 = 12
print("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.
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.
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 problema
edad = 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.
Aportes 171
Preguntas 20
Hola, un pequeño atajo para transformar directamente el input:
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.
**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);
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.
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 += 10
namecomp =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 / 3
print(f"{namecomp} The average of these months (Jan,Feb,Mar) is {budgetProm}")
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*365
horas_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")
Otra forma para concatenar un número es la coma.
age = 24
print("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
Int
x = int(1) # x will be 1
y = int(2.8) # y will be 2
z = int("3") # z will be 3
|
Floats:
x = float(1) # x will be 1.0
y = float(2.8) # y will be 2.8
z = float("3") # z will be 3.0
w = 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'
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 = 57
print(float(f))
Output
57.0
name = 'Sergio'
print(type(name))
name = 12
print(type(name))
name = True
print(type(name))
print('Sergio' + ' Pinon')
print(10+20)
print('Sergio' + '12')
age = 12
print('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}')
El int en el input, hace que el resultado sea automaticamente int.
edad = int(input('Edad: ‘))
print(type(edad))
edad += 10
print (f’Tu edad en 10 a#os sera: {edad}’)
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
Cuando queremos transformar un valor numérico o alfabético, lo realizamos a traves de la transformación, de allí es que podemos decir que Python es un lenguaje que está Orientada a Objetos:
int( )
: Construye un entero literal a través de otro litera de tipo entero, un literal flotante (elimina todos los decimales y los convierte en números enteros) o una cadena ( siempre y cuando sea de tipo entero.float( )
: Construye un numero flotante a partir de un literal entero.str( )
: Construye un literal a través de una gran cantidad de tipo de datos, incluyendo cadenas de textos, enteros y flotantes.name = "Camilo"
print(type(name))
name = 12
print(type(name))
name = True
print(type(name))
Producción:
<class 'str'>
<class 'int'>
<class 'bool'>
Ahora como ejercicio, queremos saber nuestra edad en un determinado tiempo que le indiquemos a la computadora.
age = int(input('Escribe tu edad: '))
age2 = int(input('Escribe en cuantos años quieres saber tu edad: '))
age = age + age2
print(f'Tu edad en {age2} años será de {age} años')
Producción:
Escribe tu edad: 33
Escribe en cuantos años quieres saber tu edad: 15
Tu edad en 15 años será de 48 años
Mi aporte
Hola, diferentes formas en las que se puede estructurar el código.
edad=0
edad=input("Ingrese su edad: ")
edad=int(edad)
print (type(edad))
#---------------------------------------------------
edad=input("Ingrese su edad: ")
edad=int(edad)
print (type(edad))
#---------------------------------------------------
edad=int(input("Ingrese su edad: "))
print (type(edad))
#---------------------------------------------------
print(type(int(input("Ingrese su edad: "))))
Me parece mas fácil así…
print(“Mi edad es”, age)
age: = int(input("Mi edad es: ")) print('Mi edad en 10 años es: ', age + 10 )
les recomiendo transformar los datos desde que empieza el imput, ayudaria mucho, saludos
Hola, otra forma de sumar el int
print(f’Tu edad en 10 años será {age + 10}’)
pensé que al final iba a test el mensaje de error, pero bueno. Buena la clase.
Aca esta mi respuesta
<code> Age = input('Escribe tu edad => ')
print(type(Age))
Age = int(Age)
Age += 10
print(f'Tu edad en 10 años mas {Age}')
Las f-strings, también conocidas como “Formated string literals”, son una forma de formatear cadenas en Python que se introdujo en Python 3.6. Permiten incrustar expresiones dentro de las cadenas de caracteres que serán evaluadas en tiempo de ejecución y cuyo resultado se insertará en la cadena.
age = 24
print(f"Mi edad es {age}
Acá les dejo otra manera de realizar el ejemplo brindado por Nicolas.
Así me quedó
name = "luca"
last_name = "Modrick"
age = 35
is_single = True
is_single = not is_single
print(name + last_name + str(is_single) + str(age))
logre en base a esta clase en el minuto 5:47 concatenar print cosa que me daba mucha curiosidad y en futuras practicas lo pondre a prueba, solo me falta el pequeño detalle de que al momento de ejecutar me salga con el espacio pero poco a poco se logra en hora buena por este curso. continuamos la reproduccion en el min. 5:47 para seguir aprendiendo y no desfasar del tema.
Igual se podría concatenar un texto con un número de la siguiente manera
age = 15
print( "mi edad es ", age)
Mi aporte para ahorrar una linea:
age = input("Dime tu edad: ")
print(type(age)) #esta variable es un string
print(f"Tu edad en 10 años sera: {int(age) + 10}") #se usa la funcion "int" para convertir el input en un numero entero
int() puede transformar directamente un input, sin embargo es peligroso porque no hay espacio para un manejo de errores
age = int(input("Ingresa tu edad: "))
age = int (input (“Escribe tu edad:”))
print(“En 10 anos tu edad será:” , age+10)
para manipular el tipo de dato podemos simplificar la línea usando la letra f y seguido podemos encerrar el tipo de dato con { }
age = 36
print("Mi edad es:", age)
print("Mi edad es: " + str(age))
print(f"Mi edad es: {age}")
print(type(age)) # <class 'int'>
print(f"Tu edad en 10 años será: {age + 10}")
age2: int
age2 = int(input("¿Cuál es tu edad? "))
print(f"Tu edad es: {age2}")
print(type(age2)) # <class 'int'>
Me encanto la clase de transformar un numero a string o de string a numero. Es algo un poco delicado. Hay que aprender mas adelante.
sabiendo que este curso es un rediseño del anterior que estaba sigo sin entender porque siguen haciendo prácticas que no son recomendables hacer como programador, el hecho de que usen varias líneas para hacer lo que fácilmente se puede hacer en una o que no expliquen en que casos es necesario hacer los casteos es algo que no entiendo de los cursos de platzi.
para que se avienten hacer lo de "print(Mi edad es “+str(age)” simplemente usen esto "print(“Mi edad es " , ege)” aunque se que el objetivo de la clase es ver como es posible hacer los casteos a las variables en la practica lo que se quiere lo practico y lo rapido, entonces no le veo mucho sentido usar la forma que se ve en la clase.
✅
name = "Daniel"
print(type(name))
name = 12
print(type(name))
name = True
print(type(name))
print("Daniel" + " Dobles")
print(10 +20)
age = 28
print("mi edad es: " + str(age))
print(f"mi edad es: {age}")
age = input('escribe tu edad =>')
print(type(age))
age = int(age)
age += 10
print(f'tu edad en 10 años será {age}')
py me encanta la verdad
Comparto mi aportación con un condicional de que en el input solo sea número.
print("EJERCICIO... SI QUIERES SALIR DEL PROGRAMA ESCRIBE 'salir' o 'exit'")
age = input("Escribe tu edad ")
while age.isnumeric() == False:
print("La edad debe ser un numero")
age = input("Escribe tu edad ")
if age.isnumeric() == True:
print(f"Tu edad es de {age}")
break
elif age == "salir" or age =="exit":
break
<x = str(1) # x será '1' >
<x = int(1) # x será 1
y = int(2.8) # y será 2
z = int("3") # z será 3>
una manera mas facil es declarar de un inicio el input en un int
edad = int (input("inserte tu edad")) #solicitamos por medio de un int al usuario su edad
futura_edad= edad+10 #creamos una varibale con el calculo
print(f"tu edad en 10 años sera {futura_edad}")
Python nos permite convertir de un tipo de dato a otro tipo de dato, esto lo podemos lograr de diferentes formas.
Al reasignar el dato de una variable, Python también cambiará el tipo de dato.
name = "Nicolás"
print(type(name)) #@ <class 'str'>
name = 12
print(type(name)) #@ <class 'int'>
Python tiene varias funciones que nos permiten transformar tipos de datos.
age = 12
print(type(str(age))) #@ <class 'str'>
#cambiando de forma dinamica los tipos de datos
name = "Nicolas"
print(type(name))
name = 12
print(type(name))
name = True
print(type(name))
#concatenando dos strings, int y ambos
print("Nicolas" + " Molina")
print(10 + 20)
#aca saldra un error porqueu no puede concatenar u operar dos tipos de datos diferentes
print("Nicolas" + "12")
#en este caso, convertimos la variable age, que es int, a un string, con la funcion str
age = 12
print("Mi edad es " + str(age))
#otra forma de hacerlo, usando la funcion f y {variable}
print(f"Mi edad es {age}")
#programa para sumar edad
age = input('Escribe tu edad => ')
print(type(age))
#transoformando el input string en un integer
age = int(age)
age += 10
print(f'Tu edad en 10 años será {age}')
#<class 'int'> comando para transormar directamente el input de str a int
# Al momento de declarar una variable o constante, agreguen el tipo de dato a la misma
# Por ejemplo: name: str = 'Name', age: int = 32
#booleans
single = True
print(single)
single = False
print(single)
#operador not
single = not True
print(single)
single = not single
print(single)
La forma en que yo lo hice para ahorra lineas de código.
un script sencillo de como funciona las transformaciones
<code>
###transformacion de datos
numero = input("Ingresa un numero: ")
numero = int(numero)
numero += 10
print(numero)
Mi aporte.
age = int(input('Mi edad es: '))
print('Mi edad en 10 años sera: ’ , age + 10 )
que le pasa a Platzy, los videos se pausan , todo se corta y no es la velocidad de internet porque puedo ver videos en otras paginas a toda resoluci’on sin problema. es algo de esta plataforma que se pega
A esta operación de transformación de datos en el mundo de la programación se le conoce como “cast” esa es la palabra que vas a escuchar cuando alguien se refiera a transformar datos, les dejo una lista de las funciones de cast que Python pone disponibles:
- **int(x):** # Convierte el valor x a un entero.
- **float(x):** # Convierte el valor x a un número de punto flotante.
- **str(x):** # Convierte el valor x a una cadena de texto.
- **bool(x):** # Convierte el valor x a un valor booleano.
- **list(x):** # Convierte el valor x en una lista.
- **tuple(x):** # Convierte el valor x en una tupla.
- **set(x):** # Convierte el valor x en un conjunto.
- **dict(x):** # Convierte el valor x en un diccionario.
- **chr(x):** # Convierte un número entero x en su representación de carácter Unicode correspondiente.
- **ord(x):** # Convierte un carácter x en su representación numérica de Unicode correspondiente.
- **complex(real, imag):** # Crea un número complejo con la parte real real y la parte imaginaria imag.
- **bytes(x):** # Convierte el valor x en un objeto de bytes inmutable.
- **bytearray(x):** # Convierte el valor x en un objeto de bytes mutable.
- **memoryview(x):** # Crea una vista de memoria del objeto x, que permite acceder a los datos en el búfer de memoria de x.
- **ascii(x):** # Devuelve una representación de escape de caracteres ASCII para la cadena x.
- **bin(x):** # Convierte un entero x a una cadena binaria.
- **oct(x):** # Convierte un entero x a una cadena octal.
- **hex(x):** # Convierte un entero x a una cadena hexadecimal.
Espero les sirva, saludos!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?