0% encontró este documento útil (0 votos)
32 vistas

2 Python

Este documento describe los conceptos básicos del lenguaje de programación Python, incluyendo su sintaxis, tipos de datos, estructuras de control y más. También explica cómo crear y manipular archivos en Python.

Cargado por

poseidon56p
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas

2 Python

Este documento describe los conceptos básicos del lenguaje de programación Python, incluyendo su sintaxis, tipos de datos, estructuras de control y más. También explica cómo crear y manipular archivos en Python.

Cargado por

poseidon56p
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 28

UNIVERSIDAD PUBLICA DE EL ALTO

CARRERA: INGENIERIA DE SISTEMAS


MATERIA: PROGRAMACION II
PARALELO: 3 “B”
TEMA N° 2
LENGUAJE DE PROGRAMACION
ORIENTADO A OBJETOS PYTHON

DOCENTE: M. Sc. Ing. David Carlos Mamani


1. INTRODUCCION
1.1- Conceptos generales de python

Es un lenguaje de propósito general


Es un lenguaje de alto nivel
Es un lenguaje interpretado
El intérprete de Python está disponible para todos los sistemas operativos bajo
licencia GPL
Es un lenguaje de programación modular (y existen numerosos módulos estándar
disponibles para su uso)
Fue desarrollado a principios de los 90 por Guido Van Rossum
Recibe su nombre del programa de TV “Monty Python’s Flying Circus” de la BBC
En 2008 se lanzó la versión 3.0 de Python, que rompió la compatibilidad con
versiones anteriores
1.2- Modos de interacción con
Python
Modos de interacción con Python
Modo interactivo:
Para acceder al intérprete Python basta con teclear en una terminal: “python”
Para salir del intérprete basta con teclear: “quit()”
Se pueden introducir instrucciones individualmente Se pueden recuperar instrucciones
anteriores de forma similar a una terminal de comandos
Modo script:
Las instruccciones se pueden indicar de forma conjunta en un archivo de comandos
La invocación del intérprete se realiza como: “python archivo de comandos.py”
Si se desea se pueden invocar módulos estándar como: “python -m module [arg] ...”
La codificación del archivo de comandos se realiza por defecto en UTF-8, si bien es
recomendable utilizar solo la codificacion ASCII por compatibilidad
Los comentarios y líneas de comentarios comienzan con el s´Imbolo #
No se indica el “;” al final de cada instrucción
2. ESTRUCTURA Y ESTILO DE PROGRAMACION
2.1- Estilo de codificación y programación
Estilo de codificación
Cada línea corresponde a una instrucción
Se recomienda usar sangrías de 4 espacios, no tabuladores
La indentación permite identificar los bloques de código
Se recomienda no hacer líneas de más de 79 caracteres (para facilitar visibilidad)
Si una línea ocupa m´as de 80 caracteres se puede cortar la instrucción con el
caracter \ y continuar en la línea siguiente.
Se recomiendan los comentarios en una sóla línea
Se recomienda usar espacios alrededor de operadores y luego de las comas, pero no
directamente dentro de paréntesis
Se recomienda utilizar solo caracteres ASCII.
2.2- Estructura de un
programa
Estructura de un programa:

Los programas en Python se diseñan de forma modular (con


funciones)
El programa principal se escribe al final del archivo después de
todas las funciones
Las funciones deben definirse en el archivo antes de utilizarse
(lenguaje interpretado)
Las instrucciones en el programa principal se escriben desde
el inicio de cada fila, sin indentación
No existen comandos de preproceso estilo #DEFINE de C
Los módulos externos se incorporan al programa al inicio del
mismo o antes de utilizarlos
2.3- Tipos de variables
Tipos de variables:
o int (variables enteras)
o float (variables reales, tamaño por defecto normalmente doble precisión)
o bool (True o False)
o strings, cadenas de caracteres (se ven posteriormente en 2)
No es necesario declarar las variables.
Python decide por nosotros el tipo de variable.
En caso de duda se recomienda forzar el tipo con funciones de conversión.
Se recomienda forzar el tipo mediante funciones de conversión de tipos.
Funciones de conversion de tipos de variables:
o int(x) ~ Convierte a entera x (sea del tipo que sea)
o float(i) ~ Convierte a real i (sea del tipo que sea)
o str(x) ~ Convierte a string x (sea del tipo que sea)
2.4- Clases y objetos
Clases:
o Se definen como:

class nombre_clase:
variable_1
variable_2
def f(...):
...
o Pueden contener funciones definidas como: def ...
o Se pueden crear objetos de una determinada clase como:

x = nombre clase() # Crea el objeto x vacíode clase tipo nombre clase

