Entrada de información y manejo de tipos de datos en Python
Resumen
En Python, cuando trabajamos con proyectos que requieren interacción del usuario, es común solicitar datos como correo o contraseña para ejecutar acciones específicas. Este mismo enfoque es útil para entender la función input.
¿Cómo se recibe información del usuario en Python?
Para recibir información del usuario desde la consola, creamos una variable y asignamos el resultado de la función input. Por ejemplo, para pedir el nombre del usuario:
nombre =input("Ingrese su nombre: ")print(nombre)
Al ejecutar este código, se habilita una sección para introducir información. Ingresamos un nombre, presionamos Enter y se imprime el valor guardado en la variable nombre.
¿Qué ocurre si eliminamos la función print?
Si eliminamos print y ejecutamos el código, el nombre ingresado no se mostrará en la consola:
nombre =input("Ingrese su nombre: ")
Para ver el resultado, es imprescindible usar print.
Podemos solicitar la edad del usuario creando una variable edad y utilizando input, luego imprimimos ambos valores:
nombre =input("Ingrese su nombre: ")edad =input("Ingrese su edad: ")print(nombre)print(edad)
Al ejecutar, ingresamos el nombre y la edad, y ambos valores se muestran en pantalla.
¿Cuál es el tipo de dato devuelto por input?
El resultado de input es siempre un string, incluso si ingresamos un número. Podemos verificar el tipo de dato usando type:
name =input("Ingrese su nombre: ")age =input("Ingrese su edad: ")print(type(name))print(type(age))
Al ejecutar, se mostrará que ambos valores son de tipo str.
¿Cómo se convierte el tipo de dato (casting)?
Si queremos que la edad sea un número entero en lugar de un string, usamos el casting:
age =int(input("Ingrese su edad: "))
Ejecutamos y verificamos que age ahora es un entero. También podemos convertir a otros tipos de datos, como flotantes:
age =float(input("Ingrese su edad: "))
¿Qué sucede si ingresamos un dato inesperado?
Si el código espera un entero, pero ingresamos un string, se produce un ValueError. Es importante manejar el tipo de datos correctamente para evitar errores:
Además de entrada y salida, puedes ejecutar comandos directamente desde tu script de Python utilizando la función os.system().
Esto te permite interactuar con el sistema operativo y ejecutar programas externos desde tu código.
Que buen dato el último del os.system()
Muchas gracias por este aporte
Para el que no le deja escribir en consola sobre el input, asegúrese de que en el botón de Ejecutar, esté en Run Python File in Dedicated Terminal
Opa, en algunos casos que así pueda parecer, gracias por el aporte
Pero sabes que cuando ejecuto en saluda si me aparece ingresar el nombre, pero como tu explicaste no va a dejar, asi que me fui para la terminal pero cuando doy Run no me aparece donde diga ingresar nombre
Cabe mencionar que en el desarrollo normal de un software de producción, es importante “sanitizar” las entradas del usuario, esto es validar que los tipos de datos sean los esperados y prevenir inyección de datos malintencionados.
Excelente aporte!
# Operaciones de Entrada/Salida en Consola# Entrada de datos
nombre =input("¿Cuál es tu nombre? ")edad =int(input("¿Cuántos años tienes? "))altura =float(input("¿Cuál es tu altura en metros? "))# Salida de datos
print("\nDatos ingresados:")print(f"Nombre: {nombre}")print(f"Edad: {edad} años")print(f"Altura: {altura} metros")# Realizar algunas operaciones y mostrar resultados
a =int(input("\nIngresa un número entero para a: "))b =int(input("Ingresa otro número entero para b: "))print("\nOperaciones Aritméticas")print(f"Suma: {a} + {b} = {a + b}")print(f"Resta: {a} - {b} = {a - b}")print(f"Multiplicación: {a} * {b} = {a * b}")print(f"División: {a} / {b} = {a / b}")print(f"División Entera: {a} // {b} = {a // b}")print(f"Módulo: {a} % {b} = {a % b}")print(f"Potencia: {a} ** {b} = {a ** b}")print("\nOperadores de Comparación")print(f"Igual: {a} == {b} -> {a == b}")print(f"Distinto: {a} != {b} -> {a != b}")print(f"Mayor que: {a} > {b} -> {a > b}")print(f"Menor que: {a} < {b} -> {a < b}")print(f"Mayor o igual que: {a} >= {b} -> {a >= b}")print(f"Menor o igual que: {a} <= {b} -> {a <= b}")print("\nOperadores Lógicos")print(f"and: {a} > {b} and {a} > 0 -> {a > b and a > 0}")print(f"or: {a} > {b} or {a} < 0 -> {a > b or a < 0}")print(f"not: not({a} > {b}) -> {not(a > b)}")print("\nOperadores de Asignación")c =10print(f"Asignación: c = {c}")c +=5print(f"Asignación de suma: c += 5 -> c = {c}")c -=3print(f"Asignación de resta: c -= 3 -> c = {c}")c *=2print(f"Asignación de multiplicación: c *= 2 -> c = {c}")c /=4print(f"Asignación de división: c /= 4 -> c = {c}")c %=3print(f"Asignación de módulo: c %= 3 -> c = {c}")c =10c //= 2print(f"Asignación de división entera: c //= 2 -> c = {c}")c **=3print(f"Asignación de potencia: c **= 3 -> c = {c}")print("\nOperadores Bit a Bit")print(f"AND: {a} & {b} -> {a & b}")print(f"OR: {a} | {b} -> {a | b}")print(f"XOR: {a} ^ {b} -> {a ^ b}")print(f"NOT: ~{a} -> {~a}")print(f"Desplazamiento a la izquierda: {a} << 1 -> {a << 1}")print(f"Desplazamiento a la derecha: {a} >> 1 -> {a >> 1}")# Salida final
print("\nGracias por utilizar el programa. ¡Hasta la próxima!")
Buenísimo tu código, he aprendido un montón viéndolo!
Excelente manera de aplicar lo aprendido hasta ahora, veo que lo nutriste con otros temas fuera del curso. Saludos.
¡Hola! Aquí dejo mis apuntes con el script y su ejecución:
Apuntes:
Script:
Ejecución:
Al realizar un input el resultado siempre será de tipo str a menos que indiquemos lo contrario en la sentencia (casting)
ejemplo:
age =int(input("ingrese su edad: "))
Tablita de consulta rápida:
16 es el nombre del Androide de Dragon Ball Z,, valido
De esta forma se ve mas interesante :)
name =input('What is your name? ')print(f'Hello {name}')age =int(input('How old are you? '))print(f'Your age is {age} {name} !')
Aquí les dejo una captura del script que hice con las validaciones para nombre y edad, manejo de errores y lo más modular posible. Justo coincidió con el ValueError mencionado al final por la profesora.
Un Output:
en que programa ejecutas tu código?, se ve genial con los espacios coloreados jeje
Excelente tema
Por mi parte hice algo sencillo pero me comió la neurona que tenía jajaja:
edad =0while edad ==0:try: numero =int(input("Ingresa tu edad: ")) edad = numero
if edad >0:print(edad)breakexcept ValueError:print("Se necesita un número.") edad =0
Cuando el usuario ingresa el valor 0, el programa lo convierte a número y asigna edad = 0. Como la condición de que la edad sea mayor que 0 no se cumple, el programa no muestra nada. Sin embargo, debido a que el break está colocado fuera del if, el ciclo se rompe igual y el programa termina, aunque en realidad debería seguir pidiendo un número válido.
Por ejemplo podrias hacer asi:
edad = 0
while edad == 0:
try:
numero = int(input("Ingresa tu edad: "))
if numero > 0:
edad = numero
print("Edad ingresada:", edad)
break
else:
print("La edad debe ser mayor que 0.")
except ValueError:
print("Se necesita un número.")
En la versión que estoy usando actualmente, cuando le pido al usuario ingresar la edad y le pido a python que imprima el typo de edad, me da int
Ya vi que me paso, cuando le pedí la edad lo hice así:
edad = int(input("Ingresa tu edad: "))
Mis apuntes del dia de hoy
Tengo dos preguntas:
1. porque usan "f" en el código en vez de usar solo print ?
2. ¿Alguien sabe porque no me deja ejecutar todo con la flecha de arriba solo con shift enter me deja ejecutar y ya hice de todo y le pregunte a chatgpt pero no he podido solucionarlo :(?
me sale ValueError como lo corrijo?
Debes manejar la excepción ValueError usando un bloque try-except. En el except puedes imprimir un mensaje indicando que debe introducir un número válido.
investigando un poco el error, Para evitar que tu programa en Python se rompa al recibir una cadena de caracteres cuando espera un número, puedes usar manejo de excepciones; pero viendo los enunciado de las clases no lo mencionan, ¿puede ser que lo incluyan más adelante o es parte de un curso más avanzado ?
Hay dos formas de hacerlo uno como mencionas es haciendo uso del manejo de excepciones, el otro enfoque que a mi me gusta más es usando programación defensiva y es manejar cualquier posible error que se presente y que la excepción sea la ultima opción.
Para el caso del ejemplo con edad podemos validar usando el método isnumeric() que tiene los string y retorna True si el string es un número valido así se puede hacer luego el casting.
age =input('Ingrese su edad: ')ifnot age.isnumeric():print('Ingrese un número valido') age =input('Ingrese su edad: ')
Hola, El manejo de excepciones lo veremos mas adelante :)
**¡El input() es esa puerta mágica entre el usuario y nuestro código! 🚪🐍**
Este ejemplo demuestra algo clave: **en Python, todo lo que entra por input() es texto** (aunque escribas números). El *casting* es como el traductor que convierte ese "hola" en datos útiles.
**3 errores comunes que vi en mis primeros pasos (y cómo evitarlos):**
1️⃣ **Asumir que un número ingresado es número**:
edad =input("Edad: ") print(edad +5)# ¡Error! Concatenar str + int  ```  \*Solución:\* Usar `int()` o `float()` \*\*con validación\*\*: ```python  try:   edad = int(input("Edad: "))  except ValueError:   print("¡Solo números, por favor!")  ```  2️⃣ \*\*Olvidar el mensaje en el `input`\*\*: ```python  nombre =input()# ¿Qué debo escribir? 😅  ```  3️⃣ \*\*No sanitizar inputs peligrosos\*\*(como contraseñas): ```python  from getpass import getpass # Para ocultar caracteres  clave = getpass("Contraseña: ") ```  
# Solicita el nombre del usuario
name =input("Inserta por favor tu nombre: ")print("Eres:", name)print("Tipo de dato de 'name':",type(name))print("============================")# Solicita edad y salario con manejo de errores
try: age =int(input("Inserte su edad: ")) sueldo =float(input("Inserte su salario: "))print(f"Años: {age} (Tipo: {type(age)})")print(f"Salario: {sueldo} (Tipo: {type(sueldo)})")except ValueError:print("⚠️ Error: Ingresaste un dato que no es numérico.")