Está en la página 1de 29

DOCUMENTO № 2 PREPARADO PARA LOS NRC 8208 Y 9403 PERIODO 202050

INTRODUCCION A LA PROGRAMACION – PYTHON CONCEPTOS BASICOS

PALABRAS RESERVADAS, NOMBRES Y ESPACIOS


DE NOMBRES EN PYTHON.
Las palabras reservadas (keywords) corresponden a los nombres de las declaraciones que el
intérprete de Python incluye por defecto. No se deben utilizar dichas palabras para asignar
nombres a otros objetos.
El listado de palabras reservadas puede ser consultado ingresando help('keywords') desde la
interfaz interactiva.
Palabras reservadas en Python 3.
>>> help("keywords")
False def if raise
None del import return
True elif in try
and else is while
as except lambda with
assert finally nonlocal yield
break for not
class from or
continue global pass

El espacio de nombres (namespace).


Nota: Para fines de claridad, los términos "nombre" e "identificador" serán considerados
como sinónimos.
• Python es un lenguaje de muy alto nivel en el que todos sus elementos son objetos,
incluyendo los tipos de datos básicos.
• La gestión del uso de la memoria es automático en Python, tanto para la asignación de
memoria al crear un objeto, como para la recuperación de memoria al desecharlo.
• El espacio de nombres (namespace) contiene un listado de los objetos existentes en la
memoria del sistema y los nombres a los que están ligados.
• Un objeto puede tener más de un nombre.
• Si un objeto no está ligado al menos a un nombre, dicho objeto es desechado.
• El intérpete de Python tiene un espacio de nombres principal, pero cada función, módulo
y objeto tiene su propio espacio de nombres. A ésto se le conoce como "Ámbito" (Scope).

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]]

Página 1 de 29 por Dr. Luis Cadena


>>> numero = 23.45
>>> saludo
'Hola'
>>> matriz
[['autobús', 'diesel', True], ['automóvil', 'gasolina', True]]
>>> numero
23.45

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

Sintaxis para la elaboración de nombres en Python 3.


• Python 3 acepta el uso de unicode, por lo que es posible utilizar cualquier caracter
alfabético, incluso aquellos distintos al alfabeto occidental, para la elaboración de nombres.
• Los nombres pueden empezar con un guión bajo _ o un caracter alfabético.
• Después del primer caracter, se pueden utilizar caracteres alfabéticos, números y/o
guiones bajos.
• No se permiten caracteres distintos a los alfabéticos o que pudieran confundirse con
operadores como "|", "~", "#", "-", etc.
• Se pueden utilizar mayúsculas, pero cabe señalar que Python es sensible a mayúsculas.

Eliminación de nombres mediante la declaración del.


La declaración del funciona de la siguiente manera:
Desliga al identificador de un objeto en el espacio de nombres.
Una vez que el nombre del identificador es desligado, ya no es posible invocarlo por ese
nombre.
En caso de que el objeto no esté ligado a otros identificadores en el espacio de nombres, el
intérprete de Python podría destruir al objeto.
El modo en el que un objeto puede ser destruido varía dependiendo del tipo de objeto.

Página 2 de 29 por Dr. Luis Cadena


Ejemplos:
>>> nombre = "Juan"
>>> otro_nombre = "Juan"
>>> id(nombre)
>>> 139899583489560
>>> id(otro_nombre)
>>> 139899583489560
>>> del nombre
>>> nombre
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-32-537e465e3aa0> in <module>()
----> 1 nombre
NameError: name '

>>> otro_nombre

TIPOS DE DATOS BÁSICOS Y OPERADORES


Particularidades los tipos de datos en Python.

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.

Los tipos son clases.


En Python todos sus elementos son objetos y los datos una vez identificados, se convierten
objetos instanciados del tipo al que pertenecen.

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.

Página 3 de 29 por Dr. Luis Cadena


Números de punto flotante (float).
Los objetos tipo float corresponden al conjunto de los números reales.
3.141595
12.
-45.3556

Precisión de los números flotantes.