o Dentro de cada objeto los diferentes atributos (miembros) se identifican como:

a = x.variable 1 c # Toma el atributo variable 1 del objeto x.


= x.f(...) # Aplica la funcion f del objeto x con los datos (...).
3. OPERADORES
3.1- Operadores aritméticos y lógicos
Operadores aritméticos:
o Los operadores aritméticos habituales se utilizan normalmente como en
cualquier lenguaje de programacion
o Se incorpora la division modular al igual que en Lenguaje C mediante (%)
o Los operadores incrementales de C (++, - -) no forman parte de Python
o S´ıse pueden utilizar los operadores incrementales (+=, -=, *= y /=)
Operadores lógicos:
o AND: Se utilizan y se escriben directamente con la instrucción “and” entre
espacios
o OR: Se utilizan y se escriben directamente con la instrucción “or” entre espacios
o Negación: Se utilizan y se escriben anteponiendo “not” al valor o variable
booleana
3.2- Operadores relacionales

Operadores relacionales:
o Se escriben al igual que en C entre espacios:

o < (menor estricto) —→ Ej. j < 5


o <= (menor o igual) —→ Ej. j <= 5
o > (mayor estricto) —→ Ej. j > 5
o >= (mayor o igual) —→ Ej. j >= 5
o == (coincide con) —→ Ej. j == 5
o ! = (no coincide con)—→ Ej. j ! = 5
4. SENTENCIAS DE CONTROL
4.1- Bucles
Bucles for
for i in range(10): # las lineas a repetir van indentadas 4 espacios. #
la instrucción finaliza con :
print(i)
i=5 # Obsérvese que a pesar de esto el contador seguirá igual
o La forma habitual de establecer secuencias numéricas es con la función range:

range(ini,fin) ~ {ini, ini+1 ..., fin-1}


range(ini,fin,salto) ~ {ini, ini+salto, ...} # El valor “fin” nunca se alcanza
range(fin) = {0,1,...,fin-1}
o El rango de valores también puede ser una comparación con elementos de una lista
words = [’cat’, ’dog’, ’mouse’] for
w in words:
print(w, len(w))
o La sentencia break termina el bucle
o La sentencia continue se salta el resto de la iteración y pasa a la siguiente.
4.1- Bucles
Bucles “while”
a=1
b=1
while b < 20:
print(b)
c=a+b a=b ~ [1, 2, 3, 5, 8, 13]
b=c

o Los dos puntos indican el final de la condicion de repetición del “while”


o Todas las sentencias afectadas por la instrucción “while” deben ir indentadas con 4
espacios con respecto al while
o La sentencia break termina el bucle
o La sentencia continue se salta el resto de la iteración y vuelve a comprobar la
condición de repeticion
4.2- Sentencias de control
lógicas: if
d Sentencia “if”

b = int(input(’Escriba b: ’)) if b
< 20:
print(’b < 20’)
elif b < 30: # La comprobacion else if es opcional
print(’20 <= b < 30’)
else: # La comprobacion else es opcional
print(’b >= 30’)

o La comprobacion de la condición finaliza necesariamente con :


o Las sentencias afectadas por la condicion “if” deben ir indentadas con 4 espacios
con respecto al if
o Las sentencias afectadas por las condiciones “elif” y “else” también deben ir
indentadas con 4 espacios
4.3- Sentencias de control
lógicas: match
Sentencia “match” (equivalente al switch de C). Sólo a partir de Python 3.10

match option:
case 1:
print(’Option 1’)
case 2:
print(’Option 2’)
case 3:
print(’Option 3’)
case :
print(’Non specified option’)

o Cada “caso” coincidente excluye el resto (a diferencia del switch en C)


o El caso “ ” es la opcion final por defecto
5. FICHEROS
5.1- Apertura y cierre de archivos
Apertura de archivos con “open”

ref archivo = open(’nombre archivo’,’cd’)

o ref archivo es la variable que identifica el archivo que se va a abrir


o nombre archivo es un string con el nombre (y ruta, en su caso) del archivo a abrir
o cd son opciones de modo de apertura:
c vale “r” ~ Lectura, valor por defecto. Error si el archivo no existe
c vale “w” ~ Escritura. Crea el archivo si no existe
c vale “a” ~ An˜ade contenido. Crea el archivo si no existe
c vale “x” ~ Crea el archivo si no existe. Error si existe
d es opcional. Si se añade con el valor “b” el archivo será binario

Ej.: finput = open(’datos.txt’,’r’) ~ Apertura de ’datos.txt’ para lectura


print(’Nombre de archivo: ’,finput.name)
Cierre de archivos con “close”

