Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El operador de asignación ( = ).
Para asignar un nombre a un objeto, se utiliza el operador de asignación "=" con la
siguiente sintaxis:
<identificador> = <objeto>
Ejemplos:
>>> saludo = 'Hola'
>>> matriz = [["autobús", "diesel", True], ["automóvil", "gasolina", True]]
Es posible asignar a varios nombres un número igual de objetos usando un sólo operador de
asignación mediante la siguiente sintaxis:
<nombre 1>, <nombre 2>, <nombre 3>, ..., <nombre n> = <objeto 1>, <objeto 2>, <objeto
3>, ..., <objeto n>
Es posible asignar a varios nombres un número igual de objetos usando un sólo operador de
asignación mediante la siguiente sintaxis:
<nombre 1>, <nombre 2>, <nombre 3>, ..., <nombre n> = <objeto 1>, <objeto 2>, <objeto
3>, ..., <objeto n>
Ejemplos:
>>> entero, flotante, complejo, booleano = 12, 4.5, (12.3 + 23j), True
>>> entero
12
>>> complejo
(12.3+23j)
>>> flotante
4.5
>>> booleano
True
>>> otro_nombre
Tipos dinámicos.
Python es un lenguaje que no requiere que se defina el tipo de un objeto. El intérprete
"infiere" el tipo de dato del que se trata.
Fuertemente tipado.
Existen operaciones que no están permitidas entre tipos que no sean compatibles.
Tipos numéricos.
Números enteros (int).
Python identifica a los número enteros como un tipo de dato el cual puede ser expresado de
la siguiente manera.
Decimal: 24, 60
Binario: 0b010011, 0b1101
Hexadecimal: 0x18, 0x3cf4
Octal: 030, 074
Python 2 también identifica a un tipo llamado entero largo (long), al cual se le añadía la
letra "L" al final, pero ya no son reconocidos por Python 3.
>>> 2.0/3.0
0.6666666666666666
En este caso, es imposible para Python calcular una sucesión infinita de "6" y por ende
truncó el número a 16 decimales.
None.
El tipo None representa un valor "vació".
La función str().
Transforma a un objeto compatible en una cadena de caracteres.
Ejemplos:
>>> str(True)
'True'
>>> str(12 + 3.5j)
'(12+3.5j)'
La función int().
Transforma un objeto compatible a un objeto tipo int.
-Puede convertir objetos de tipo str que representen correctamente a un número entero.
-Trunca los objetos de tipo float a la parte entera.
-True es convertido en 1 y False en 0.
-No es compatible con objetos tipo complex.
Ejemplos:
>>> int(True)
1
>>> int("-12")
-12
>>> int(5.3)
5
>>> int(-5.3)
-5
>>> int(45.2j)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-11-980b7c1bd961> in <module>()
----> 1 int(45.2j)
TypeError: can't convert complex to int
>>> int('Hola')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-12-3e58bd585213> in <module>()
----> 1 int('Hola')
ValueError: invalid literal for int() with base 10: 'Hola'
La función complex().
Transforma a un objeto compatible a uno de tipo complex.
-Convierte objetos de tipo str que contengan representen correctamente a un número real.
-Transforma en un objeto de tipo complex a un par de números ya sean int o float.
-Si sólo se da un número int o float, este será identificado como el componente real y el
componente complejo será 0j.
Ejemplos:
>>> complex(3.5, 2)
(3.5+2j)
>>> complex(8)
(8+0j)
>>> complex("23+5j")
(23+5j)
La función bool().
Transforma en booleano a un objeto.
-El 0 es igual a False.
-Cualquier otra cosa distinto de 0 es True.
Tipos inmutables.
Los objetos de tipo inmutable son aquellos cuya estructura no puede modificarse a menos
que sean eliminados. Por sus características, son inmutables los tipos:
int
float
bool
complex
str
OPERADORES.
Los operadores son signos, símbolos o palabras que el intérprete de Python identifica
dentro de sus sintaxis para realizar una acción (operación) específica
Operadores aritméticos.
Operador Descripción
+ Suma
- Resta
- Negativo
* Multiplicación
** Exponente
/ División
// División entera
% Residuo
COMPROBAR EN SU INTERPRETE.
División entre enteros en Python 2 y Python 3
En Python 2 las divisiones entre objetos de tipo int dan por resultado la parte entera de la
división.
Ejemplos:
>>> 3 / 4
0
>>> 10 / 5
Ejemplos:
>>> 12 * 5 + 2 / 3 ** 2
60.22222222222222
>>> (12 * 5) + (2 / (3 ** 2))
60.22222222222222
>>> (12 * 5) + (2 / 3) ** 2
60.44444444444444
Operador Descripción
+ Concatenación
* Repetición
Ejemplos
>>> "hola" + "mundo"
'holamundo'
>>> 'hola' * 3
'holaholahola'
Operadores de relación.
Los operadores de relación evalúan si dos valores/objetos cumplen con una condición
específica. El resultado de esta evaluación es un objeto de tipo bool.
Ejemplos:
>>> "hola" == 'hola'
True
>>> "hola" != 'Hola'
True
>>> 5 > 3
True
>>> 5 <= 3
False
>>> 2 * 9 ** 0.5 == 6
True
>>> (2 * 9) ** 0.5 == 6
False
Operadores lógicos.
Estos operadores permiten la realización de las siguientes operaciones lógicas. Por lo
general se realizan con objetos de tipo bool, pero Python también permite operaciones
lógicas con otros tipos de datos.
Operador Evalúa
or a or b ¿Se cumplen a o b?
and a and b ¿Se comple a y b?
not not x Contrario a x
Ejemplos:
>>> True or True
True
>>> False or True
True
>>> 15 == 3 or False
False
>>> 15 > 3 and 15 <= 20
True
>>> True and 0
0
>>> bool(True and 0)
False
Operadores de pertenencia.
Los operadores in y not in evalúan si un objeto se encuentra dentro de otro.
Ejemplos:
>>> 'a' in 'Hola'
True
>>> 'z' in 'Hola'
False
>>> 'la' not in 'Hola'
False
>>> 'z' not in 'Hola'
True
Operadores de asignación.
Los operadores de asignación se utilizan para enlazar un objeto/valor con un nombre.
Ejemplos:
>>> x = 2
>>> x += 3
>>> x
5
>>> y = 2
>>> y **= 3
Operadores de bits.
Las operaciones de bits son cálculos que implican a cada bit que conforma a un número
representado de forma binaria.
Operador Descripción
& AND
| OR
^ XOR
<< Mover x bits a la izquierda
>> Mover x bits a la derecha
Ejemplos:
>>> a = 0b01101
>>> b = 0b11010
>>> a
13
>>> b
26
>>> a & b
8
>>> a | b
31
>>> a ^ b
>>23>
>>> a << 3
104
>>> b >> 2
6
Operadores de identidad.
Los operadores is e is not evalúan si un identificador se refiere exactamente al mismo
objeto o pertenece a un tipo.
Ejemplos:
>>> a = 45
>>> b = 45
>>> a is b
True
>>> type("Hola") is str
True
>>> type("Hola") is not complex
True
>>> True == 1
True
>>> True is 1
False
La función eval().
La función eval() evalúa un objeto de tipo str como si fuera una expresión.
eval(<objeto tipo str>)
Si el texto a evaluar no es una expresión válida, eval() generará un mensaje de error.
Ejemplos:
>>> eval("12 * 300")
3600
>>> eval("0x11 + 0x10010")
65569
>>> eval("12 > 5")
True
>>> eval("type('Hola')")
str
>>> numero = 4
>>> eval("numero * 3")
12
>>> eval("Hola Mundo")
Traceback (most recent call last):
File "/home/oi/pythonista/lib/python3.6/site-packages/IPython/core/interactiveshell.py",
line 2910, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-77-2cf01977b573>", line 1, in <module>
eval("Hola Mundo")
File "<string>", line 1
Hola Mundo
FUNCIONES MATEMATICAS
Para usar funciones matemáticas se debe incluir la libreria math de la
siguiente manera
import math
Ejemplos:
>>> nombre = input("Escribe un nombre: ")
>>> print(nombre)
>>> a = 2
>>> print(a)
2
Ejemplo:
>>> pi = 3.141592
radio = 2
>>> print("El perímetro de un circulo de radio %d es %f." % (radio, 2 * radio * pi))
El perímetro de un circulo de radio 2 es 12.566368.
>>> print("El perímetro de un circulo de radio %d es %d." % (radio, 2 * radio * pi))
El perímetro de un circulo de radio 2 es 12.
Caracteres de escape.
Existen algunos caracteres que por su función o por la sintaxis de Python -tales como los
apóstrofes, las comillas, los retornos de línea, etc.- que deben usar un "caracter de escape",
para que puedan ser desplegados. Los caracteres de escape pueden ser introducidos después
de una diagonal invertida ( \).
Secuencia Despliegue
\n Retorno de línea
\t Tabulador
\" Comillas
\' Apóstrofe
\\ Diagonal invertida
\xNN Caracter que corresponde al número hexadecimal NN en ASCII
\uNN Caracter que corresponde al número hexadecimal NN en Unicode
# Ejemplo 1
# Programa area del circulo
#librerias -- Para este programa NO es necesario
#variables
radio = 0
area = 0.0
#ingreso de datos
print("PROGRAMA DE ")
print("Ingrese el radio")
radio = int(input())
# Proceso de calculos
area = 3.1416 * radio * radio
#salida de resultados
print("El radio es:")
print(area)
# Ejemplo 2
# Calculo de la hipotenusa.
#librerias -- Se usa la libreria math
import math
#variables
hipotenusa = 0.0
cateto1 = 0
cateto2 = 0
aux=0
#ingreso de datos
print("PROGRAMA DE PEPITO PEREZ")
print("Ingrese el cateto1")
cateto1 = int(input())
print("Ingrese el cateto2")
cateto2 = int(input())
#salida de resultados
print("La hipotenusa es:")
print(hipotenusa)
Comentarios.
Los comentarios son porciones de texto que aún cuando se encuentran dentro de un bloque
de código, no son interpretados por Python y sirven primordialmente para documentar al
código.
Comentarios de una sola línea #.
Cualquier texto después del carácter "#" y hasta el final de la línea es considerado como un
comentario.
Ejemplo:
print("Hola") # Despliega un saludo.
Docstrings.
Python también permite incluir comentarios de varias líneas. Éstos deben de estar
encerrados entre triples comillas (""") o apóstrofes (' ' '). Este tipo de comentarios son
conocidos como "docstrings" y son utilizados para generar documentación que se
desplegaría mediante la función help().
Ejemplo:*
"""Este es un mensaje de varias líneas.
Tiene el potencial de generar documentación útil mediante la funcionalidad de
introspección de Python."""
NOTA: Los docstrings que se incluyen al principio de un módulo, función o clase son
reconocidos por Python para generación automática de la documentación. El PEP 257
(https://www.python.org/dev/peps/pep-0257/) describe la forma y estilo de documentar en
Python.
INSTRUCCIÓN if - else
Mediante las estructuras derivadas de if, Python puede evaluar ciertas expresiones lógicas
que resultarían finalmente en un valor booleano True/False, el ejecutaría el código
correspondiente.
if simple e indentación.
La palabra clave if siempre evalúa una expresión lógica y en caso de que dicha expresión
de por resultado el valor True, se ejecutará el código indentado por debajo del if. En caso
de que la declaración resulte en el valor False, el intérprete ignorará el bloque de código
indentado y éste continuará con la instrucción siguiente inmediata a la indentación.
<flujo principal>
...
...
if <expresión lógica> :
<bloque inscrito a if>
<flujo principal>
Estructura if...else.
Si el resultado de la expresión lógica evaluada por if da por resultado False, se puede
utilizar else para ejecutar el bloque de código indentado debajo de
expresión.
<flujo principal>
...
...
if <expresión lógica> :
<bloque inscrito a if>
else:
<bloque inscrito a else>
<flujo principal>
A continuación se muestra un ejemplo del uso del condicional if, elif y else:
#! /usr/bin/python3
"""Script que ejemplifica el uso de la estructura condicional if-elif-else.
Si se ingresa un texto igual a alguno de los nombres de animales, se desplegará el mensaje
correspondiente,
introducir cualquier otro texto desplegará "no sé que ruido hace ese animal." """
#! /usr/bin/python3
animal = input("¿Qué animal sugiere? ")
print("Este animal es %s." % animal)
if animal == "gato":
print("miau")
elif animal == "perro":
print("guau")
elif animal == "pez":
print ("glub glub")
elif animal == "gallo":
print("kikiriki")
elif animal == "vaca":
print("muuu")
else:
print("No sé que ruido hace este animal.")
print("Sólo los gatos maullan.")
#ingreso de datos
print("PROGRAMA DE PEPITO PEREZ")
print("Ingrese la base")
base = int(input())
print("Ingrese la altura")
altura = int(input())
# Proceso de calculos
area = base*altura
if (base == altura) :
print("La figura es un cuadrado")
else:
print("La figura es un rectangulo")
#salida de resultados
print("El area es:")
print(area)
La función exit().
La función exit() termina la ejecución de un programa y cierra el intérprete de Python.
# ejemplo while1
''' Este programa se repetirá 3 veces o hasta que se ingrese
la palabra "despedida" y desplegará el número de intentos
hasta que cualquiera de los eventos ocurra.'''
entrada = ""
suma = 0
while suma < 3 and entrada != "despedida":
entrada = input("Clave: ")
suma += 1
print("Intento %d. \n " % suma)
print("Utilizaste %d intentos." % suma)
suma = 0
while suma < 3 :
entrada = input("Clave:")
#Si se ingresa la palabra "despedida, se termina el ciclo.
if entrada == "despedida":
break
suma = suma + 1
print("Intento %d. \n " % suma)
print("Tuviste %d intentos fallidos." % suma)
#! /usr/bin/python3
''' Este programa se repetirá 3 veces o hasta que se ingrese
la palabra "despedida" y desplegará sólo el número de intentos
fallidos hasta que cualquiera de los eventos ocurra. Al
ingresar la palabra "termina" el programa se detendrá.'''
entrada = ""
suma = 0
while suma < 3 :
entrada = input("Clave:")
if entrada == "despedida":
break
#
# Fin de los programas con while
Objetos iterables.
Una de las grandes fortalezas de Python es su capacidad de realizar iteraciones de forma
dinámica a partir de diversos tipos de objetos con la capacidad
ser iterables.
Algunos de estos objetos son los de tipo:
str.
list.
tuple.
dict.
set.
frozenset.
bytes.
Iteraciones incrementales/decrementales.
La forma más común de realizar iteraciones en otros lenguajes de programación es por
medio algo similar al uso de la función range().
La función range()
Para definir rangos numéricos se usa la función range().
range(n, m, s) cumple: rango >= n and rango < m en incrementos de s.
range(n, m) cumple: rango >= n and rango < m en incrementos de 1.
range(m) cumple: rango >= 0 and rango < m en incrementos de 1.
# La función range()
# Para definir rangos numéricos se usa la función range().
# range(n, m, s) cumple: rango >= n and rango < m en incrementos de s.
# range(n, m) cumple: rango >= n and rango < m en incrementos de 1.
# range(m) cumple: rango >= 0 and rango < m en incrementos de 1.
VECTORES A(n)
A1 A2 A3 A4 A5 A6 A7 --- An
SUMA DE VECTORES
Se suman elementos de las mismas posiciones
Ci = Ai + Bi
# Librerias -- Para este programa NO es necesario
# Variables
# Toma de memoria para los vectores
i=0
n=int(input("Ingrese dimension del vector n= "))
A=[0 for i in range(n)]
B=[0 for i in range(n)]
C=[0 for i in range(n)]
# Ingreso de elementos
for i in range(n):
A[i]=int(input("Ingrese elemento A[%d]= " %i))
B[i]=int(input("Ingrese elemento B[%d]= " %i))
# Proceso de calculos
for i in range(n):
C[i] = A[i] + B[i]
# Impresion de resultados
print("Vector A\n",A)
print()
print("Vector B\n",B)
for i in range(n):
print("elemento C[%d] = %d " %(i,C[i]))
#
# Fin del programa
PRODUCTO PUNTO
# Librerias -- Para este programa NO es necesario
# Variables
# Toma de memoria para los vectores
i=0
n=int(input("Ingrese dimension del vector n= "))
# Ingreso de elementos
for i in range(n):
A[i]=int(input("Ingrese elemento A[%d]= " %i))
B[i]=int(input("Ingrese elemento B[%d]= " %i))
# Proceso de calculos
acum = 0
for i in range(n):
acum += A[i]*B[i]
# Impresion de resultados
for i in range(n):
print("elemento A[%d] = %d " %(i,A[i]))
MATRICES
Es un conjunto de datos representados por filas y columnas su notacion es A(n,m)
A continuación se indica el proceso para tomar memoria para una matrix.
A = [[0 for i in range(c)] for j in range(f)]
SUMA DE MATRICES
Se suma los elementos de las mismas posiciones.
C[i,j] = A[i,j] + B[i,j]
# librerías -- Para este programa NO es necesario
# Variables
# Reserva de memoria para la matriz
f=int(input("Insertar numero de filas matriz A: "))
# Ingreso de datos
# Ingreso de datos para la matriz A
for i in range (f):
for j in range(c):
A[i][j]=int(input("Matriz A elemento %d,%d: " %(i,j)))
print("A:")
print(A)
# Proceso de calculos
# Suma de matrices
for i in range(f):
for j in range(c):
C[i][j]=A[i][j]+B[i][j]
print("Matriz Suma")
print(C)
MULTIPLICACION DE MATRICES
Se suman los elementos que resultan de multiplicar la fila de A por la columna de B
𝐶(𝑖, 𝑗) = ∑ 𝐴𝑓𝑖𝑙𝑎 𝑖 ∗ 𝐵𝑐𝑜𝑙𝑢𝑚𝑛𝑎 𝑗
𝑖,𝑗
# Proceso de calculos
# Multiplicacion de matrices
for i in range(m):
for j in range(n):
C[i][j]=0
for k in range(p):
C[i][j]+=A[i][k]*B[k][j]
print("Matriz Multiplicacion")
print(C)
# calculos - filtro
for i in range (1, n-1):
for j in range (1, n-1):
print()
B[i][j] = (A[i-1][j-1] + A[i-1][j] + A[i-1][j+1] + A[i][j-1] +
A[i][j] + A[i][j+1] + A[i+1][j-1] + A[i+1][j] + A[i+1][j+1])/9
#resultados
print("\n\n --------Matriz A original -------\n\n")
print(A)
print("\n\n --------Matriz B filtrada -------\n\n")
print(B)
PROCESAMIENTO DE IMAGEN
# EJEMPLO DE USO DEL FILTRO DE GAUSS Y DE CANNY A UNA IMAGEN
# librerias
# pip install numpy
# pip install opencv-python
import numpy as np
import cv2
# Cargamos la imagen la imagen debe estar en la misma carpeta
original = cv2.imread("volcan.jpg") # se lee la image
cv2.imshow("original", original) # imprime imagen en la pantalla
cv2.imshow("suavizado", gauss)
cv2.imshow("canny", canny)
cv2.drawContours(original,contornos,-1,(0,0,255), 2)
cv2.imshow("contornos", original)
cv2.waitKey(0)
REFERENCIAS
https://pythonista.io/cursos/py101/palabras-reservadas-y-espacios-de-nombres
https://pythonista.io/cursos/py101/tipos-de-datos-basicos-y-operadores
https://pythonista.io/cursos/py101/entrada-y-salida-estandar
https://pythonista.io/cursos/py101/bloques-de-codigo-y-condicionales
https://pythonista.io/cursos/py101/ciclos-con-while-e-interrupciones-de-flujo