Hay que tomar en cuenta de que la precisión de los números dependen en gran medida de la
capacidad del equipo de cómputo, por lo que en ocasiones
operación con números de tipo float no dará el resultado exacto, sino una aproximación.

>>> 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.

Números complejos (complex).


Los objetos de tipo complex corresponden al conjunto de los números complejos.
Siempre que el componente en los números reales sea distinto de 0, los objetos de tipo
complex se expresarán como un par de números de
tipo floatseparados por el operador de adición "+", en el que el primer número corresponde
al componente en los números reales y el componente en los
números imaginarios es identificado añadiéndole la letra "j" al final.
6.32 + 45j
0.117j
(2 + 0j)
1j

Valores booleanos (bool).


El tipo booleano es una especie de tipo numérico que es utilizado para evaluar expresiones
lógicas.
Si la expresión lógica es cierta, el resultado es True (con mayúscula al principio).
Si la expresión lógica NO es cierta, el resultado es False (con mayúscula al principio).
False equivale numéricamente a 0. Cualquier otro número equivale a True y su valor por
defecto es 1.

Cadenas de caracteres (str) .


Las cadenas de caracteres son secuencias de caracteres encerradas entre comillas (" ") o
apóstrofes (' ') indistintamente.
'Hola Mundo'
"Vamos al McDonald's"

None.
El tipo None representa un valor "vació".

Página 4 de 29 por Dr. Luis Cadena


Funciones relativas a tipos de datos.
type().
Entre otras cosas, type regresa el tipo de dato de una variable.
Ejemplos:
>>> type("Hola")
str
>>> type(12)
int
>>> type(23j)
complex

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'

Página 5 de 29 por Dr. Luis Cadena


La función float().
Transforma a un objeto compatible a uno de tipo float.
-Puede convertir objetos de tipo str que contengan representen correctamente a un número
real.
-Es compatible con los objetos tipo int.
-True es convertido en 1.0 y False en 0.0.
-No es compatible con objetos tipo complex.
Ejemplos:
>>> float(False)
0.0
>>> float("-12.6")
-12.6
>>> float(-5)
-5.0
>>> float('Hola')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-16-5defe0eb8efc> in <module>()
----> 1 float('Hola')
ValueError: could not convert string to float: 'Hola'

>>> float(12.5 + 33j)


---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-17-1ecc38d59454> in <module>()
----> 1 float(12.5 + 33j)
TypeError: can't convert complex to float

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.

Página 6 de 29 por Dr. Luis Cadena


Ejemplos:
>>> bool(-3)
True
>>> bool(2)
True
>>> bool(0.0)
False
>>> bool("Hola")
True
>>> bool("0")
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

Página 7 de 29 por Dr. Luis Cadena


2
>>>
En Python 3 las divisiones entre objetos de tipo int dan como resultado un objeto de tipo
float cuando el resultado de la división no es un entero.
Ejemplos:
>>> 3 / 4
0.75
>>> 10 / 5
2.0

Reglas de precedencia en operaciones aritméticas.


Los operadores se apegan a la siguiente regla de precedencia siguiendo una secuencia de
izquierda a derecha:
1. Paréntesis.
2. Exponente.
3. Multiplicación.
4. División.
5. Suma.
6. Sustracción.

Ejemplos:
>>> 12 * 5 + 2 / 3 ** 2
60.22222222222222
>>> (12 * 5) + (2 / (3 ** 2))
60.22222222222222
>>> (12 * 5) + (2 / 3) ** 2
60.44444444444444

Operadores para objetos de tipo str.

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.

Página 8 de 29 por Dr. Luis Cadena


Operador Evalúa
== a == b ¿a igual a b?
!= a != b ¿a distinta de b?
> a > b ¿a mayor que b?
< a < b ¿a menor que b?
>= a >= b ¿a mayor o igual que b?
<= a <= b ¿a menor o igual que b?

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

Página 9 de 29 por Dr. Luis Cadena


>>> 'Hola' and 123
123
>>> bool('Hola' and 123)
True
>>> False and False
False
>>> not True
False
>>> not False or True
True
>>> not (False or True)
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.

