01 - 02.1 Fundamentos de Programación en Python
01 - 02.1 Fundamentos de Programación en Python
Unidad 1 – Fundamentos de
programación en Python
LOGRO DE APRENDIZAJE
35 12.5
-2.89 3.45
TEMA 4 TEMA 5
Controlando el flujo Matrices
TEMARIO
TEMA 1
Introducción y Tipo de Datos
1.1 Introducción y Tipos de Datos
Nombre de variables
Una variable puede tener nombres cortos como X e Y, o tener nombres mas 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!“
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
Data type
Numbers (números)
Complejos – Que se escriben como un j como
Enteros – Int, or integer, es un numero entero, positivo o parte imaginaria
negativo, sin decimales, de longitud indefinida
x = 3 + 5j
x=1 y = 8j
y = 35656222554887711 z = 10 -3j
z = -3255522 print( type(x) )
print( type(x) ) print( type(y) )
print( type(y) ) print( type(z) )
print( type(z) )
Tipo de conversiones
Flotantes – float, o numero punto flotante, positivo o negativo,
contiene uno o mas decimales
x = 25 # int
y = 24.85 # float
x = 1.10 z = -3j # complex
y = 1.0e10
z = -325.5522 a = float (x) # convierte un entero en un
print( type(x) ) flotante
print( type(y) ) b = int (y) # convierte un flotante a un entero
print( type(z) ) c = complex (x) # convierte un entero a un
complejo
1.1 Introducción y Tipos 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’
print(x[2:6]) #el resultado es: la t
0 1 2 3 4 5 6 7 8 9
H O L A T O D O S
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
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
1.1 Introducción y Tipos de Datos
1.1 Introducción y Tipos 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 ”
y=“hola ”
x==y #el resultado es: True (verdadero)
x=“hola ”
y=“Hola ”
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
1.1 Introducción y Tipos de Datos
Cadenas (string)
String Format.- También se requieren Combinar números con letras hacer tabulados
x=2021
y=“Hola mundo ”
print(x+y) #el resultado es: error
x=2021
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.
Cadenas (string)
Scape characters.- algunos efectos para imprimir las cadenas.
Carácter \. \n nueva línea
miorden = “Deseo pagar {2} soles \n por {0} piezas \n del artículo {1}."
print(miorden.format(Cantidad, Articulo, Precio))
#el resultado es: Deseo pagar 49.95 soles
por 3 piezas
Code Result del artículo 365.
\' Single Quote
\\ Backslash
\n New Line
\r Carriage
Return
\t Tab
\b Backspace
\f Form Feed
\ooo Octal value
\xhh Hex value
1.1 Introducción y Tipos de Datos
Cadenas (string)
Method Description
capitalize() Converts the first character to upper case
casefold() Converts string into lower case
center() Returns a centered string
count() Returns the number of times a specified value occurs in a string
encode() Returns an encoded version of the string
endswith() Returns true if the string ends with the specified value
expandtabs() Sets the tab size of the string
find() Searches the string for a specified value and returns the position of where it was
found
format() Formats specified values in a string
format_map() Formats specified values in a string
index() Searches the string for a specified value and returns the position of where it was
found
isalnum() Returns True if all characters in the string are alphanumeric rsplit() Splits the string at the specified separator, and returns a list
isalpha() Returns True if all characters in the string are in the alphabet rstrip() Returns a right trim version of the string
isdecimal() Returns True if all characters in the string are decimals split() Splits the string at the specified separator, and returns a list
isdigit() Returns True if all characters in the string are digits splitlines() Splits the string at line breaks and returns a list
isidentifier() Returns True if the string is an identifier startswith() Returns true if the string starts with the specified value
islower() Returns True if all characters in the string are lower case strip() Returns a trimmed version of the string
isnumeric() Returns True if all characters in the string are numeric swapcase() Swaps cases, lower case becomes upper case and vice versa
isprintable() Returns True if all characters in the string are printable title() Converts the first character of each word to upper case
isspace() Returns True if all characters in the string are whitespaces translate() Returns a translated string
istitle() Returns True if the string follows the rules of a title upper() Converts a string into upper case
isupper() Returns True if all characters in the string are upper case zfill() Fills the string with a specified number of 0 values at the beginning
join() Joins the elements of an iterable to the end of the string
ljust() Returns a left justified version of the string
lower() Converts a string into lower case
lstrip() Returns a left trim version of the string
maketrans() Returns a translation table to be used in translations
partition() Returns a tuple where the string is parted into three parts
replace() Returns a string where a specified value is replaced with a specified value
rfind() Searches the string for a specified value and returns the last position of where it
was found
rindex() Searches the string for a specified value and returns the last position of where it
was found
rjust() Returns a right justified version of the string
rpartition() Returns a tuple where the string is parted into three parts
1.1 Introducción y Tipos de Datos
Booleans (lógicos)
Lógicos – verdadero o falso. Se puede tener la necesidad de saber si una expresión es verdadera o falsa
print (10 > 9 )
print (10 == 9 )
print (10 < 9 )
Listas (list)
Es una colección ordenada y modificable. Permite miembros duplicados.
En Python las listas se escriben entre corchetes rectos.
Estalista = ["apple", "banana", "cherry"] [pos inicial: pos final:pasos] la posición final no se incluye
print(Estalista) # la respuesta es ['apple', 'banana', 'cherry’]
0 1 2 3 4 5 6
Listas (list)
➢ Cambios en elementos
Estalista = ["apple", "banana", "cherry“, "orange", "kiwi", "melon", "mango“]
Estalista[2]= ‘lemon’
print( Estalista ) # la respuesta es ['apple', 'banana', 'lemon', 'orange', 'kiwi', 'melon', 'mango’]
➢ Permite Loops o recorridos por los elementos
for x in Estalista:
print (x) # la respuesta es apple
banana
lemon
orange
kiwi
melon
mango
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()
print(Estalista)
Estalista.pop(1)
print(Estalista) # la respuesta es ['apple', 'cherry', 'orange', 'kiwi', 'melon']
1.1 Introducción y Tipos 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']
1.1 Introducción y Tipos 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]]
1.1 Introducción y Tipos 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
1.2 Operadores y expresiones
TEMA 2
Operadores y expresiones
1.2 Operadores y expresiones
Operadores de comparación
Operadores lógicos
Operator Description Example
and Returns True if both statements are true 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:
Operator Description Example
is Returns True if both variables are the same object x is y
is not Returns True if both variables are not the same object x is not y
1.2 Operadores y expresiones
Operadores de miembros
Los operadores de membresía se utilizan para probar si una secuencia se presenta en un objeto:
Operadores Bitwise
Los operadores bit a bit se usan para comparar números (binarios):
Operato Name Description
r
& 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
1.3 Entradas y salidas de datos
TEMA 3
Entradas y Salidas
1.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} : “))
1.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
print(sys.argv)
if len(sys.argv ) == 3:
texto = sys.argv[1]; repeticiones = int(sys.argv[2])
for x in range(repeticiones):
print(x)
En linea de comandos se invoca: python primer_script.py “esta es una prueba” 5
1.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
1.4 Controlando el flujo
TEMA 4
Controlando el flujo
1.4 Controlando el flujo
If …elif…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
else:
print("b es menor o igual que a")
# la respuesta es b es menor o igual que a
1.4 Controlando el flujo
If …elif…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")
1.4 Controlando el flujo
If …elif…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")
If …elif…else
If .. else sentencia corta (en una línea)
Si solo tiene que ejecutar una instrucción, una para if y otra para más, puede poner todo en la misma
línea:
a=2
b=330
print("A") if a > b else print("B") # La respuesta es B
If .. elif … else sentencia corta (en una línea)
Esta técnica se conoce como operadores ternarios o expresiones condicionales.
a=330
b=330
print("A") if a > b else print("=") if a == b else print("B") # La respuesta es =
If Anidados
Puede tener declaraciones if dentro de declaraciones if, esto se llama instrucciones if anidadas.
x = 41
if x > 10:
print("Mas de diez,")
if x > 20:
print("y también es mayor a 20!")
else:
print("pero no mas de 20") # La respuesta es Mas de diez, y también es mayor a 20!
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
1.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
1.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”)
1.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
orientada a objetos. Con el bucle for podemos ejecutar un conjunto de declaraciones, una vez para cada
elemento de una lista, tupla, conjunto, etc.
For … loops
Sentencia Break
Con la instrucción break podemos detener el ciclo antes de que haya pasado por todos los elementos:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break
Instruccion Continue
Con la instrucción continue podemos detener la iteración actual del ciclo y continuar con la siguiente:
For … loops
La función Range()
Para recorrer un conjunto de código un número específico de veces, podemos usar la función range (), La
función range () devuelve una secuencia de números, comenzando desde 0 por defecto, y se incrementa en
1 (por defecto), y termina en un número específico.
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 … loops
Palabra clave Else
La palabra clave else en un bucle for especifica un bloque de código que se ejecutará cuando finalice el
bucle:
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 …..
1.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 elemento 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()
print()
for x in range(int(num)):
suma += (x + 1 )
print("Con (FOR) La suma es:", suma)
35 12.5
-2.89 3.45
TEMA 5
Matrices
1.5 Matrices
03 Los tipos de datos como Listas y Cadenas, tienen mas funcionalidades en comparación
con otros lenguajes de programación
04
BIBLIOGRAFÍA
RAMALHO, LUCIANO (2015) Fluent Python: Clear, Concise, and Effective Programming
(inglés) 1st Edición. California: O’Reilly.
Material producido por la
Universidad Peruana de
Ciencias Aplicadas
Continúa con las actividades Autor:
propuestas Norman Reyes Morales
COPYRIGHT © UPC
2023 – Todos los
derechos reservados