Ej.: finput.close() # Cierra el archivo con nombre de referencia finput


5.2- Lectura y escritura en
archivos
Escritura de datos
Ej.:
foutput = open(’resultados.txt’,’w’)
foutput.write(’Escribimos un texto’) # Escribimos un texto
foutput.write(’Texto con valor ’,v,’ intercalado’) # Escribimos texto con un
# valor v intercalado
foutput.write(’Texto y {:5d},{:15.6e}’.format(n,v)) # Escribimos texto con valores
# intercalados con formato

El formato puede adoptar alguno de los siguientes tipos de formato (entre otros):
o {:5d} ~ Valor entero con 5 dígitos
o {:15.6e} ~ Valor real en notación científica con 15 dígitos y 6 decimales
o {:s} ~ Cadena de caracteres (string)
5.2- Lectura y escritura en archivos
Lectura de datos (ver apartado de Estructuras de datos)

Ej.: finput = open(’datos.txt’,’r’) t


= finput.readline() # Lee una linea completa del archivo y #
la guarda en el string “t”.
tint = t.split() # Divide el string palabra a palabra y #
crea una lista (vector) de strings.
n = int(tint[0]) # Convierte el primer campo de la l´ınea en #
un entero y lo guarda en “n”.
x = float(tint[1]) # Convierte el segundo campo de la l´ınea #
en un real y lo guarda en “x”.

o La estructura “finput” dispone de m´as funciones asociadas que se pueden utilizar. Estas
funciones se pueden consultar en la documentación oficial de Python (www.python.org)
5.3- Estándar input y output
Entrada de datos est´andar

t = input(’Mensaje previo’) # El mensaje previo es opcional

o almacena como cadena de caracteres (por defecto) en “t” la entrada de datos


o Opcionalmente se puede cambiar el tipo de dato como:

x = float(input(’Mensaje previo’))

Si se desea leer la información de forma binaria se puede utilizar:

t = sys.stdin.read(b) # Lee “b” bytes de la entrada estándar y #


los almacena como string en “t”.

Para ello es necesario importar antes el módulo “sys” mediante import sys.
5.3- Estándar input y output
Salida de datos estándar (introduce salto de línea al final por defecto)

print(’Mensaje texto’,variables) # Se pueden combinar separados por comas

Ej.:
print(’r = ’,r) # Imprime el texto y el valor de la variable
print(’r = {:e}’.format(r)) # La variable se muestra con notación científica
print(’r = {:25.16e}’.format(r)) # La variable se muestra con notación científica,
# 25 dígitos y 16 decimales
print(’n = {:5d}, r = {:25.16e}’.format(n,r)) # n como entera y r como real
print(’Nombre = {:s}’.format(str name)) # muestra texto y string encadenados
print(’Nombre = ’ + str nombre) # equivalente al anterior

Si se desea escribir la información de forma binaria se puede utilizar:


sys.stdout.write(’x = {:f}’.format(x)) # Igual que print pero sin salto al final.

Para ello es necesario importar antes el módulo “sys” mediante import sys.
5.3- Estándar input y output
Salida de datos estandar (continuación)

Otras opciones de escritura son:


o print(r’\n r’) # No interpreta los caracteres especiales tipo ’\n’.
o print(f’r = x’) # Intercala el valor de la variable x (indicada entre llaves).

Ejemplo de lectura de stdin línea a línea:

import sys
for line in sys.stdin:
if ’Exit’ == line.rstrip():
break
print(’Linea leida: ****{:s}****’.format(line))
print(’Done ’)
6. ESTRUCTURAS DE DATOS
6.1- Listas

Listas (forma general de vectores)


Se pueden definir como: lista = [1, 4, 9, 16, 25]
Pueden contener valores de tipos diferentes, aunque no es lo habitual
Se pueden segmentar e indexar al igual que los strings (e.g. lista[:])
Se pueden concatenar con el símbolo “+”
Se pueden añadir términos a la lista como: lista.append(valor)
Se pueden eliminar partes de una lista como: lista[2:5] = [] (elimina componentes 2, 3
y 4)
len(lista) indica el número de elementos de la lista
6.1- Listas
Comandos más habituales de modificación de listas:

list.append(x) → Agrega un ítem al final de la lista list


