03 - 02 AlgProg - Fundamentos de Programación en Python
03 - 02 AlgProg - Fundamentos de Programación en Python
Programación en
Python
Unidad 3 – Fundamentos de
programación en Python
Coordinación del curso
Contenido
2. FUNDAMENTOS DE PROGRAMACIÓN
3.1 Introducción Informal y Tipo de Datos
3.2 Operadores y expresiones
3.3 Entradas y Salidas
3.4 Controlando el flujo
• Sentencia IF
• Sentencia While
• Sentencia FOR
3.5 Matrices
3.1 Introducción y Tipos
de Datos
3.1 Introducción informal y Tipo de Datos
Nombre de variables
Una variable puede tener nombres cortos como X e Y, o tener nombres más descriptivos como Edad, Nombre, Volumen_Total.
Reglas para las variables de Python:
➢ Una variable debe iniciar con una letra o una raya abajo ( _ underscore character)
➢ Una variable no puede iniciar con numero
➢ Una variable puede contener solo caracteres alfa numéricos o raya abajo (A-z, 0-9, and _ )
➢ Los nombres de las variables son sensibles a las mayúsculas (p.e. edad, Edad, EDAD son tres variables diferentes)
Declaración de variables
Python como muchos lenguajes, declara la variable con el primer valor asignado a este. NO REQUIERE UN COMANDO
➢ x=5
➢ y = "Hello, World!“
Globales
Se puede crear una variable fuera y otra del mismo nombre dentro de la función. La que fue creada dentro de la función será
local y tomará dicho valor en la función. La variable global mantendrá el valor inicial. Terminada la ejecución de la función, la
variable local desaparecerá, y quedará la global con su valor original.
➢ x= ‘Sorprendente’ ➢ def myfunc():
def myfunc(): Global x
x = “genial” x=“genial” # Se declara con la palabra Global
print("Python es " + x) print("Python es " + x) # Global es palabra reservada
myfunc()
myfunc()
print("Python es " + x)
print("Python es " + x)
3.1 Introducción informal y Tipo de Datos
Comentarios
Python con el propósito de documentar sus códigos de línea, permite comentarlas mediante el carácter # al inicio de la línea:
➢ #Este es un comentario
print("Hola, mundo!")
➢ print("Hola, mundo!") #Este es un comentario
x = True bool
x = b"Hello" bytes
x = bytearray(5) bytearray
x = memoryview(bytes(5)) memoryview
3.1 Introducción informal y Tipo de Datos
Example Data Type
Data type
x = str("Hello World") str
Para asignar a una
variable un tipo de dato x = int(20) int
especifico, se deben x = float(20.5) float
utilizar las siguientes
x = complex(1j) complex
funciones:
x = list(("apple", "banana", "cherry")) list
x = tuple(("apple", "banana", "cherry")) tuple
x = range(6) range
x = dict(name="John", age=36) dict
x = set(("apple", "banana", "cherry")) set
x = frozenset(("apple", "banana", "cherry")) frozenset
x = bool(5) bool
x = bytes(5) bytes
x = bytearray(5) bytearray
x = memoryview(bytes(5)) memoryview
3.1 Introducción informal y Tipo de Datos
Cadenas (string)
Las cadenas en Python, deben estar encerradas entre comillas “ ” o apóstrofos ‘ ’
“hola” es lo mismo a ‘hola’
Se puede usar parte de una cadena, usando slicing [pos inicial: pos final:pasos] la posición final no se incluye
x=‘Hola todos’ 0 1 2 3 4 5 6 7 8 9
Los índices también pueden ser negativos slicing [pos inicial: pos final:pasos]
x=‘Hola todos’
print(x[-8: -2]) #el resultado es: la tod
print(x[-5:]) #el resultado es: todos
3.1 Introducción informal y Tipo de Datos
3.1 Introducción informal y Tipo de Datos
Cadenas (string)
Las cadenas se pueden concatenar es decir unir con otras cadenas para formar otras cadenas. No se puede
concatenar con números enteros o flotantes
x=“hola ”
y=“mundo”
print(x+y) #el resultado es: hola mundo
print(x+y+3) #el resultado es: error
print((x+y)*3) #el resultado es: hola mundohola mundohola mundo
Python puede comparar cadenas: == y != (igual o diferente). La comparación se hace carácter por carácter. Si estas son iguales o de lo contrario
serán diferentes
x=“hola ” x=“hola ”
y=“hola ” y=“Hola ”
x==y #el resultado es: True (verdadero) x==y #el resultado es: False (falso)
Python también compara cadenas: < o > (menor o mayor). La comparación se hace carácter por carácter. Pero considerando su código ASCII
(128 caracteres u 8 bits) pero ahora su nuevo estándar Unicode (65536 u 16 bits)
x=“hola ”
y=“Hola ”
x<y #el resultado es: False (falso)
ord('h’) #el resultado es: 104 La función ORD() devuelve la posición del carácter en la tabla UNICODE
ord(‘H’) #el resultado es: 72 La función chr() devuelve el carácter de la posición en la tabla UNICODE
3.1 Introducción informal y Tipo de Datos
Cadenas (string)
String Format.- También se requieren Combinar números con letras hacer tabulados
x=2021
y=“Hola mundo ”
x=2021
print(x+y) #el resultado es: error y=“Hola mundo {}”
print(y.format(x)) #el resultado es: Hola mundo 2021
Cantidad = 3
Articulo = 365
Precio = 49.95
miorden = “Yo deseo {} piezas del artículo {} por {} soles."
print(miorden.format(Cantidad, Articulo, Precio)) #el resultado es: Yo deseo 3 piezas del artículo 365 por 49.95 soles.
miorden = “Deseo pagar {2} soles, por {0} piezas del artículo {1}."
print(miorden.format(Cantidad, Articulo, Precio)) #el resultado es: Deseo pagar 49.95 soles, por 3 piezas del artículo 365.
3.1 Introducción informal y Tipo de Datos
Cadenas (string) Code Result
Scape characters.- algunos efectos para imprimir las cadenas.
Carácter \. \n nueva línea
\' Single Quote
miorden = “Deseo pagar {2} soles \n por {0} piezas \n del artículo {1}." \\ Backslash
print(miorden.format(Cantidad, Articulo, Precio))
#el resultado es: Deseo pagar 49.95 soles
\n New Line
por 3 piezas \r Carriage Return
del artículo 365.
\t Tab
\b Backspace
\f Form Feed
\ooo Octal value
➢ Permite Loops o recorridos por los elementos ➢ Verifica la existencia de un elemento. Por ejemplo si
for x in Estalista: melon está en la lista
print (x) # la respuesta es apple if “melon" in Estalista:
banana print(“Si, ‘melon’ está en la lista de frutas")
lemon
# la respuesta es Si, ‘melon’ está en la lista de frutas
orange
kiwi
melon
mango
3.1 Introducción informal y Tipo de Datos
Listas (list)
➢ Determinar la longitud de la lista. Función len()
Estalista = ["apple", "banana", "cherry“, "orange", "kiwi", "melon", "mango“]
print( len(Estalista) ) # la respuesta es 7
➢ Agregar elementos. Estos se agregan al final de la lista con método append()
Estalista = ["apple", "banana", "cherry“, "orange", "kiwi", "melon", "mango“]
Estalista.append (“blueberry“)
print(Estalista) # la respuesta es ['apple', 'banana', 'cherry', 'orange', 'kiwi', 'melon', 'mango', 'blueberry’]
➢ Insertar elementos. Estos se insertan en una posición específica de la lista con método insert()
Estalista = ["apple", "banana", "cherry“, "orange", "kiwi", "melon", "mango“]
Estalista.insert(2, “blueberry“)
print(Estalista) # la respuesta es ['apple', 'banana', 'blueberry', 'cherry', 'orange', 'kiwi', 'melon', 'mango’]
➢ Eliminar elementos. Se eliminan al final por defecto o en una posición específica de la lista con método pop()
Estalista = ["apple", "banana", "cherry“, "orange", "kiwi", "melon", "mango“]
Estalista.pop(): Estalista.pop(1)
print(Estalista) # la respuesta es ['apple', 'cherry', 'orange', 'kiwi', 'melon']
3.1 Introducción informal y Tipo de Datos
Listas (list)
➢ Borrar la lista con comando del. Este comando borra la lista de memoria
Estalista = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
del Estalista
print(Estalista) # la respuesta es NameError: name 'Estalista' is not defined
➢ Vaciar la lista con método clear()
Estalista = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
Estalista.clear()
print(Estalista) # la respuesta es []
➢ Copiar lista
No puede copiar una lista simplemente escribiendo list2 = list1, porque: list2 solo será una referencia a list1, y los cambios
realizados en list1 también se realizarán automáticamente en list2. Hay formas de hacer una copia, una es usar el método de
lista incorporado copy()
Estalista = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
Nuevalista = Estalista.copy()
print(Nuevalista) # la respuesta es ['apple', 'banana', 'cherry', 'orange', 'kiwi', 'melon', 'mango']
3.1 Introducción informal y Tipo de Datos
Listas (list)
➢ Copiar lista
Otra forma de copiar es con el método interno list()
Estalista = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
Nuevalista = list(Estalista)
print(Nuevalista) # la respuesta es ['apple', 'banana', 'cherry', 'orange', 'kiwi', 'melon', 'mango’]
➢ Unir dos listas
Existen varias formas de unir listas, una de ellas es la de concatenar (+)
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
list3 = list1 + list2
print(list3) # la respuesta es ['a', 'b', 'c', 1, 2, 3]
Otra es usando el método append()
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
list1.append(list2)
print(list1) # la respuesta es ['a', 'b', 'c', [1, 2, 3]]
3.1 Introducción informal y Tipo de Datos
Listas (list)
➢ Métodos incorporados
Python tiene un conjunto de métodos integrados que puede usar en las listas
Method Description
append() Adds an element at the end of the list
clear() Removes all the elements from the list
copy() Returns a copy of the list
count() Returns the number of elements with the specified value
extend() Add the elements of a list (or any iterable), to the end of the current list
index() Returns the index of the first element with the specified value
insert() Adds an element at the specified position
pop() Removes the element at the specified position
remove() Removes the item with the specified value
reverse() Reverses the order of the list
sort() Sorts the list
3.2 Operadores y
expresiones
3.2 Operadores y expresiones
Python tiene los siguientes operadores
• Aritméticos
• De asignación
• De comparación
• Lógicos
• Identidad
• Miembros
• Bitwise (Binarios)
3.2 Operadores y expresiones
Operadores aritméticos
Operator Name Example
+ Addition x+y
- Subtraction x-y
* Multiplication x*y
/ Division x/y
% Modulus x%y
** Exponentiation x ** y
not Reverse the result, returns False if the result is true not(x < 5 and x < 10)
Operadores de identidad
Los operadores de identidad se usan para comparar los objetos, no si son iguales, sino si en realidad son el mismo objeto, con
la misma ubicación de memoria:
is not Returns True if both variables are not the same object x is not y
3.2 Operadores y expresiones
Operadores de miembros
Los operadores de membresía se utilizan para probar si una secuencia se presenta en un objeto:
Operator Description Example
in Returns True if a sequence with the specified value is present in the object x in y
not in Returns True if a sequence with the specified value is not present in the object x not in y
Operadores Bitwise
Los operadores bit a bit se usan para comparar números (binarios):
Operator Name Description
& AND Sets each bit to 1 if both bits are 1
| OR Sets each bit to 1 if one of two bits is 1
^ XOR Sets each bit to 1 if only one of two bits is 1
~ NOT Inverts all the bits
<< Zero fill left shift Shift left by pushing zeros in from the right and let the leftmost bits fall off
>> Signed right shift Shift right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off
3.3 Entradas y salidas
de datos
3.3 Entradas y salidas de datos
Entradas
Se usa la función input(). Esta función lee cadenas por lo que habrá que modificar luego el valor
ingresado al tipo de dato correspondiente
➢ Sintaxis de input()
Entero = int(input(“Ingrese un numero entero : “))
Decimal = float(input(“Ingrese un numero decimal : “))
➢ Variables como argumentos en input()
numero1 = int(input(“Ingrese un numero entero : “))
numero2 = int(input(“Ingrese un numero entero mayor a {numero1} : “))
3.3 Entradas y salidas de datos
Scripts o programa
Conjunto de sentencias de Python que se invoca desde la línea de comandos. También puede
Compilarse con Spyder.
➢ Creación de un script
El programa se puede crear desde un editor de textos de Windows con la extensión .py o desde SublimeText
(https://www.sublimetext.com/ y bajar la versión correspondiente).
Desde la línea de comando y la carpeta donde se encuentra el archivo.py
En el siguiente ejemplo, se pasan parametros, una cadena y las veces que se deben imprimir
import sys for x in range(repeticiones):
print(sys.argv) print(x)
if len(sys.argv ) == 3: En linea de comandos se invoca:
texto = sys.argv[1]; repeticiones = int(sys.argv[2]) python primer_script.py “esta es una prueba” 5
3.3 Entradas y salidas de datos
Salidas
Salida de información por diversos medios, usando el interprete sería por pantalla. Se usa la
sentencia print()
➢ Sintaxis de print()
v = “otro texto”
n = 10
print(“un texto”, v, “ y un número “, n) # Se separan en comas los argumentos a imprimir
➢ Método format() para mayor información https://www.python.org/dev/peps/pep-3101/
c = “Un texto {} y un número {}”.format(v, n)
print( c) # El resultado es ‘Un texto otro texto y un número 10’
print(“Un texto {0} y un número {1}”.format(numero=n, texto=v) # El 0 y 1 son los índices de los argumentos
print(“Un texto {t} y un número {n}”.format(n=n, t=v)
print( “{:>30}”.format(“palabra”) # Alineamiento a la derecha en 30 caracteres
print( “{:30}”.format(“palabra”) # Alineamiento a la izquierda en 30 caracteres
print( “{:.3}”.format(“palabra”) # truncamiento de 3 caracteres de la “palabra”
print( “{:>30.3}”.format(“palabra”) # truncamiento de 3 caracteres de la “palabra” alineado a la derecha
print( “{:4d}”.format(10) # Alineamiento de numero a la derecha con 4 dígitos con 0 izq
print( “{:7.3f}”.format(3.14151926) # Alineamiento con 3 decimales
print( “{:7.3f}”.format(153.21) # Alineamiento con 3 decimales
3.4 Controlando el flujo
3.4 Controlando el flujo
If … Else
Python admite las condiciones lógicas habituales de las matemáticas:
Equals: a == b
Not Equals: a != b
Less than: a < b
Less than or equal to: a <= b
Greater than: a > b
Greater than or equal to: a >= b
Estas condiciones se pueden usar de varias maneras, más comúnmente en “sentencias if" y bucles. Se escribe
una “sentencia if" utilizando la palabra clave if.
a = 33
b = 200
if b > a:
print("b es mayor que a") # la respuesta es b es mayor que a
3.4 Controlando el flujo
If … Else
Indentación
Python se basa en la sangría (espacio en blanco al comienzo de una línea) para definir el alcance en el código. Otros lenguajes
de programación a menudo usan llaves para este propósito.
a = 33
b = 200
if b > a:
print("b es mayor que a") # La respuesta es error
Elif
La palabra clave elif es la forma de pitones de decir "si las condiciones anteriores no eran ciertas, entonces intente esta
condición".
a = 33
b = 200
if b > a:
print("b es mayor que a")
Elif a == b:
print("b es igual que a")
3.4 Controlando el flujo
If … Else
Else
La palabra clave else captura cualquier cosa que no esté atrapada por las condiciones anteriores.
a = 33
b = 200
if b > a:
print("b es mayor que a")
elif a == b:
print("b es igual que a")
else:
print("a es mayor ques b")
sentencia pass
Las sentencias if no pueden estar vacías, pero si por alguna razón tiene una sentencia if sin contenido, ingrese la sentencia
pass para evitar un error.
a = 33
b = 200
if b > a:
pass
3.4 Controlando el flujo
While … loops
Con el ciclo while podemos ejecutar un conjunto de declaraciones
siempre que una condición sea verdadera.
i=1
while i < 6:
print(i)
i += 1
Instruccion Break
Con la instrucción break podemos detener el ciclo incluso si la
condición while es verdadera.
i=1
while i < 6:
print(i)
if i == 3:
break
i += 1
3.4 Controlando el flujo
While … loops
Instruccion 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)
Instruccion 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:
print(“ya no es menos de 6”)
3.4 Controlando el flujo
For … loops
Un bucle for se usa para iterar sobre una secuencia (que es una lista, una tupla, un diccionario, un
conjunto o una cadena). Esto es menos como la palabra clave for en otros lenguajes de programación,
y funciona más como un método iterador como se encuentra en otros lenguajes de programación orientados a objetos. Con el
bucle for podemos ejecutar un conjunto de declaraciones, una vez para cada elemento de una lista, tupla, conjunto, etc.
Instruccion Continue
Con la instrucción continue podemos detener la iteración actual del ciclo y continuar con la siguiente:
for x in range(6):
print(x)
Tenga en cuenta que el rango (6) no son los valores de 0 a 6, sino los valores de 0 a 5.
La función range () se establece por defecto en 0 como valor inicial, sin embargo, es posible especificar el valor inicial agregando
un parámetro: range (2, 6), que significa valores de 2 a 6 (pero sin incluir 6):
for x in range(6):
print(x)
else:
print("Finally finished!")
for x in adj:
for y in fruits:
print(x, y) # la respuesta es red apple
red banana …..
3.4 Controlando el flujo
For … loops
Modificar Listas
Se puede modificar listas con las siguientes instrucciones. Por ejemplo se tiene una lista de números y se quiere esta lista
multiplicada por 10
indice = 0
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for numero in numeros:
numeros[indice] *= 10
indice+=1
numeros # la respuesta es [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
Modificar Listas
Se puede modificar listas con las siguientes instrucciones. Por ejemplo se tiene una lista de números y se quiere esta lista
multiplicada por 10 y ahora se hará con la función enumerate()
M12 = 10
3.5 Matrices
Matrices con Listas de Python
Ahora veremos las operaciones con matrices en Python, se tiene la siguientes matriz 4 x 3 y en
En Listas de Python se definiría como la figura del costado derecho