Lesson 1
Entrada, impresión y números
1. Cómo leer y escribir en Python
Cada programa es finalmente un procesador de datos, por lo que deberíamos saber cómo ingresar y generar datos dentro de él. Existe una función, print()
, para generar datos desde cualquier programa de Python. Para usarlo, pase una lista de argumentos separados por comas que quiera imprimir a la función print()
. Veamos un ejemplo. Presione "ejecutar" y luego "siguiente" para ver cómo se ejecuta el programa línea por línea:
print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # dos estrellas se usan para la exponenciación (2 a la potencia de 16) print(37 / 3) # solo barra inclinada es una división print(37 // 3) # doble barra inclinada es una división entera # devuelve solo el cociente de la división (es decir, sin residuo) print(37 % 3) # signo de porcentaje es un operador de módulo # da el resto del valor a la izquierda dividido por el valor correcto
Para ingresar datos en un programa, usamos input()
. Esta función lee una sola línea de texto, como una cadena.
Aquí hay un programa que lee el nombre del usuario y lo saluda:
print('What is your name?') name = input() # lea una sola línea y guárdela en la variable "nombre" print('Hi ' + name + '!')
2. Suma de números y cadenas
Tratemos de escribir un programa que ingrese dos números e imprima su suma. Leemos los dos números y los almacenamos en las variables a
y b
usando el operador de asignación =
. En el lado izquierdo de un operador de asignación ponemos el nombre de la variable. El nombre podría ser una cadena de caracteres latinos ( AZ
, az
, 0-9
, _
) pero debe comenzar con una letra en el rango AZ
o az
. En el lado derecho de un operador de asignación ponemos cualquier expresión que Python pueda evaluar. El nombre comienza a señalar el resultado de la evaluación. Lea este ejemplo, ejecútelo y observe el resultado:
a = input() b = input() s = a + b print(s)
Después de ejecutar el ejemplo, podemos ver que imprime 57
. Como nos enseñaron en la escuela, 5 + 7
da 12
. Entonces, el programa está equivocado, y es importante entender por qué. El asunto es que, en la tercera línea s = a + b
Python ha "sumado" dos cadenas, en lugar de dos números. La suma de dos cadenas en Python funciona de la siguiente manera: simplemente están pegadas una tras otra. También a veces se llama "concatenación de cadenas".
¿Ves en el inspector de variables, en el lado derecho, que los valores ligados a las variables a
y b
están entre comillas? Eso significa que los valores que hay son cadenas, no números. Las cadenas y los números están representados en Python de manera diferente.
Todos los valores en Python se llaman "objetos". Cada objeto tiene un cierto tipo. El número 2 corresponde a un objeto "número 2" de tipo "int" (es decir, un número entero). La cadena 'hello'
corresponde a un objeto "cadena 'hola'" de tipo "cadena". Cada número de coma flotante se representa como un objeto de tipo "flotante". El tipo de objeto especifica qué tipo de operaciones se le pueden aplicar. Por ejemplo, si las dos variables "first"
y "second"
apuntan a los objetos de tipo int
, Python puede multiplicarlos. Sin embargo, si están apuntando a los objetos de tipo str
, Python no puede hacer eso:
first = 5 second = 7 print(first * second) # puedes usar comillas simples o dobles para definir una cadena first = '5' second = "7" print(first * second)
Para convertir (convertir) la cadena de dígitos en un número entero, podemos usar la función int()
. Por ejemplo, int('23')
da un objeto int con valor 23
.
Dada la información anterior, ahora podemos corregir el resultado incorrecto y generar la suma de los dos números correctamente:
a = int(input()) b = int(input()) s = a + b print(s)