Tutorial Python PDF
Tutorial Python PDF
1 Conceptos Básicos
1.1 ¡Bienvenido a Python!
Python es un lenguaje de programación de alto nivel, con aplicaciones en numerosas áreas,
incluyendo programación web, scripting, computo científico e inteligencia artificial.
Es muy popular y utilizado por organizaciones como Google, NASA, la CIA y Disney.
Python es un:
• Lenguaje de programación
• Conjunto de herramientas de edición.
• Ambiente de desarrollo
1.2 ¡Bienvenido a Python!
Las tres versiones principales de Python son 1.x, 2.x y 3.x. Estos se subdividen en versiones menores,
tales como 2.7 y 3.3.
El código escrito para Python 3.x está garantizado para funcionar en todas las versiones futuras.
Actualmente se utilizan Python versión 2.x y 3.x.
Este curso cubre Python 3.x, pero no es difícil cambiar de una versión a otra.
Cuando use una computadora, deberá descargar e instalar Python desde www.python.org.
Tenga en cuenta el >>> en el código anterior. Son el símbolo del sistema de la consola de
Python. Python es un lenguaje interpretado, lo que significa que cada línea se ejecuta a
medida que se ingresa. Python también incluye IDLE, el entorno de desarrollo integrado,
que incluye herramientas para escribir y depurar programas completos.
>>>print(“Hi”);
1.4 Imprimir texto
La declaración de print también se puede utilizar para generar varias líneas de texto.
Por ejemplo:
>>> 2 + 2
4
>>> 5 + 4 - 3
6
Los espacios alrededor de los signos más y menos aquí son opcionales (el código
funcionaría sin ellos), pero hacen que sea más fácil de leer.
>>> 1 + 2 + 3
6
>>> 2 * (3 + 4)
14
>>> 10/2
5.0
El uso de una barra oblicua para dividir números produce un decimal (o flotante, como se
llama en la programación). Tendremos más información sobre las flotantes en una lección
posterior.
>>> (4 + 8) / 2
• 6.0
• 8
• 6
1.7 Operaciones simples
El signo menos indica un número negativo.
Las operaciones se realizan en números negativos, al igual que en números positivos.
>>> -7
-7
>>> (-7 + 2) * (-4)
20
Los signos más también se pueden colocar delante de los números, pero esto no tiene
ningún efecto y se usa principalmente para enfatizar que un número es positivo para
aumentar la legibilidad del código.
>>> ( -5 - 1) * 3
-18
>>> 11 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
• 0
• -5
• 5
1.9 Flotantes
Los flotantes se usan en Python para representar números que no son enteros.
Algunos ejemplos de números que se representan como flotantes son 0.5 y -7.8237591.
Se pueden crear directamente ingresando un número con un punto decimal, o usando operaciones
como la división en enteros. Los ceros adicionales al final del número se ignoran.
>>> 3/4
0.75
>>> 9.8765000
9.8765
• 7.0
• 2/4
• 7
1.10 Flotantes
Como viste anteriormente, dividir dos enteros produce un flotante.
Un flotante también se produce al ejecutar una operación en dos flotantes, o en un flotante y un
entero.
>>> 8 / 2
4.0
>>> 6 * 7.0
42.0
>>> 4 + 1.65
5.65
Se puede agregar un flotante a un entero, porque Python convierte silenciosamente el
entero en un flotante. Sin embargo, esta conversión implícita es la excepción, más bien la
regla en Python: por lo general, debe convertir los valores manualmente si desea operar
con ellos.
>>> 1 + 2 + 3 + 4.0 + 5
15.0
1.11 Exponenciación
Además de la suma, la resta, la multiplicación y la división, Python también admite la
exponenciación, que es elevar un número a la potencia de otro. Esta operación se realiza utilizando
dos asteriscos.
>>> 2 ** 5
32
>>> 9 ** (1/2)
3.0
>>> (1 + 3 ) ** 2
16
Este código muestra que 6 entra en 20 tres veces, y el resto cuando 1.25 se divide por 0.5 es 0.25.
>>> 20 // 6
3
>>> 1.25% 0.5
0.25
>>> 7% (5 // 2)
• 1
• 7
• 0
1.13 Cadenas
Si desea usar texto en Python, debe usar una cadena.
Se crea una cadena al ingresar texto entre dos comillas simples o dobles.
Cuando la consola de Python muestra una cadena, generalmente usa comillas simples. El
delimitador utilizado para una cadena no afecta su comportamiento de ninguna manera.
Hay otro tipo de cadena en Python llamado docstrings que se usa para comentar en
bloque, pero en realidad es una cadena. Aprenderá sobre esto en futuras lecciones.
Complete el código para crear una cadena que contenga "Hello world".
1.14 Cadenas
Algunos caracteres no se pueden incluir directamente en una cadena. Por ejemplo, las comillas
dobles no se pueden incluir directamente en una cadena de comillas dobles; esto causaría que
termine prematuramente
Los personajes como estos deben escaparse colocando una diagonal inversa antes que ellos.
Otros caracteres comunes que se deben escapar son las nuevas líneas y las barras invertidas.
Las comillas dobles solo deben escaparse en cadenas de comillas dobles, y lo mismo es cierto para
las cadenas de comillas simples.
>>> 'Brian\'s mother: He\'s not the Messiah. He\'s a very naughty boy!'
'Brian's mother: He's not the Messiah. He's a very naughty boy!'
Las diagonales invertidas también se pueden usar para poner ciertos caracteres,
caracteres Unicode arbitrarios y varias otras cosas que no se pueden imprimir de manera
confiable. Estos caracteres se conocen como caracteres de escape.
Complete el código para crear una cadena que contenga una comilla doble.
'Customer: Good morning.\nOwner: Good morning, Sir. Welcome to the National Cheese
Emporium.'
1.16 Salida
Por lo general, los programas toman datos y los procesan para producir resultados.
En Python, puede usar la función de print para producir resultados. Esto muestra una
representación textual de algo en la pantalla.
>>> print(1 + 1)
2
>>> print("Hello\nWorld!")
Hello
World!
• 'print("print")'
• Un mensaje de error
• print("print")
1.17 Entrada
Para obtener información del usuario en Python, puede usar la función con nombre intuitivo input.
La función solicita al usuario que ingrese y devuelve lo que ingresa como una cadena (con el
contenido escapado automáticamente).
Las funciones de print y input no son muy útiles en la consola de Python, que realiza
automáticamente la entrada y salida. Sin embargo, son muy útiles en programas reales.
No puede concatenar cadenas con números (enteros). Descubra por qué en la próxima
lección.
1.19 Concatenación
Incluso si sus cadenas contienen números, todavía se agregan como cadenas en lugar de enteros.
Agregar una cadena a un número produce un error, ya que, aunque puedan parecer similares, son
dos entidades diferentes.
In future lessons, only the final line of error messages will be displayed, as it is the only
one that gives details about the type of error that has occurred.
• "7" + 'eight'
• "one" + "2"
• 3+4
• '5' + 6
1.20 Operaciones con cadenas
Las cadenas también se pueden multiplicar por enteros. Esto produce una versión repetida de la
cadena original. El orden de la cadena y el número entero no importa, pero la cadena generalmente
viene primero.
Las cadenas no se pueden multiplicar por otras cadenas. Las cadenas tampoco pueden multiplicarse
por flotantes, incluso si las flotantes son números enteros.
>>> print("spam" * 3)
spamspamspam
>>> 4 * '2'
'2222'
En Python, los tipos que hemos usado hasta ahora han sido enteros, flotantes y cadenas.
Las funciones utilizadas para convertir a estos son int, float y str, respectivamente.
• “7”
• “34”
• 34
1.22 Conversión de tipo
Otro ejemplo de conversión de tipo es convertir la entrada del usuario (que es una cadena) en
números ( enteros o flotantes ), para permitir el desempeño de los cálculos.
• “210210”
• “420.0”
• 210210.0
• 420
1.23 Variables
Las variables juegan un papel muy importante en la mayoría de los lenguajes de programación, y
Python no es una excepción. Una variable le permite almacenar un valor asignándolo a un nombre,
que puede usarse para referirse al valor más adelante en el programa.
Para asignar una variable, use un signo igual. A diferencia de la mayoría de las líneas de código que
hemos visto hasta ahora, no produce ningún resultado en la consola de Python.
>>> x = 7
>>> print(x)
7
>>> print(x + 3)
10
>>> print(x)
7
Puede usar variables para realizar las operaciones correspondientes, tal como lo hizo con
números y cadenas. Como puede ver, la variable almacena su valor en todo el programa.
En Python, las variables no tienen tipos específicos, por lo que puede asignar una cadena a una
variable y luego asignar un número entero a la misma variable.
>>> x = 123.456
>>> print(x)
123.456
>>> x = "This is a string"
>>> print(x + "!")
This is a string!
Sin embargo, no es una buena práctica. Para evitar errores, trate de evitar sobrescribir la
misma variable con diferentes tipos de datos.
>>> x = 5
>>> y = _____
>>> print(x + y)
12
• “7”
• 7
• =7
1.25 Nombres de Variables
Se aplican ciertas restricciones con respecto a los caracteres que se pueden usar en los nombres de
variables de Python. Los únicos caracteres permitidos son letras, números y guiones bajos. Además,
no pueden comenzar con números.
>>> this_is_a_normal_name = 7
>>> 123abc = 7
SyntaxError: invalid syntax
• a-variable-name
• A_VARIABLE_NAME
• a variable name
1.26 Variables
Intentar hacer referencia a una variable que no ha asignado provoca un error.
Puede usar la instrucción del para eliminar una variable, lo que significa que se elimina la referencia
del nombre al valor, e intentar usar la variable provoca un error. Las variables eliminadas se pueden
reasignar a más tarde de forma normal.
Las variables foo y bar se llaman variables metasintácticas , lo que significa que se usan
como nombres de marcador de posición en el código de ejemplo para demostrar algo.
>>> spam = 2
>>> eggs = 3
>>> del spam
>>> eggs = 4
>>> spam = 5
>>> print(spam * eggs)
20
1.27 Operadores In-Place
Los operadores In-Place le permiten escribir código como 'x = x + 3' de manera más concisa, como
'x + = 3'.
>>> x = 2
>>> print(x)
2
>>> x += 3
>>> print(x)
5
¿Cuál es el resultado de este código?
>>> x = 4
>>> x *= 3
>>> print(x)
12
1.28 Operadores In-Place
Estos operadores también se pueden usar en tipos distintos de números, como cadenas.
>>> x = "spam"
>>> print(x)
spam
>>> x += "eggs"
>>> print(x)
spameggs
Muchos otros idiomas tienen operadores especiales como '++' como acceso directo para 'x
+ = 1'. Python no tiene estos.
>>> x = "a"
>>> x *= 3
print(x)
aaa
1.29 Usando un editor
Hasta ahora, solo hemos usado Python con la consola, ingresando y ejecutando una línea de código
a la vez.
Los programas reales se crean de manera diferente; Muchas líneas de código se escriben en un
archivo y luego se ejecutan con el intérprete de Python .
En IDLE, esto se puede hacer creando un nuevo archivo, ingresando algún código, guardando el
archivo y ejecutándolo. Esto se puede hacer con los menús o con los atajos de teclado Ctrl-N, Ctrl-S
y F5.
Cada línea de código en el archivo se interpreta como si la hubiera ingresado una línea a la vez en la
consola.
x=7
x=x+2
print(x)
Resultado:
Puede ejecutar, guardar y compartir sus códigos de Python en nuestro Code Playground,
sin instalar ningún software adicional.
Consulte esta lección si necesita instalar el software en su computadora.
• 73.0
• 10.0
• 703
• cheese shop
• 'cheeseshop'
• "cheeseshop"
>>> x = 5
>>> y = x + 3
>>> y = int(str(y) + "2")
>>> print(y)
82
Complete los espacios en blanco para declarar una variable, agregue 5 e imprima su valor.
>>> x = 4
>>> x + = 5
>>> print (x)
>>> x = 3
>>> num = 17
>>> print(num % x)
2
2 Estructuras de Control
2.1 Booleanos
Otro tipo en Python es el tipo Booleano. Hay dos valores booleanos: True y False.
Se pueden crear comparando valores, por ejemplo, utilizando el operador igual ==.
>>> 2 == 3
False
>>> "hello" == "hello"
True
Tenga cuidado de no confundir la asignación (un signo igual) con la comparación (dos
signos iguales).
>>> 1 != 1
False
>>> "eleven" != "seven"
True
>>> 2 != 10
True
>>> 7 != 8
• True
• False
2.3 Comparación
Python también tiene operadores que determinan si un número ( flotante o entero ) es mayor o
menor que otro. Estos operadores son > y < respectivamente.
>>> 7 > 5
True
>>> 10 < 10
False
¿Cuál es el resultado de este código?
• True
• False
2.4 Comparación
Los operadores: mayor o igual que, y menor o igual a son >= y <=.
Son los mismos que los operadores estrictos mayores y menores que los operadores, excepto que
devuelven True al comparar números iguales.
>>> 7 <= 8
True
>>> 9 >= 9.0
True
Los operadores, mayor que y menor que también se pueden usar para comparar cadenas
lexicográficamente (el orden alfabético de las palabras se basa en el orden alfabético de
sus letras componentes).
if expresión:
sentencias
Python usa sangría (espacio en blanco al comienzo de una línea) para delimitar bloques de
código. Otros lenguajes, como C, usan llaves para lograr esto, pero en Python la sangría es
obligatoria; Los programas no funcionarán sin él. Como puede ver, las declaraciones en el
if deben sangrarse.
• Todo ello
• Las declaraciones dentro de ella
• La primera línea
2.6 Sentencia if
Aquí hay un ejemplo de una declaración if:
if 10 > 5:
print("10 greater than 5")
print("Program ended")
La expresión determina si 10 es mayor que cinco. Como es así, se ejecuta la instrucción con sangría
y se emite "10 mayor que 5". Luego, se ejecuta la instrucción no sangrada, que no forma parte de la
instrucción if, y se muestra "Programa finalizado".
Resultado:
>>>
10 greater than 5
Program ended
>>>
Observe los dos puntos al final de la expresión en la instrucción if.
Como el programa contiene varias líneas de código, debe crearlo como un archivo
separado y ejecutarlo.
¿Cuál es el resultado de este código?
spam = 7
if spam > 5:
print("five")
if spam > 8:
print("eight")
• eight
• nada
• five
2.7 Sentencia if
Para realizar comprobaciones más complejas, la sentencias if pueden anidarse, una dentro de la
otra.
Esto significa que la sentencia if interna es la parte de la declaración de la externa. Esta es una forma
de ver si se cumplen múltiples condiciones.
Por ejemplo:
num = 12
if num > 5:
print("Bigger than 5")
if num <=47:
print("Between 5 and 47")
Resultado:
>>>
Bigger than 5
Between 5 and 47
>>>
num = 7
if num > 3:
print("3")
if num < 5:
print("5")
if num ==7:
print("7")
3
x=4
if x == 5:
print("Yes")
else:
print("No")
Resultado:
>>>
No
>>>
if 1 + 1 == 2:
if 2 * 2 == 8:
print("if")
else:
print("else")
• if
• No hay salida
• else
2.9 Sentencia else
Puede encadenar declaraciones if y else para determinar qué opción en una serie de posibilidades
es verdadera.
Por ejemplo:
num = 7
if num == 5:
print("Number is 5")
else:
if num == 11:
print("Number is 11")
else:
if num == 7:
print("Number is 7")
else:
print("Number isn't 5, 11 or 7")
Resultado:
>>>
Number is 7
>>>
Complete los espacios en blanco para comparar las variables y generar el texto correspondiente:
x = 10
y = 20
if x > y:
print("if statement")
else:
print("else statement")
Por ejemplo:
num = 7
if num == 5:
print("Number is 5")
elif num == 11:
print("Number is 11")
elif num == 7:
print("Number is 7")
else:
print("Number isn't 5, 11 or 7")
Resultado:
>>>
Number is 7
>>>
Una opción más corta para una instrucción "else if" es:
• elif
>>> 1 == 1 and 2 == 2
True
>>> 1 == 1 and 2 == 3
False
>>> 1 != 1 and 2 == 2
False
>>> 2 < 1 and 3 > 6
False
Python usa palabras para sus operadores booleanos, mientras que la mayoría de los otros
idiomas usan símbolos como &&, || y!.
• false
• true
• true false
2.12 Booleano Or
El operador or también toma dos argumentos. Se evalúa como True si alguno (o ambos) de sus
argumentos son True y False si ambos argumentos son False.
>>> 1 == 1 or 2 == 2
True
>>> 1 == 1 or 2 == 3
True
>>> 1 != 1 or 2 == 2
True
>>> 2 < 1 or 3 > 6
False
Complete los espacios en blanco para imprimir "Bienvenido".
age = 15
money = 500
if age > 18 or money > 100:
print("Welcome")
2.13 Boleano Not
A diferencia de otros operadores que hemos visto hasta ahora, not solo toma un argumento y lo
invierte.
>>> not 1 == 1
False
>>> not 1 > 7
True
if not True:
print("1")
elif not (1 + 1 == 3):
print("2")
else:
print("3")
2
2.14 Precedencia de operadores
La precedencia de operadores es un concepto muy importante en la programación. Es una
extensión de la idea matemática del orden de las operaciones (la multiplicación se realiza antes de
la suma, etc.) para incluir otros operadores, como los de la lógica booleana.
El siguiente código muestra que == tiene una prioridad mayor que or:
if 1 + 1 * 3 == 6:
print("Yes")
else:
print("No")
• Yes
• No
2.15 Precedencia de operadores
La siguiente tabla enumera todos los operadores de Python, desde la prioridad más alta hasta la
más baja.
x=4
y=2
if not 1 + 1 == y or x == 4 and 7 == 8:
print("Yes")
elif x > y:
print("No")
• No
• Yes
• Yes No
2.16 Ciclo while
Una instrucción if se ejecuta una vez si su condición se evalúa como True y nunca si se evalúa como
False.
Una instrucción while es similar, excepto que se puede ejecutar más de una vez. Las declaraciones
en su interior se ejecutan repetidamente, siempre que la condición se mantenga. Una vez que se
evalúa como False, se ejecuta la siguiente sección de código.
A continuación, se muestra un ciclo while que contiene una variable que cuenta de 1 a 5, momento
en el cual el ciclo termina.
i=1
while i <=5:
print(i)
i=i+1
print("Finished!")
Resultado:
>>>
1
2
3
4
5
Finished!
>>>
i=3
while i>=0:
print(i)
i=i-1
• 4
Puede detener la ejecución del programa utilizando el acceso directo Ctrl-C o cerrando el
programa.
Complete los espacios en blanco para crear un bucle que incremente el valor de x en 2 e
imprima los valores pares.
x=0
while x <=20:
print(x)
x += 2
2.18 Break
Para finalizar una, ciclo while prematuramente, la instrucción break puede ser usada.
Cuando se encuentra dentro de un bucle, la instrucción break hace que el bucle termine de
inmediato.
i=0
while 1==1:
print(i)
i=i+1
if i >= 5:
print("Breaking")
break
print("Finished")
Resultado:
>>>
0
1
2
3
4
Breaking
Finished
>>>
i=5
while True:
print(i)
i=i-1
if i <= 2:
break
• 3
2.19 Continue
Otra declaración que se puede usar dentro de los bucles es continue.
A diferencia de break, continue salta de nuevo a la parte superior del bucle, en lugar de detenerlo.
i=0
while True:
i = i +1
if i == 2:
print("Skipping 2")
continue
if i == 5:
print("Breaking")
break
print(i)
print("Finished")
Resultado:
>>>
1
Skipping 2
3
4
Breaking
Finished
>>>
• continue
2.20 Listas
Las listas son otro tipo de objeto en Python. Se utilizan para almacenar una lista indexada de
artículos.
Se crea una lista usando corchetes con comas que separan los elementos.
Se puede acceder al determinado elemento de la lista utilizando su índice entre corchetes.
Por ejemplo:
Resultado:
>>>
Hello
world
!
>>>
nums = [5, 4, 3, 2, 1]
print(nums[1])
4
2.21 Listas
Se crea una lista vacía con un par de corchetes vacíos.
empty_list = []
print(empty_list)
Resultado:
>>>
[]
>>>
La mayoría de las veces, una coma no seguirá el último elemento de una lista. Sin
embargo, es perfectamente válido colocar uno allí, y se recomienda en algunos casos.
[2,]
• 1
• 2
• 3
2.22 Listas
Normalmente, una lista contendrá elementos de un solo tipo de elemento, pero también es posible
incluir varios tipos diferentes.
Las listas también se pueden anidar dentro de otras listas.
number = 3
things = ["string", 0, [1, 2, number], 4.56]
print(things[1])
print(things[2])
print(things[2][2])
Resultado:
>>>
0
[1, 2, 3]
3
>>>
Las listas de listas a menudo se usan para representar cuadrículas 2D, ya que Python
carece de las matrices multidimensionales que se usarían para esto en otros idiomas.
Complete los espacios en blanco para crear una lista e imprimir su tercer elemento.
>>>
w
>>>
Por ejemplo:
nums = [7, 7, 7, 7, 7]
nums[2] = 5
print(nums)
Resultado:
>>>
[7, 7, 5, 7, 7]
>>>
nums = [1, 2, 3, 4, 5]
nums[3] = nums[1]
print(nums[3])
2
Por ejemplo:
nums = [1, 2, 3]
print(nums + [4, 5, 6])
print(nums * 3)
Resultado:
>>>
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>>
Las listas y las cadenas son similares en muchos aspectos: las cadenas se pueden
considerar como listas de caracteres que no se pueden cambiar.
Complete los espacios en blanco para crear una lista, reasigne su segundo elemento e imprima
toda la lista.
Resultado:
>>>
True
True
False
>>>
nums = [10, 9, 8, 7, 6, 5]
nums[0] = nums[1] - 5
if 4 in nums:
print(nums[3])
else:
print(nums[4])
7
nums = [1, 2, 3]
print(not 4 in nums)
print(4 not in nums)
print(not 3 in nums)
print(3 not in nums)
Resultado:
>>>
True
True
False
False
>>>
Complete los espacios en blanco para imprimir "Sí" si la lista contiene 'z':