Operador Descripción Ejemplo


= Asignación simple x=y
+= Suma x += y equivale a x = x + y
-= Resta X -= y equivale a x = x - y
*= Multiplicación x *= y equivale a x = x * y
**= Exponente x **= y equivale a x = x ** y
/= División x /= y equivale a x = x / y
//= División entera x //= y equivale a x = x // y
%= Residuo de división x %= y equivale a x = x % y

Ejemplos:
>>> x = 2
>>> x += 3
>>> x
5
>>> y = 2
>>> y **= 3

Página 10 de 29 por Dr. Luis Cadena


>>> y
8
>>> cadena = 'Hola'
>>> cadena *= 3
>>> cadena
'HolaHolaHola'

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.

Página 11 de 29 por Dr. Luis Cadena


Operador Evalúa
is a is b Equivale a id(a) == id(b)
is not a is not b Equivale a id(a) != id(b)

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

Página 12 de 29 por Dr. Luis Cadena


^
SyntaxError: unexpected EOF while parsing

FUNCIONES MATEMATICAS
Para usar funciones matemáticas se debe incluir la libreria math de la
siguiente manera
import math

ENTRADA Y SALIDA ESTANDAR


ENTRADA ESTÁNDAR CON input().
La función por defecto de entrada estándar para Python 3 es input(). La función input()
captura los caracteres provenientes de entrada estándar (el teclado) hasta que se introduce
un retorno de carro y el contenido capturado es devuelto al intérprete como una cadena de
texto. La cadena de caracteres resultante puede ser almacenada como un objeto de tipo str
mediante la asignación de un nombre. La función permite desplegar un mensaje de tipo str
como parámetro.
La función input() .
La sintaxis es la siguiente para Python 3:
input(<objeto tipo str>)

Ejemplos:
>>> nombre = input("Escribe un nombre: ")
>>> print(nombre)

value = input("Please enter an integer:\n")


value = int(value)
n = int((input("n =")))
A[i]=int(input("Ingrese elemento A[%d]= " %i))
A[i][j]=int(input("Matriz A elemento %d,%d: " %(i,j)))

SALIDA ESTÁNDAR CON print().


En Python3 print() es una función, por lo que el contenido a desplegar siempre debe estar
expresado como un parámetro dentro de la función, es decir, que debe es entre paréntesis.
-Cuando print() incluye una expresión, ésta es evaluada antes de ser desplegada.
-Del mismo modo, print() puede desplegar varias expresiones separadas por comas.

print("Mensaje %f %t %f ..." % (var1, var2, … varn))

>>> a = 2
>>> print(a)
2

Página 13 de 29 por Dr. Luis Cadena


>>> 2 + 2
4
>>> print("Hola")
Hola
>>> print("Hola", "Mundo")
Hola Mundo
>>> print("Hola" + "Mundo")
HolaMundo
>>> print("Tienes", a, "buenos amigos.")
Tienes 2 buenos amigos
>>> print("Tienes" + a + "buenos amigos.")
Todas las funciones, incluyendo a print(), regresan un valor. El valor que print regresa es
None, pero este valor no es desplegado por el intérprete.
>>> nulo = print("Hola")
Hola
>>> nulo
Sin embargo, la función print() sí puede desplegar el valos None.
>>> print(nulo)
None

Despliegue con formato.


Para intercalar valores dentro de un formato específico de texto se utiliza el carácter sobre-
escritura (%) seguido de uno de los siguientes caracteres.

Caracter de escape Modo de despliegue


s cadena de texto
d entero
o octal
x hexadecimal
f punto flotante
e punto flotante en formato exponencial

El uso de %s, equivale a aplicar la función str() al valor a desplegar.


Después del texto, se añade otro signo (%) y las expresiones o nombres correspondientes
entre paréntesis y separados por comas. Si sólo es una expresión nombre, no es necesario
utilizar el paréntesis.

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.

Página 14 de 29 por Dr. Luis Cadena