list.extend(lista2) → Extiende la lista list agreg´andole todos los
ítems de lista2
list.insert(i, x) → Inserta el ´ıtem x justo antes de la posición i
de la lista list
list.remove(x) → Quita el primer ítem de la lista list cuyo valor
sea x. Si no existe indica un error.
list.clear() → Elimina todos los elementos de la lista list
list.count(x) → Retorna el número de veces que x aparece
en la lista list
del list[a:b] →
6.1- Listas
Formas matriciales
Se indican como listas dentro de otra lista.
Se almacenan por filas.
Cada fila puede tener diferente número de elementos.
Ejemplo de matriz:
matriz = [[11,12], [21,22,23], [31,32,33]]
Luego se pueden operar como:
nfilas = len(matriz)
for i in range(nfilas):
print(matriz[i][-1]) # Muestra el último valor de cada fila.
La gestión de matrices se simplifica con las librerías del módulo Num Py.
6.2- Strings (Cadenas de caracteres)
Strings
Las cadenas de caracteres (strings) se encierran entre comillas simples o dobles
(indistintamente)
Las cadenas de caracteres pueden contener varias líneas si se definen mediante
triple comilla
Las cadenas de caracteres colocadas una a continuación de la otra se concatenan
automáticamente. Con variables no funciona de este modo.
Variables tipo string y textos pueden concatenarse con “+”
Se puede hacer referencia a posiciones dentro de un string o a porciones del
mismo como:
o string[4:6] ~ Caracteres desde el 4 (inlcuido) hasta el 6 (excluido)
o string[4:] ~ Caracteres desde el 4 hasta el final del string
o string[:4] ~ Caracteres desde el inicio hasta el 4 (excluido)
o string[-2] (segundo caracter desde el final)
Los string no se pueden modificar parcialmente.
Para modificarlo se compone un nuevo string con los cambios incorporados
7. GESTION Y UTILIZACION DE FUNCIONES
7.1- Definición y utilización de funciones

Definición de funciones
Las funciones se definen como:

def nombre funcion(lista argumentos):


o Todas las instrucciones de esa funcion deben ir con el correspondiente sangrado
o El paso de argumentos se hace por valor de la referencia:
De objetos y listas se envían copias de las referencias.
De variables se envían copias de los valores (los cambios no permanecen)
o La llamada a la funcion desde el programa principal se realiza como:

valores retorno = nombre funcion(lista argumentos)


La función tiene que estar definida en el archivo de comandos antes de ser
llamada.
7.1- Definición y utilización de
funciones
Definición de las funciones
o Las funciones se definen mediante el comando “def” como:

def nombre funcion( lista de variables):

o Y a continuacion se indican los comandos propios de la función.


o Todas las sentencias de la función deben ir indentadas 4 espacios.
o Al final de la funcion si existen valores de retorno se indican como:
return valor1, valor2, etc.

Ejemplo:

def cuadrado(x):
a=x*x
return a
..
z = cuadrado(x)

o La sentencia return puede omitirse si no hay valores de retorno.


7.2- Uso avanzado de funciones

Esta función se puede utilizar como:

o ask ok(’Desea salir ahora?’) que si la respuesta no es válida repite la pregunta por
defecto 4 veces mostrando el mensaje: “Por favor, intentelo de nuevo!”

o ask ok(’Desea salir ahora?’,2) que si la respuesta no es válida repite la pregunta 2 veces
mostrando el mensaje: “Por favor, intentelo de nuevo!”

o ask ok(’Desea salir ahora?’,2, ’Respuesta incorrecta’) que si la respuesta no es


válida repite la pregunta 2 veces mostrando el mensaje: “Respuesta incorrecta”

Los valores por omisión (por defecto) se asignan una sola vez cuando se crea la
función.
8. MODULOS
8.1- Incorporación de módulos internos
Incorporación de módulos internos:

Los programas Python pueden incorporar funcionalidades a través de módulos


internos
Los módulos internos se añaden mediante la función import como:
import modulo interno
La importación se suele hacer al principio del programa
Los módulos incorporados se comportan como objetos formados tanto por
variables como por funciones:
o resultado = modulo.funcion(valores)
o modulo.valor propio

Algunos de los módulos propios más habituales de Python son:


o sys, math, random
8.2- Incorporación de módulos
externos
Incorporación de módulos externos (librerías):

Los programas Python pueden incorporar funcionalidades a trav´es de módulos


externos.
Los módulos externos son ficheros (*.py) y se añaden mediante import como:
import modulo ext
La importación se suele hacer al principio del programa.
El intérprete busca el módulo en el sistema siguiendo este orden:
o Comprueba si es un modulo interno del sistema (listados en listed in
sys.builtin module names)
o Comprueba si hay un archivo modulo ext.py en la lista de carpetas indicada en
sys.path
o La lista sys.path incluye la propia carpeta de ejecución del script.
Los módulos incorporados se comportan como objetos formados por funciones:
o resultado = modulo.funcion(valores)
Algunos de los módulos externos m´as habituales de Python son:
o Matplotlib, SciPy, NumPy, ...

También podría gustarte