Guía Python
Guía Python
Qué es programar
Si buscamos una descripción en pocas palabras sobre qué es programar, encontraríamos frases
como: «crear software usando un lenguaje de programación», «darle instrucciones al
ordenador» o «enseñarle al ordenador a hacer algo».
Este es un curso práctico y creemos que es mejor que vayas descubriendo en qué consiste
programar, realizando precisamente esa actividad. En esta sección de introducción hablaremos
de forma breve sobre algunos conceptos esenciales, algo así como el «abc» que nos permita
comenzar a andar.
Para ayudar a entender la programación a un nivel básico se suele utilizar símiles, como las
instrucciones de montaje de un mueble o una receta de cocina. En ellas explicamos cómo
realizar algo a través de una serie de pasos detallados. Por ejemplo, al escribir una receta,
primero hemos tenido que descomponer mentalmente el proceso de cocinar un plato en una
serie de tareas con un orden lógico:
Limpiar el pescado
Dorar la cebolla
etc…
Luego escribiremos esos pasos. Podría ser en español, en inglés o cualquier otro idioma, pero
las instrucciones seguirían siendo las mismas.
La sintaxis de estos lenguajes de programación es bastante más simple que nuestros idiomas y
utilizan un vocabulario y un conjunto de reglas mucho más reducido. Eso sí, son muy estrictas y
debemos seguirlas a rajatabla para que el ordenador pueda interpretarlas sin que produzca un
error.
En los primeros, como Javascript, un programa llamado intérprete ejecuta las sentencias a la
vez que las lee del fichero de texto donde están escritas. En estos casos, a los programas
también se le suele denominar scripts o guiones.
Instalaciones
https://www.python.org/downloads/windows/
Descargar instalador ejecutable de Windows x86-64
Comprobando la instalación y la version.
Necesitamos una aplicación para correr el programa, puede ser cualquier interprete de
comandos como visual code studio o sublime text3 como en el ejemplo que les traigo
https://www.sublimetext.com/3
https://python-para-impacientes.blogspot.com/2017/02/instalar-python-paso-paso.html
(Para Windows 7)
Descargamos la versión que va para nuestro sistema operativo e instalamos
Una vez el programa abierto abrimos un nuevo archivo y modificamos las herramientas,
seleccionando Build System y tildando Python
Se utiliza para:
Sangría de Python
La sangría hace referencia a los espacios al principio de una línea de
código.
if 5 > 2:
if 5 > 2:
Python Variables
En Python, las variables se crean al asignarle un valor:
x=5
y = "¡Hola, mundo!"
print(x)
print(y)
Comentarios
Python tiene capacidad de comentarios con el propósito de
documentación en código.
#Esto es un comentario.
print("Hola, Mundo!")
Los comentarios se pueden colocar al final de una línea, y Python
ignorará el resto de la línea:
Los comentarios no tienen que ser texto para explicar el código, también
se puede utilizar para evitar que Python ejecute código:
#print("Hola, mundo!")
print("Salud, compañero!")
#Esto es un comentario
#Escribiendo en
print("Hola, mundo!")
Dado que Python omitirá los literales de cadena que no están asignados
a una variable, puede agregar una cadena de varias líneas (comillas
triples) en el código y colocar el comentario dentro de ella:
"""
Esto es un comentario
Escribiendo en
"""
print("Hola, mundo!")
Mientras la cadena no se asigne a una variable, Python leerá el código,
pero luego lo ignorará y ha realizado un comentario de varias líneas.
Variables
Creación de variables
Las variables son contenedores para almacenar valores de datos.
print(x)
print(y)
x=4
x = "Sally"
print(x)
x = "John"
print(x)
x = 'John'
print(x)
Nombres de variables
Una variable puede tener un nombre corto (como x e y) o un nombre
más descriptivo (edad, nombre, total_volumen). Reglas para variables de
Python:
myvar = "John"
my_var = "John"
_my_var = "John"
myVar = "John"
MYVAR = "John"
myvar2 = "John"
2myvar = "John"
my-var = "John"
my var = "John"
print(x)
print(y)
print(z)
print(x)
print(y)
print(z)
Variables de salida
La instrucción print Python se utiliza a menudo para generar variables.
x = "Asombroso"
print("Python es " + x)
y = "asombroso"
z=x+y
print(z)
y = 10
print(x + y)
y = "John"
print(x + y)
Variables globales
Las variables que se crean fuera de una función (como en todos los
ejemplos anteriores) se conocen como variables globales.
Las variables globales pueden ser utilizadas por todos, tanto dentro de
las funciones como fuera.
x = "Asombroso"
def myfunc():
print("Python es " + x)
myfunc()
Si crea una variable con el mismo nombre dentro de una función, esta
variable será local y solo se puede utilizar dentro de la función. La
variable global con el mismo nombre permanecerá como estaba, global y
con el valor original.
x = "Asombroso"
def myfunc():
x = "Fantastico"
print("Python es " + x)
myfunc()
print("Python es " + x)
Para crear una variable global dentro de una función, puede utilizar la
palabra clave.global
def myfunc():
global x
x = "fantastico"
myfunc()
print("Python es " + x)
def myfunc():
global x
x = "fantastico"
myfunc()
print("Python es " + x)
x=5
print(type(x))
x = 20 int
x = 20.5 float
x = 1j complex
x = range(6) range
x = True bool
x = b"Hello" bytes
x = bytearray(5) bytearray
x = memoryview(bytes(5)) memoryview
x = int(20) int
x = float(20.5) float
x = complex(1j) complex
x = range(6) range
x = bool(5) bool
x = bytes(5) bytes
x = bytearray(5) bytearray
x = memoryview(bytes(5)) memoryview
Números de Python
Hay tres tipos numéricos en Python:
int
float
complex
x = 1 # int
y = 2.8 # float
z = 1j # complex
Para verificar el tipo de cualquier objeto en Python, utilice la
función:type()
x=1
y = 2.8
z = 1j
print(type(x))
print(type(y))
print(type(z))
Int
Int, o entero, es un número entero, positivo o negativo, sin decimales, de
longitud ilimitada.
x=1
y = 35656222554887711
z = -3255522
print(type(x))
print(type(y))
print(type(z))
Flotante
Flotar, o "número de punto flotante" es un número, positivo o negativo,
que contiene uno o más decimales.
x = 1.10
y = 1.0
z = -35.59
print(type(x))
print(type(y))
print(type(z))
El flotador también puede ser notación científica con una "e" para indicar
la potencia de 10.
x = 35e3
y = 12e4
z = -87.7e100
print(type(x))
print(type(y))
print(type(z))
Complejo
Los números complejos se escriben con una "j" como parte imaginaria:
x = 3+5j
y = 5j
z = -5j
print(type(x))
print(type(y))
print(type(z))
Conversión de tipos
Puede convertir de un tipo a otro con los métodos int(), float(), y:
complex()
x = float(1)
y = int(2.8)
#convertir de int a complejo:
z = complex(x)
print(x)
print(y)
print(z)
Conversión de Python
Especificar un tipo de variable
Puede haber ocasiones en las que desee especificar un tipo en una
variable. Esto se puede hacer con el casting. Python es un lenguaje
orientado a objetos y, como tal, utiliza clases para definir tipos de datos,
incluidos sus tipos primitivos.
x = int(1)
y = int(2.8)
z = int("3")
print(x)
print(y)
print(z)
Cadenas de Python
Literales de cadena
Los literales de cadena en python están rodeados por comillas simples o
comillas dobles.
print("Hola")
print('Hola')
a = "Hola"
print(a)
Cadenas multilínea
Puede asignar una cadena de varias líneas a una variable utilizando tres
comillas:
a = "Hola, Mundo!"
print(a[1])
Rebanar
Puede devolver un intervalo de caracteres mediante la sintaxis de
sector.
print(b[2:5])
Indexación negativa
Utilice índices negativos para iniciar el sector desde el final de la cadena:
b = " Hola, Mundo!"
print(b[-5:-2])
Longitud de la cadena
Para obtener la longitud de una cadena, utilice la función. len()
print(len(a))
Métodos de cadena
Python tiene un conjunto de métodos integrados que puede usar en
cadenas
print(a.strip())
print(a.lower())
print(a.upper())
print(a.replace("H", "J"))
b = a.split(",")
print(b)
Comprobar cadena
Para comprobar si una determinada frase o carácter está presente en
una cadena, podemos usar las palabras clave in o not in
x = "uvi" in txt
print(x)
print(x)
Concatenación de cadenas
Para concatenar o combinar dos cadenas puede usar el operador +.
a = "Hola"
b = "Mundo"
c=a+b
print(c)
a = "Hello"
b = "World"
c=a+""+b
print(c)
Formato de cadena
Como aprendimos con las Variables de Python, no podemos combinar
cadenas y números como este:
age = 36
print(txt)
age = 36
print(txt.format(age))
cantidad = 3
item= 567
precio = 49.95
Carácter de escape
Para insertar caracteres que son ilegales en una cadena, utilice un
carácter de escape.
print(txt)
Code Result
\\ Backslash
\n New Line
\r Carriage Return
\t Tab
\b Backspace
\f Form Feed
Métodos de cadena
Python tiene un conjunto de métodos integrados que puede usar en
cadenas.
Nota: Todos los métodos de cadena devuelven nuevos valores. No
cambian la cadena original.
Metodo Descripcion
Valores booleanos
En la programación a menudo es necesario saber si una expresión es
True o False.
print(10 > 9)
print(10 == 9)
print(10 < 9)
b = 33
if b > a:
else:
print(bool("Hello"))
print(bool(15))
x = "Hello"
y = 15
print(bool(x))
print(bool(y))
Cualquier lista, tupla, conjunto y diccionario son True, excepto los vacíos.
print(bool("abc"))
print(bool(123))
print(bool(False))
print(bool(None))
print(bool(0))
print(bool(""))
print(bool(()))
print(bool([]))
print(bool({}))
return 0
myobj = myclass()
print(bool(myobj))
def myFunction() :
return True
print(myFunction())
return True
if myFunction():
print("YES!")
else:
print("NO!")
print(isinstance(x, int))
Operadores de Python
Operadores de Python
Los operadores se utilizan para realizar operaciones en variables y
valores.
Python divide los operadores en los siguientes grupos:
Operadores aritméticos
Operadores de asignación
Operadores de comparación
Operadores lógicos
Operadores de identidad
Operadores de membresía
Operadores bit a bit
Operadores aritméticos de
Python
Los operadores aritméticos se utilizan con valores numéricos para
realizar operaciones matemáticas comunes:
- Subtraction x-y
* Multiplication x*y
/ Division x/y
** Exponentiation x ** y
// Floor división/Redondea x // y
Operadores de asignación
Los operadores de asignación se utilizan para asignar valores a
variables:
= x=5 x=5
+= x += 3 x=x+3
-= x -= 3 x=x-3
*= x *= 3 x=x*3
/= x /= 3 x=x/3
%= x %= 3 x=x%3
//= x //= 3 x = x // 3
**= x **= 3 x = x ** 3
|= x |= 3 x=x|3
^= x ^= 3 x=x^3
Operadores de comparación
Los operadores de comparación se utilizan para comparar dos valores
Operator Name Example
== Igual x == y
!= No igual x != y
Operadores lógicos
Los operadores lógicos se utilizan para combinar instrucciones
condicionales
Operador Descripción Ejemplo
and Devuelve True si ambas afirmaciones son verdaderas x < 5 and x < 10
Operadores de identidad
Los operadores de identidad se utilizan para comparar los objetos, no si
son iguales, sino si en realidad son el mismo objeto, con la misma
ubicación de memoria:
Operador Descripcion Ejemplo
is Devuelve True si ambas variables son el mismo objeto x is y
Operadores de membresía
Los operadores de pertenencia se utilizan para comprobar si se presenta
una secuencia en un objeto
Operador Descripcion Ejemplo
in Devuelve True si una secuencia con el valor especificado está presente en el objeto
x in y
not in Devuelve True si una secuencia con el valor especificado no está presente en el objeto
x not in y
Lista
Una lista es una colección que se ordena y se puede cambiar. En Python
las listas se escriben con corchetes.
print(thislist)
print(thislist[1])
Indexación negativa
La indexación negativa significa comenzar desde el final, -1 se refiere al
último elemento, -2 se refiere al segundo último elemento, etc.
print(thislist[-1])
Rango de índices
Puede especificar un rango de índices especificando dónde empezar y
dónde finalizar el intervalo.
Al especificar un intervalo, el valor devuelto será una nueva lista con los
elementos especificados.
print(thislist[2:5])
print(thislist[:4])
print(thislist[2:])
print(thislist[-4:-1])
for x in thislist:
print(x)
Compruebe si el elemento
existe
Para determinar si un elemento especificado está presente en una lista,
utilice la palabra clave:in
if "manzana" in thislist:
Longitud de la lista
Para determinar cuántos elementos tiene una lista, utilice la
función: len()
print(len(thislist))
Añadir elementos
Para añadir un elemento al final de la lista, utilice el método append():
thislist.append("naranja")
print(thislist)
thislist.insert(1, "naranja")
print(thislist)
Eliminar elemento
Existen varios métodos para eliminar elementos de una lista:
thislist.remove("banana")
print(thislist)
thislist.pop()
print(thislist)
del thislist[0]
print(thislist)
del thislist
thislist.clear()
print(thislist)
mylist = thislist.copy()
print(mylist)
mylist = list(thislist)
print(mylist)
Una de las formas más fáciles son mediante el uso del operador. +
list2 = [1, 2, 3]
print(list3)
Otra forma de unir dos listas es añadiendo todos los elementos de list2 a
list1, uno por uno:
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
for x in list2:
list1.append(x)
print(list1)
list2 = [1, 2, 3]
list1.extend(list2)
print(list1)
El constructor list()
También es posible utilizar el constructor list() para crear una nueva
lista.
print(thislist)
Métodos de lista
Método Descripción
extend()
Agregue los elementos de una lista (o cualquier iterable) al final de la lista actual
index()
Devuelve el índice del primer elemento con el valor especificado
insert()
Agrega un elemento en la posición especificada
pop()
Elimina el elemento en la posición especificada.
remove()
Elimina el elemento con el valor especificado.
Tupla
Una tupla es una colección que se ordena e inmutable. En Python las
tuplas se escriben con parentesis.
print(thistuple)
Establecer (Set)
Un conjunto es una colección que no está ordenada y no está indizada.
En Python, los conjuntos se escriben entre llaves.
print(thisset)
for x in thisset:
print(x)
print("banana" in thisset)
Cambiar elementos
Una vez creado un conjunto, no puede cambiar sus elementos, pero
puede agregar nuevos elementos.
Añadir elementos
Para agregar un elemento a un conjunto, utilice el método. add()
thisset.add("naranja")
print(thisset)
print(thisset)
Obtener la longitud de un
conjunto
Para determinar cuántos elementos tiene un conjunto, utilice el
método.len()
print(len(thisset))
Eliminar elemento
Para quitar un elemento de un conjunto, utilice el método remove() , o el
método. discard()
thisset.remove("banana")
thisset.discard("cereza")
print(thisset)
También puede usar el método pop(), para quitar un elemento, pero este
método quitará el último elemento. Recuerde que los conjuntos no están
ordenados, por lo que no sabrá qué elemento se elimina.
x = thisset.pop()
print(x)
print(thisset)
thisset.clear()
print(thisset)
del thisset
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)
set2 = {1, 2, 3}
set1.update(set2)
print(set1)
El constructor set()
También es posible utilizar el constructor set() para crear un conjunto.
print(thisset)#Nota: la lista establecida no está ordenada, por lo que el resultado mostrará los
elementos en un orden aleatorio.
Establecer métodos
Python tiene un conjunto de métodos integrados que puede usar en
conjuntos.
Método Descripción
clear()
Elimina todos los elementos del conjunto.
copy()
Devuelve una copia del conjunto.
difference()
Devuelve un conjunto que contiene la diferencia entre dos o más conjuntos
difference_update()
Elimina los elementos de este conjunto que también se incluyen en otro conj
discard()
Eliminar el elemento especificado
intersection()
Devuelve un conjunto, es decir, la intersección de otros dos conjuntos.
intersection_update()
Elimina los elementos de este conjunto que no están presentes en
isdisjoint()
Devuelve si dos conjuntos tienen una intersección o no
issubset()
Devuelve si otro conjunto contiene este conjunto o no
issuperset()
Devuelve si este conjunto contiene otro conjunto o no
pop()
Elimina un elemento del conjunto.
remove()
Elimina el elemento especificado.
symmetric_difference()
Devuelve un conjunto con las diferencias simétricas de dos conjuntos.
update()
Actualice el conjunto con la unión de este conjunto y otros
Diccionario
Un diccionario es una colección que es desordenada, cambiable e
indizada. En Python, los diccionarios se escriben entre llaves y tienen
claves y valores.
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
print(thisdict)
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
x = thisdict["model"]
print(x)
"brand": "Ford",
"model": "Mustang",
"year": 1964
x = thisdict.get("model")
print(x)
Cambiar valores
Puede cambiar el valor de un elemento específico haciendo referencia a
su nombre de clave:
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
thisdict["year"] = 2018
print(thisdict)
Bucle a través de un
diccionario
Puede recorrer un bucle a través de un diccionario mediante un bucle. for
Al recorrer en bucle un diccionario, el valor devuelto son las claves del
diccionario, pero también hay métodos para devolver los valores.
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
for x in thisdict:
print(x)
"brand": "Ford",
"model": "Mustang",
"year": 1964
for x in thisdict:
print(thisdict[x])
"brand": "Ford",
"model": "Mustang",
"year": 1964
for x in thisdict.values():
print(x)
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
for x, y in thisdict.items():
print(x, y)
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
if "model" in thisdict:
Adición de elementos
La adición de un elemento al diccionario se realiza mediante una nueva
clave de índice y asignándole un valor:
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
thisdict["color"] = "red"
print(thisdict)
Eliminación de elementos
Existen varios métodos para eliminar elementos de un diccionario:
"brand": "Ford",
"model": "Mustang",
"year": 1964
thisdict.pop("model")
print(thisdict)
"brand": "Ford",
"model": "Mustang",
"year": 1964
thisdict.popitem()
print(thisdict)
"brand": "Ford",
"model": "Mustang",
"year": 1964
del thisdict["model"]
print(thisdict)
"brand": "Ford",
"model": "Mustang",
"year": 1964
del thisdict
"model": "Mustang",
"year": 1964
thisdict.clear()
print(thisdict)
Copiar un diccionario
Hay maneras de hacer una copia, una forma es usar el método
Dictionary integrado. copy()
"brand": "Ford",
"model": "Mustang",
"year": 1964
mydict = thisdict.copy()
print(mydict)
"brand": "Ford",
"model": "Mustang",
"year": 1964
mydict = dict(thisdict)
print(mydict)
Diccionarios anidados
Un diccionario también puede contener muchos diccionarios, esto se
denomina diccionarios anidados.
myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
},
"child3" : {
"name" : "Linus",
"year" : 2011
print(myfamily)
"name" : "Emil",
"year" : 2004
child2 = {
"name" : "Tobias",
"year" : 2007
child3 = {
"name" : "Linus",
"year" : 2011
myfamily = {
"child1" : child1,
"child2" : child2,
"child3" : child3
print(myfamily)
El constructor dict()
También es posible utilizar el constructor dict() para crear un nuevo
diccionario:
print(thisdict)
Métodos de diccionario
Método Descripción
copy()
Devuelve una copia del diccionario.
fromkeys()
Devuelve un diccionario con las claves y el valor especificados
get()
Devuelve el valor de la clave especificada
items()
Devuelve una lista que contiene una tupla para cada par de
valores clave
keys()
Devuelve una lista que contiene las claves del diccionario
pop()
Elimina el elemento con la clave especificada
popitem()
Elimina el último par clave-valor insertado
setdefault()
Devuelve el valor de la clave especificada. Si la clave no existe: inserte
update()
Actualiza el diccionario con los pares clave-valor especificados.
values()
Devuelve una lista de todos los valores del diccionario.
a = 33
b = 200
if b > a:
Sangría
Python se basa en la sangría (espacio en blanco al principio de una línea)
para definir el ámbito en el código. Otros lenguajes de programación a
menudo utilizan llaves para este propósito.
a = 33
b = 200
if b > a:
Elif
La palabra clave elif es una forma de decir pythons "si las condiciones
anteriores no eran verdaderas, entonces pruebe esta condición".
a = 33
b = 33
if b > a:
elif a == b:
print("a and b are equal")
Else
La palabra clave else detecta cualquier cosa que no sea detectada por
las condiciones anteriores.
a = 200
b = 33
if b > a:
elif a == b:
else:
a = 200
b = 33
if b > a:
else:
Short Hand If
Si solo tiene una instrucción que ejecutar, puede colocarla en la misma
línea que la instrucción if.
a = 200
b = 33
if a > b: print("a is greater than b")
a=2
b = 330
a = 330
b = 330
And
La palabra clave and es un operador lógico y se utiliza para combinar
instrucciones condicionales:
a = 200
b = 33
c = 500
Or
La palabra clave or es un operador lógico y se utiliza para combinar
instrucciones condicionales:
a = 200
b = 33
c = 500
if a > b or a > c:
Anidado Si
Puede tener instrucciones if dentro de instrucciones if, esto se
denomina instrucciones if anidadas.
x = 41
if x > 10:
print("Above ten,")
if x > 20:
else:
La Declaración de pass
if instrucciones if no pueden estar vacías, pero si por alguna razón
tiene una instrucción sin contenido, coloque la instrucción pass para
evitar recibir un error.
a = 33
b = 200
if b > a:
pass
# tener una declaración if vacía como esta, generaría un error sin la declaración pass
Bucles de Python
Python tiene dos comandos de bucle primitivos:
While los bucles
for bucles
El bucle de tiempo
Con el bucle while podemos ejecutar un conjunto de instrucciones
siempre que una condición sea verdadera.
i=1
while i < 6:
print(i)
i += 1
El bucle while requiere que las variables relevantes estén listas, en este
ejemplo necesitamos definir una variable de indexación, i, que
establecemos en 1.
La Declaración de ruptura
(Break)
Con la instrucción break podemos detener el bucle incluso si la
condición while es verdadera:
i=1
while i < 6:
print(i)
if (i == 3):
break
i += 1
La Declaración continue
Con la instrucción continue podemos detener la iteración actual y
continuar con la siguiente:
i=0
while i < 6:
i += 1
if i == 3:
continue
print(i)
La declaración de else
Con la instrucción else podemos ejecutar un bloque de código una vez
cuando la condición ya no es verdadera:
i=1
while i < 6:
print(i)
i += 1
else:
for x in frutas:
print(x)
for x in "banana":
print(x)
La Declaración de ruptura
Con la instrucción break podemos detener el bucle antes de que haya
atravesado todos los elementos:
for x in frutas:
if x == "banana":
break
print(x)
La Declaración continua
Con la instrucción continue podemos detener la iteración actual del
bucle y continuar con la siguiente:
for x in frutas:
if x == "banana":
continue
print(x)
La función range()
Para recorrer un conjunto de código un número especificado de veces,
podemos usar la función range(),
for x in range(6):
print(x)
print(x)
print(x)
for x in range(6):
print(x)
else:
print("Finalmente Terminado!")
Bucles anidados
Un bucle anidado es un bucle dentro de un bucle.
El "bucle interno" se ejecutará una vez para cada iteración del "bucle
externo":
for x in adj:
for y in frutas:
print(x, y)
La Declaración de pass
Los bucles for no pueden estar vacíos, pero si por alguna razón tiene un
bucle for sin contenido, coloque la instrucción pass para evitar obtener
un error.
pass
# tener un ciclo for vacío como este, generaría un error sin la instrucción
pass
Funciones de Python
Una función es un bloque de código que solo se ejecuta cuando se
llama.
def my_function():
print("Hello from a function")
def my_function():
my_function()
Argumentos
La información se puede pasar a funciones como argumentos.
def my_function(fname):
my_function("Emil")
my_function("Tobias")
my_function("Linus")
Número de argumentos
De forma predeterminada, se debe llamar a una función con el número
correcto de argumentos. Lo que significa que si la función espera 2
argumentos, debe llamar a la función con 2 argumentos, no más, y no
menos.
my_function("Emil", "Refsnes")
my_function("Emil")
def my_function(*kids):
print("The youngest child is " + kids[2])
def my_function(**kid):
Valor de parámetro
predeterminado
En el ejemplo siguiente se muestra cómo utilizar un valor de parámetro
predeterminado.
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
Por ejemplo, si envía una lista como argumento, seguirá siendo una lista
cuando llegue a la función:
def my_function(food):
for x in food:
print(x)
my_function(fruits)
Valores devueltos
Para permitir que una función devuelva un valor, utilice la
instrucción:return
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))
La Declaración de pase
function las definiciones no pueden estar vacías, pero si por alguna
razón tiene una definición sin contenido, coloque la instrucción para
evitar recibir un error.functionpass
def myfunction():
pass
# tener una definición de función vacía como esta, generaría un error sin
la instrucción pass
Acceso directo
[ { "keys": ["ctrl+alt+b"], "command": "run_existing_window_command", "args":
{
"id": "repl_python_run",
"file": "config/Python/Main.sublime-menu"
}}
]
La función input()
La función input() permite obtener texto escrito por teclado. Al llegar a
la función, el programa se detiene esperando que se escriba algo y se
pulse la tecla Intro, como muestra el siguiente ejemplo:
print("¿Cómo se llama? ")
nombre = input()
print("Me alegro de conocerle," ,nombre)
En el ejemplo anterior, el usuario escribe su respuesta en una línea
distinta a la pregunta porque Python añade un salto de línea al final de
cada print().
Si se prefiere que el usuario escriba su respuesta a continuación de la
pregunta, se podría utilizar el argumento opcional end en la
función print(), que indica el carácter o caracteres a utilizar en vez del
salto de línea. Para separar la respuesta de la pregunta se ha añadido
un espacio al final de la pregunta.
print("¿Cómo se llama? ", end="")
nombre = input()
print("Me alegro de conocerle," ,nombre)
Conversión de tipos
De forma predeterminada, la función input() convierte la entrada en
una cadena, aunque escribamos un número. Si intentamos hacer
operaciones, se producirá un error.
Round() es una función incorporada disponible con python. Le
devolverá un número de flotador que se redondeará a los decimales
que se dan como entrada. Si no se especifican los decimales a
redondear, se considera como 0, y se redondeará al entero más
cercano
Ejercicio:
Realizar una entrada de datos que indique la cantidad de pesos que
tiene y que le de la cantidad de dólares que puede comprar a un valor
de 72.55 pesos cada dólar.
cantidad = int(input("Dígame una cantidad en pesos: "))
print(cantidad, "pesos son", round(cantidad / 72.55), "dolares")
Ejercicios opcionales
1)
Escriba un programa que pida dos números y que escriba su media
aritmética.
Se recuerda que la media aritmética de dos números es la suma de
ambos números dividida por 2.
print("CÁLCULO DE LA MEDIA DE DOS NÚMEROS")
numero_1 = float(input("Escriba un número: "))
numero_2 = float(input("Escriba otro número: "))
18,5 - 22,99
23,00 - 24,99
25,00 - 27,49
27,50 - 29,99
32,50 - 34,99
35,00 - 37,49
37,50 - 39,99
≥40,00 ≥40,00
Obesidad mórbida
3)
Escriba un programa que pida una distancia en pies y pulgadas y que
escriba esa distancia en centímetros.
Se recuerda que un pie son doce pulgadas y una pulgada son 2,54
cm.
print("CONVERTIDOR DE PIES Y PULGADAS A CENTÍMETROS")
pies = float(input("Escriba una cantidad de pies: "))
pulgadas = float(input("Escriba una cantidad de pulgadas: "))
4)
Escriba un programa que pida una distancia en pulgadas y que
escriba esa distancia en centímetros.
Se recuerda que una pulgada son 2,54 cm.
5)
Escriba un programa que pida una distancia en pies y que escriba esa
distancia en centímetros.
Se recuerda que un pie son doce pulgadas y una pulgada son 2,54
cm.
6)
Escriba un programa que pida una temperatura en grados Celsius y
que escriba esa temperatura en grados Fahrenheit.
Se recuerda que la relación entre grados Celsius (C) y grados
Fahrenheit (F) es la siguiente: F = 1,8 * C + 32
def main():
print("CONVERTIDOR DE GRADOS FAHRENHEIT A GRADOS CELSIUS")
fahrenheit = float(input("Escriba una temperatura en grados
Fahrenheit: "))
if __name__ == "__main__":
main()
7)
Escriba un programa que pida una temperatura en grados Fahrenheit
y que escriba esa temperatura en grados Celsius.
Se recuerda que la relación entre grados Celsius (C) y grados
Fahrenheit (F) es la siguiente: C = (F - 32) / 1,8
8)
Escriba un programa que pida una cantidad de segundos y que
escriba cuántos minutos y segundos son.
def main():
print("CONVERTIDOR DE SEGUNDOS A MINUTOS")
segundos = int(input("Escriba una cantidad de segundos: "))
minutos = segundos // 60
resto = segundos % 60
if __name__ == "__main__":
main()
9)
Escriba un programa que pida una cantidad de segundos y que
escriba cuántas horas, minutos y segundos son
def main():
print("CONVERTIDOR DE SEGUNDOS A HORAS Y MINUTOS")
segundos = int(input("Escriba una cantidad de segundos: "))
horas = segundos // 3600
resto_1 = segundos % 3600
minutos = resto_1 // 60
resto = resto_1 % 60
print(
f"{segundos} segundos son {horas} horas, {minutos} minutos y
{resto} segundos"
)
if __name__ == "__main__":
main()
print(
f"{segundos} segundos son {horas} horas, {minutos} minutos y
{resto} segundos"
)
if __name__ == "__main__":
main()
10)
Escriba un programa que pida una cantidad y que escriba cuántas
gruesas, docenas y unidades son.
Se recuerda que una gruesa son doce docenas.
def main():
print("CONVERTIDOR A GRUESAS Y DOCENAS")
unidades = int(input("Escriba una cantidad (entera): "))
print(
f"{unidades} unidades son {gruesas} gruesas, {docenas} docenas
y {resto} unidades"
)
if __name__ == "__main__":
main()
11)
def main():
print("PAR E IMPAR (1)")
par = int(input("Escriba un número par: "))
impar = int(input("Escriba un número impar: "))
if par % 2 == 1 or impar % 2 == 0:
print("Uno o más de los valores que ha escrito no son
correctos.")
print("Ejecute de nuevo el programa para volver a
intentarlo.")
else:
print("¡Gracias por su colaboración!")
if __name__ == "__main__":
main()
12)
def main():
print("PAR E IMPAR (2)")
par = int(input("Escriba un número par: "))
if par % 2 == 1:
print("No ha escrito un número par.")
print("Ejecute de nuevo el programa para volver a
intentarlo.")
else:
impar = int(input("Escriba un número impar: "))
if impar % 2 == 0:
print("No ha escrito un número impar.")
print("Ejecute de nuevo el programa para volver a
intentarlo.")
else:
print("¡Gracias por su colaboración!")
if __name__ == "__main__":
main()
13)
DIVISOR DE NÚMEROS
Escriba el dividendo: 14
Escriba el divisor: 5
DIVISOR DE NÚMEROS
Escriba el dividendo: 20
Escriba el divisor: 4
def main():
print("DIVISOR DE NÚMEROS")
dividendo = int(input("Escriba el dividendo: "))
divisor = int(input("Escriba el divisor: "))
if dividendo % divisor == 0:
print(f"La división es exacta. Cociente: {dividendo //
divisor}")
else:
print(
f"La división no es exacta. Cociente: {dividendo //
divisor} "
f"Resto: {dividendo % divisor}"
)
if __name__ == "__main__":
main()
14)
def main():
print("DIVISOR DE NÚMEROS")
if divisor == 0:
else:
if dividendo % divisor == 0:
print(
if __name__ == "__main__":
main()
15)
COMPARADOR DE NÚMEROS
Escriba un número: 23
COMPARADOR DE NÚMEROS
def main():
print("COMPARADOR DE NÚMEROS")
else:
if __name__ == "__main__":
main()
16)
def main():
print("COMPARADOR DE AÑOS")
if __name__ == "__main__":
main()
17)
def main():
print("COMPARADOR DE AÑOS")
if fecha_1 - fecha_2 == 1:
else:
print("¡Son el mismo año!")
if __name__ == "__main__":
main()
def main():
print("COMPARADOR DE AÑOS")
if diferencia == 1:
else:
main()
18)
def main():
print("COMPARADOR DE MÚLTIPLOS")
else:
if __name__ == "__main__":
main()
19)
def main():
print("COMPARADOR DE MÚLTIPLOS")
if numero_1 == 0 or numero_2 == 0:
else:
if __name__ == "__main__":
main()
20)
Escriba un programa que pida tres números y que escriba si son los
tres iguales, si hay dos iguales o si son los tres distintos.
def main():
else:
if __name__ == "__main__":
main()
21)
def main():
if fecha %4 != 0:
else:
print(f"El año {fecha} es un año bisiesto porque es múltiplo de
400.")
if __name__ == "__main__":
main()
22)
ECUACIÓN A X + B = 0
ECUACIÓN A X + B = 0
ECUACIÓN A X + B = 0
def main():
print("ECUACIÓN A X + B = 0")
if a == b == 0:
elif a == 0:
else:
if __name__ == "__main__":
main()
23)
0 0 5 Sin solución
ECUACIÓN A X² + B X + C = 0
def main():
print("ECUACIÓN A X² + B X + C = 0")
d=b*b-4*a*c
if a == b == c == 0:
elif a == b == 0:
elif a == 0:
elif d < 0:
print("La ecuación no tiene solución real.")
elif d == 0:
else:
print(
if __name__ == "__main__":
main()
24)
CÁLCULO DE ÁREAS
a) Triángulo
b) Círculo
¿Qué figura quiere calcular (Escriba T o C)? T
Escriba la base: 3
CÁLCULO DE ÁREAS
a) Triángulo
b) Círculo
Escriba el radio: 2
def main():
print("CÁLCULO DE ÁREAS")
print("a) Triángulo")
print("b) Círculo")
print(
if __name__ == "__main__":
main()
25)
def main():
if centimetros <= 0:
else:
main()
26)
def main():
if centimetros <= 0:
else:
if centimetros < 0:
elif centimetros == 1:
print("1 cm es 1 cm")
else:
if kilometros:
else:
print(f"{kilometros} km")
if metros:
if resto:
else:
print(f"{metros} m")
if centimetros == 0 or resto:
print(resto, "cm")
if __name__ == "__main__":
main()
Recursividad
Python también acepta recursividad de función, lo que significa que una
función definida puede llamarse a sí misma.
def atras(segundos):
segundos-=1
if segundos >= 0:
print(segundos)
atras(segundos)
else:
atras(10)
def cuenta_regresiva(numero):
numero -= 1
if numero > 0:
print (numero)
cuenta_regresiva(numero)
else:
print ( "Boooooooom!")
cuenta_regresiva(5)
if numero > 1:
return numero
print (factorial(5))
def tri_recursion(k):
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
tri_recursion(6)
Lambda de Python
Una función lambda es una pequeña función anónima.
Una función lambda puede tomar cualquier número de argumentos,
pero solo puede tener una expresión.
Sintaxis
lambda arguments : expression
Ejemplo
Una función lambda que agrega 10 al número pasado como argumento e
imprime el resultado:
x = lambda a: a + 10
print(x(5))
Ejemplo
Función lambda que multiplica el argumento a con el argumento b e
imprime el resultado
x = lambda a, b: a * b
print(x(5, 6))
x = lambda a, b, c: a + b + c
print(x(5, 6, 2))
Utilice esa definición de función para crear una función que siempre
duplique el número que envíe:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
O bien, utilice la misma definición de función para crear una función que
siempre triplica el número que envía:
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
Ejemplo
Cree una clase denominada MyClass, con una propiedad denominada x:
class MyClass:
x=5
print(MyClass)
Crear objeto
Ahora podemos usar la clase denominada MyClass para crear objetos:
Ejemplo
Cree un objeto denominado p1 e imprima el valor de x:
class MyClass:
x=5
p1 = MyClass()
print(p1.x)
La función __init__()
Los ejemplos anteriores son clases y objetos en su forma más simple y
no son realmente útiles en aplicaciones de la vida real.
Todas las clases tienen una función llamada __init__(), que siempre se
ejecuta cuando se inicia la clase.
class Person:
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name)
print(p1.age)
Métodos de objeto
Los objetos también pueden contener métodos. Los métodos de los
objetos son funciones que pertenecen al objeto.
------------------------------------------------------------------------
¿Cuál es la diferencia entre un método y una función? ... Un método puede operar
con datos que están contenidos dentro de la clase (recordando que un objeto es una
instancia de una clase - la clase es la definición, el objeto es una instancia de esos
datos).
Una funcion es una pieza de código que se llama por su nombre. Se pueden pasar
datos para operar (es decir, los parámetros) y, opcionalmente, se pueden devolver
datos (el valor de retorno). Todos los datos que se pasan a una función se pasan
explícitamente.
Un metodo es una pieza de código que se llama con un nombre que está asociado con
un objeto. En la mayoría de los aspectos, es idéntico a una función, excepto por dos
diferencias clave:
Un método puede operar con datos que están contenidos dentro de la clase
(recordando que un objeto es una instancia de una clase - la clase es la definición, el
objeto es una instancia de esos datos).
class Person:
self.name = name
self.age = age
def myfunc(self):
p1 = Person("John", 36)
p1.myfunc()
El parámetro self
El parámetro self es una referencia a la instancia actual de la clase y se
utiliza para tener acceso a las variables(propiedades) que pertenecen a
la clase.
No tiene que ser nombrado self, se puede llamar como quieras, pero
tiene que ser el primer parámetro de cualquier función de la clase:
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
p1 = Person("John", 36)
p1.myfunc()
Modificar propiedades de
objeto
Puede modificar propiedades en objetos como este:
class Person:
self.name = name
self.age = age
def myfunc(self):
p1 = Person("John", 36)
p1.age = 40
print(p1.age)
class Person:
self.name = name
self.age = age
def myfunc(self):
p1 = Person("John", 36)
del p1.age
print(p1.age)
Eliminar objetos
Puede eliminar objetos utilizando la palabra clave: del
class Person:
self.name = name
self.age = age
def myfunc(self):
p1 = Person("John", 36)
del p1
print(p1)
La Declaración de pass
class las definiciones no pueden estar vacías, pero si por alguna razón
tiene una definición sin contenido, coloque la instrucción para evitar
recibir un error.classpass
class Person:
pass
Herencia de Python
La herencia nos permite definir una clase que hereda todos los métodos
y propiedades de otra clase.
class Person:
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
x = Person("John", "Doe")
x.printname()
class Student(Person):
pass
class Person:
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
class Student(Person):
pass
x = Student("Mike", "Olsen")
x.printname()
class Student(Person):
def __init__(self, fname, lname):
#agregar propiedades etc.
class Person:
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
class Student(Person):
x = Student("Mike", "Olsen")
x.printname()
class Person:
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
class Student(Person):
def __init__(self, fname, lname):
super().__init__(fname, lname)
x = Student("Mike", "Olsen")
x.printname()
Añadir propiedades
Agregue una propiedad llamada graduationyear a la clase: Student
class Person:
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
class Student(Person):
super().__init__(fname, lname)
self.graduationyear = 2019
x = Student("Mike", "Olsen")
print(x.graduationyear)
En el ejemplo siguiente, el año debe ser una variable y pasar a la clase al
crear objetos de alumno. Para ello, añada otro parámetro en la función
__init__():2019Student
class Person:
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
class Student(Person):
super().__init__(fname, lname)
self.graduationyear = year
print(x.graduationyear)
Añadir métodos
class Person:
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
class Student(Person):
super().__init__(fname, lname)
self.graduationyear = year
def welcome(self):
x.welcome()
Iteradores de Python
Un iterador es un objeto que contiene un número contable de valores.
Iterador vs Iterable
Las listas, tuplas, diccionarios y conjuntos son objetos iterables.
Son contenedores iterables de los que puede obtener un iterador.
Todos estos objetos tienen un método iter() que se utiliza para obtener
un iterador:
myit = iter(mytuple)
print(next(myit))
print(next(myit))
print(next(myit))
Las cadenas también son objetos iterables, que contienen una secuencia
de caracteres:
mystr = "banana"
myit = iter(mystr)
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(x)
mystr = "banana"
for x in mystr:
print(x)
Crear un iterador
Para crear un objeto/clase como iterador, debe implementar los métodos
y el objeto.__iter__() __next__()
todas las clases tienen una función llamada. __init__() , que le permite
inicializarse cuando se crea el objeto
class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
x = self.a
self.a += 1
return x
myclass = MyNumbers()
myiter = iter(myclass)
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
StopIteration
El ejemplo anterior continuaría para siempre si tuviera suficientes
instrucciones next(), o si se utilizaba en un bucle. for
class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
self.a += 1
return x
else:
raise StopIteration
myclass = MyNumbers()
myiter = iter(myclass)
for x in myiter:
print(x)
Módulos Python
¿Qué es un módulo?
Considere que un módulo es el mismo que una biblioteca de código.
Crear un módulo
Para crear un módulo sólo tiene que guardar el código que desea en un
archivo con la extensión de archivo :.py
def greeting(name):
print("Hello, " + name)
Usar un módulo
Ahora podemos usar el módulo que acabamos de crear, usando la
instrucción:import
import mymodule
mymodule.greeting("Jonathan")
Variables en el módulo
El módulo puede contener funciones, como ya se ha descrito, pero
también variables de todos los tipos (arrays, diccionarios, objetos, etc.)
person1 = {
"name": "John",
"age": 36,
"country": "Norway"
}
import mymodule
a = mymodule.person1["age"]
print(a)
import mymodule as mx
a = mx.person1["age"]
print(a)
Módulos incorporados
Hay varios módulos integrados en Python, que puede importar cuando lo
desee.
import platform
x = platform.system()
print(x)
import platform
x = dir(platform)
print(x)
def greeting(name):
print("Hello, " + name)
person1 = {
"name": "John",
"age": 36,
"country": "Norway"
}
print (person1["age"])
Python Datetime
Fechas de Python
Una fecha en Python no es un tipo de datos propio, pero podemos
importar un módulo denominado datetime para trabajar con fechas como
objetos de fecha.
import datetime
x = datetime.datetime.now()
print(x)
Salida de fecha
Cuando ejecutamos el código del ejemplo anterior, el resultado será:
2020-08-12 14:18:57.666217
import datetime
x = datetime.datetime.now()
print(x.year)
print(x.strftime("%A"))
import datetime
x = datetime.datetime(2020, 5, 17)
print(x)
El método strftime()
El objeto tiene un método para dar formato a los objetos de fecha en
cadenas legibles.datetime
import datetime
x = datetime.datetime(2018, 6, 1)
print(x.strftime("%B"))
Directive Description Example
%H Hour 00-23 17
%I Hour 00-12 05
%p AM/PM PM
%M Minute 00-59 41
%S Second 00-59 08
%Z Timezone CST
%% A % character %
Matemáticas de Python
Python tiene un conjunto de funciones matemáticas integradas,
incluyendo un extenso módulo matemático, que le permite realizar
tareas matemáticas en números.
Funciones matemáticas
integradas
Las funciones y se pueden utilizar para encontrar el valor más bajo o
más alto en un iterable:min()max()
print(x)
print(y)
La función devuelve el valor absoluto (positivo) del número
especificado:abs()
x = abs(-7.25)
print(x)
x = pow(4, 3)
print(x)
El módulo de matemáticas
Python también tiene un módulo integrado llamado math, que amplía la
lista de funciones matemáticas.
import math
import math
x = math.sqrt(64)
print(x)
import math
x = math.ceil(1.4)
y = math.floor(1.4)
print(x) # returns 2
print(y) # returns 1
x = math.pi
print(x)
Métodos matemáticos
Method Description
math.ceil(x) Rounds a number upwards to the nearest integer, and returns the result
math.comb(n, k) Returns the number of ways to choose k items from n items without repetition and order
math.copysign(x, y) Returns a float consisting of the value of the first parameter and the sign of the
second parameter
math.exp(x) Returns the value of Ex, where E is Euler's number (approximately 2.718281...),
and x is the number passed to it
math.floor(x) Rounds a number downwards to the nearest integer, and returns the result
math.fmod(x, y) Returns the remainder of specified numbers when a number is divided by another number
math.fsum(iterable) Returns the sum of all items in an iterable (tuples, arrays, lists, etc.)
math.gcd() Returns the highest value that can divide two integers
math.hypot() Find the Euclidean distance from the origin for n inputs
math.log(x, base) Returns the natural logarithm of a number, or the logarithm of number to base
math.log10(x) Returns the base-10 logarithm of x
math.perm(n, k) Returns the number of ways to choose k items from n items with order and
without repetition
math.remainder(x, y) Returns the closest value that can make numerator completely divisible by the denominator
Constantes matemáticas
Constant Description
JSON de Python
JSON es una sintaxis para almacenar e intercambiar datos.
Sintaxis
JSON en Python
Python tiene un paquete integrado llamado json, que se puede utilizar
para trabajar con datos JSON.
import json
# some JSON:
x = '{ "name":"John", "age":30, "city":"New York"}'
# parse x:
y = json.loads(x)
import json
dict
list
tuple
string
int
float
True
False
None
import json
print(json.dumps({"name": "John", "age": 30}))
print(json.dumps(["apple", "bananas"]))
print(json.dumps(("apple", "bananas")))
print(json.dumps("hello"))
print(json.dumps(42))
print(json.dumps(31.76))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))
Python JSON
dict Object
list Array
tuple Array
str String
int Number
float Number
True true
False false
None null
import json
x = {
"name": "John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann","Billy"),
"pets": None,
"cars": [
{"model": "BMW 230", "mpg": 27.5},
{"model": "Ford Edge", "mpg": 24.1}
]
}
print(json.dumps(x))
import json
x = {
"name": "John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann","Billy"),
"pets": None,
"cars": [
print(json.dumps(x, indent=4))
import json
x={
"name": "John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann","Billy"),
"pets": None,
"cars": [
]
}
Ordene el resultado
El método tiene parámetros para ordenar las claves en el
resultado:json.dumps()
import json
x={
"name": "John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann","Billy"),
"pets": None,
"cars": [