>>> print("El perímetro de un circulo de radio %s es %s." % (radio, 2 * radio * pi))
El perímetro de un circulo de radio 2 es 12.566368.
>>> print("El valor de pi es %f." % (pi))
El valor de pi es 3.141592.
>>> print("El valor de pi es %e." % pi)
El valor de pi es 3.141592e+00.

Para desplegar el signo de porcentaje "%" se utiliza %%.


Ejemplo:
>>> valor = 13
>>> porciento = 15
>>> porcentaje = (valor * porciento) / 100
>>> print("El %d%% de %f es %f." % (porciento, valor, porcentaje))
El 15% de 13.000000 es 1.950000.

Despliegue de cifras significativas.


Para desplegar un número específico de cifras significativas de un valor de punto flotante,
se añade un punto (.) y el número de cifras a desplegarse después del signo (%) y antes del
carácter f o e.
Ejemplo:
>>> pi = 3.14169265
radio = 2
print("El perímetro de un círculo de radio igual a %d es %f." % (radio, 2 * pi * radio))
print("El perímetro de un círculo de radio igual a %d es %.2f." % (radio, 2 * pi * radio))
El perímetro de un círculo de radio igual a 2 es 12.566771.
El perímetro de un círculo de radio igual a 2 es 12.57.

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

Página 15 de 29 por Dr. Luis Cadena


Ejemplo:
>>> print("Primera línea.\nSegunda línea\t con tabulador.")
Primera línea.
Segunda línea con tabulador.
>>> print("Este es el signo de \"gato\" \x23.")
Este es el signo de "gato" #.
>>> print("Beta: \u00DF")
Beta: ß
print("elemento A[%d] = %d " %(i,A[i]))

# 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())

Página 16 de 29 por Dr. Luis Cadena


# Proceso de calculos
aux = (cateto1*cateto1)+(cateto2*cateto2)
hipotenusa = math.sqrt(aux)

#salida de resultados
print("La hipotenusa es:")
print(hipotenusa)

BLOQUES DE CÓDIGO, COMENTARIOS Y


CONDICIONALES
Indentación de bloques de código.
En Python la indentación forma parte de la sintaxis.
La indentación se utiliza para delimitar bloques de código dentro de un condicional, ciclo,
función, etc., sin necesidad de utilizar caracteres delimitadores como ocurre en otros
lenguajes de programación.
Por convención se utilizan cuatro espacios para indentar en vez de tabuladores.

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.

Página 17 de 29 por Dr. Luis Cadena


INSTRUCCIONES DE CONTROL DE PROGRAMA
Las instrucciones se ejecutan en forma secuencial de arriba hacia abajo, pero este orden
puede ser alterado por las instrucciones de condición y repetición.

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>

A continuación se muestra un ejemplo de uso del condicional if en su modo más simple:


animal = input("¿Qué animal es? ")
if animal == "gato":
print("miau")
print ("Sólo los gatos maullan.")

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 y else:


animal = input("¿Qué animal es? ")
print("Este animal es un %s." % animal)
if animal == "gato" :
print("miau")
else:
print("No sé que ruido hace este animal.")
print("Sólo los gatos maullan.")

Página 18 de 29 por Dr. Luis Cadena


Estructura if...elif...else.
Es posible evaluar más de una expresión lógica mediante el uso de elif. En el caso de que
exista más de una expresión lógica que de por resultado True, Python ejecutará solamente
el código delimitado por la primera que ocurra.
En caso de que ninguna de las condiciones de por resultado True se puede utilizar else al
final de la estructura.
<flujo principal>
...
...
if <expresión lógica> :
<bloque inscrito a if>
elif <expresión lógica 1> :
<bloque inscrio a elif>
elif <expresión lógica 2> :
<bloque inscrio a elif>
...
...
elif <expresión lógica n> :
<bloque inscrio a elif>
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.")

Página 19 de 29 por Dr. Luis Cadena


# Ejemplo 3
# Programa de decisiones
#librerias -- para este programa NO es necesario
#variables
base = 0
altura = 0
area = 0

#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)

CICLOS, ITERACIONES E INTERRUPCIONES DE


FLUJO
Ciclos con while e interrupciones de flujo con break, continue y exit en Python.

Ciclos con while.


Python cuenta con la palabra reservada while para ejecutar un bloque de código
recursivamente mientras se cumpla una condición determinada. Cuando expresión lógica
evaluada por while sea False , el flujo de ejecución continuará sin ejecutar el bloque dentro
de while.
<flujo principal>
...
...
while <expresión lógica> :
<bloque inscrito a while>
<flujo principal>

Interrupciones de ejecución de un bloque.


En ciertas circunstancias es necesario interrumpir el flujo lógico de un programa. Python
cuenta con los siguientes recursos para hacerlo.

Página 20 de 29 por Dr. Luis Cadena


La palabra reservada continue.
La palabra reservada break.
La función exit().

La palabra reservada continue.


La palabra reservada continue termina de forma prematura la ejecución de un bloque dentro
de un ciclo.

La palabra reservada break.


La palabra reservada break termina prematuramente la ejecución del bloque de código en el
que se encuentra y restablece el flujo de ejecución al bloque
código que lo precede.
NOTA: break no sólo se puede aplicar a ciclos o iteraciones, sino también a funciones,
métodos y a cualquier elemento que contenga bloques de código
ejecutable.

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)

# ejemplo while2 usa continue


''' Este programa se repetirá 3 veces y desplegará el número de
intentos en los que se ingresó la palabra "despedida".'''
entrada = ""
suma = 0
fallido = 0
while suma < 3 :
suma += 1
print("Intento %d." % suma)
entrada = input("Clave: ")
print()
# Al ingresar "despedida", se evita que la variable fallido
# se incremente.
if entrada == "despedida":
continue
fallido += 1
print("Tuviste %d intentos fallidos." % fallido)

Página 21 de 29 por Dr. Luis Cadena


# ejemplo while3 usa break
#
#
''' 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.'''

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)

# while4 usa break

#! /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

ITERACIONES CON for... in.

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.

Página 22 de 29 por Dr. Luis Cadena


Las iteraciones para cada uno de los tipos enunciados se estudiarán y analizarán caso por
caso en secciones próximas.

La estructura for ... in.


Para iterar un objeto iterable se utiliza la siguiente sintaxis:

for <contador> in <objeto iterable> :

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.

# Cuenta del 0 hasta menos de 8 en incrementos de a 1


print("Cuenta del 0 hasta menos de 8 en incrementos de a 1")
for contador in range(8) :
print(contador)
print()

# Cuenta del 5 hasta menos de 9 en incrementos de a 1


print("Cuenta del 5 hasta menos de 9 en incrementos de a 1")
for contador in range(5, 9) :
print(contador)
print()

# Cuenta de 3 hasta menos de 11 en incrementos de a 2.


print("Cuenta de 3 hasta menos de 11 en incrementos de a 2.")
for contador in range (3, 11, 2) :
print(contador)
print()

# Cuenta del 26 hasta más de 10 en decrementos de a 4.


print("Cuenta del 26 hasta más de 10 en decrementos de a 4.")
for contador in range(26, 10, -4):
print(contador)
#
# Fin de programas for

Página 23 de 29 por Dr. Luis Cadena


ARREGLOS
Es un conjunto de datos almacenados con un nombre de una variable. Los datos parciales se
los puede ubicar con el nombre de la variable y un índice. Hay arreglos unidimensionales,
también llamados vectores, bidimensionales llamados matrices, etc.

VECTORES A(n)
A1 A2 A3 A4 A5 A6 A7 --- An

A continuación se indica el proceso para tomar memoria para un vector.


A=[0 for i in range(n)]

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= "))

Página 24 de 29 por Dr. Luis Cadena


A=[0 for i in range(n)]
B=[0 for i in range(n)]
acum = 0

# 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]))

print("--------El producto punto de 2 vectores -------")


print("Vector A\n",A)
print()
print("Vector B\n",B)
print()
print("Producto punto A.B = %d" % acum)

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)]

A11 A12 A13 A14 A15 A16 A17 --- A1m


A21 A22 A23 A24 A25 A26 A27 --- A2m
A31 A32
A41 A42
A51 A52
A61 A62
A71 A72
--- ---
An1 An2 Anm

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: "))

Página 25 de 29 por Dr. Luis Cadena


c=int(input("Insertar numero de columnas matriz A: "))
A = [[0 for i in range(c)] for j in range(f)]
B = [[0 for i in range(c)] for j in range(f)]
C = [[0 for i in range(c)] for j in range(f)]

# 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)

# Ingreso de datos para la matriz B


for i in range(f):
for j in range(c):
B[i][j]=int(input("Matriz B elemento %d,%d:" %(i,j)))
print("B:")
print(B)

# 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
𝐶(𝑖, 𝑗) = ∑ 𝐴𝑓𝑖𝑙𝑎 𝑖 ∗ 𝐵𝑐𝑜𝑙𝑢𝑚𝑛𝑎 𝑗
𝑖,𝑗

# librerías -- Para este programa NO es necesario


# Variables
# Definir Matriz
m=int(input("Insertar numero de filas matriz A: "))
p=int(input("Insertar numero de columnas matriz A: "))
while True:
r=int(input("Insertar numero de filas matriz B: debe ser igual a
numero columnas de A"))
if(r==p):
break

n=int(input("Insertar numero de columnas matriz B: "))


A = [[0 for i in range(p)] for j in range(m)]
B = [[0 for i in range(n)] for j in range(p)]
C = [[0 for i in range(n)] for j in range(m)]

Página 26 de 29 por Dr. Luis Cadena


# Ingreso de datos
# Ingreso de datos para la matriz A
for i in range (m): # filas
for j in range(p): # columnas
A[i][j]=int(input("Matriz A elemento %d,%d: " %(i,j)))
print("A:")
print(A)

# Ingreso de datos para la matriz B


for i in range(r): # filas
for j in range(n): # columnas
B[i][j]=int(input("Matriz B elemento %d,%d:" %(i,j)))
print("B:")
print(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)

USO DE LA LIBRERÍA NUMPY


https://www.manejandodatos.es/2015/01/numerical-python-trabajando-con-
matrices-y-vectores/
Numerical Python, o NumPy es un paquete fundamental y básico para el
alto rendimiento en calculo científico y el análisis de datos, y un
paquete de referencia para herramientas de alto nivel.

# Uso de la libreria numerical python numpy


#Se importa la Biblioteca
import numpy as np

# Creamos una variable que contenga los valores del 0 al 9


a = np.arange(10)
# Desplegamos el valor de la variable
print(a)

b = np.arange(0, 10, 0.2)


c = np.arange(20, 10, -1)
print("Vector b:")
print(b)
print("Vector c:")
print(c)

Página 27 de 29 por Dr. Luis Cadena


ALGORITMO FILTRAJE DE IMAGEN CON FILTRO DE PROMEDIO CON KERNEL 3X3
Una imagen se representa por una matriz A(n,m)

# Programa del filtro de promedio a una matriz


#
#librerias -- este programa NO necesita
#variables
i = 0
j = 0
n = int((input("n =")))
A = [[0 for i in range (n)] for j in range (n)]
B = [[0 for i in range (n)] for j in range (n)]
#ingreso de datos
for i in range (n):
for j in range (n):
A[i][j]= 1 # ingresar otros datos diferentes del 1

# 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

# Convertimos a escala de grises


gris = cv2.cvtColor(original, cv2.COLOR_BGR2GRAY)

# Aplicar suavizado Gaussiano


gauss = cv2.GaussianBlur(gris, (5,5), 0)

cv2.imshow("suavizado", gauss)

Página 28 de 29 por Dr. Luis Cadena


# Detectamos los bordes con filtro de Canny
canny = cv2.Canny(gris, 50, 150)

cv2.imshow("canny", canny)

# Buscamos los contornos


(contornos,_) = cv2.findContours(canny.copy(), cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)

# Mostramos el número de bordes detectados


print("He encontrado {} objetos".format(len(contornos)))

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

Página 29 de 29 por Dr. Luis Cadena

También podría gustarte