Software">
Nothing Special   »   [go: up one dir, main page]

Presentación Fundamentos de Programación Con Python

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 50

Ing.

Adrián
Alarcón B.
Especialista en
Interconexiones

Chilena
Fundamentos de Programación
con Python
El lenguaje Python

• Creado en 1989 por Guido van Rossum (CWI,


Amsterdam)
• Lenguaje de propósito general de alto nivel.
• Énfasis en la legibilidad del código
• Multi paradigma
• Orientado a indentación
• Manejo automático de memoria
• Tipado dinámico
• Interpretado https://www.youtube.co
• Apropiado para scripting m/watch?v=d0C1tDqH8
VM
El lenguaje Python
Stack Overflow ha publicado su encuesta a los desarrolladores 2020. Con el cuestionario han
entrevistado a casi 65.000 programadores para que les dijeran cosas cómo sus tecnologías favoritas,
los intereses tienen, y los sueldos que perciben.
El lenguaje Python
Introducción a la Programación

• Computadoras y Lenguajes
• Organización de la Computadora
• Dispositivos de entrada
• Teclado
• Mouse
• Dispositivos de salida
• Terminal
• Impresora
• Memoria: interna, externa.
• Unidad Central de Proceso (UCP)
Lenguajes de alto nivel

• Lenguaje de Máquina: Instrucciones básicas del


procesador de la máquina. Binario o hexadecimal.
Muy difícil de escribir programas
• Lenguaje assembler: Similar al lenguaje de máquina
pero con una sintaxis más cómoda.
• Lenguajes de alto nivel: Más cercanos a nuestra
manera de razonar y de expresarnos.
• Compiladores e Intérpretes: Aplicaciones que
permiten ejecutar un programa escrito en un
lenguaje de alto nivel
Compilación

• Lenguajes de alto nivel: Pascal, Java, C, Python,


Perl, etcétera.
• La computadora no "entiende" los lenguajes de
alto nivel.
• Un compilador es un programa que traduce a
código de máquina:
Lenguajes Interpretados

• Un intérprete es un programa que


• toma como entrada un programa fuente (por ej.
python)
• ejecuta las instrucciones del programa
• El intérprete está escrito en lenguaje de máquina
• Lenguajes interpretados: Basic, Lisp, Perl,
JavaScript, Php, Python
• Lisp, Java y Python permiten una compilación
intermedia (byte compilation)
Programación en Python
Identificadores en Python

• Usados para dar nombre a los diferentes objetos


que componen un programa:
• variables
• funciones
• clases
• módulos
• paquetes
• En el ejemplo anterior: altura, base, input
Identificadores en Python

• Usados para dar nombre a los diferentes objetos


que componen un programa:
• variables
• funciones
• clases
• módulos
• paquetes
• En el ejemplo anterior: altura, base, input
Sintaxis de los identificadores

• Definición: Un identificador es una secuencia de


caracteres alfanuméricos, el primero de los cuáles
debe ser alfabético.
• Gramática BNF (Backus/Naur Form):
Mayúsculas y Minúsculas

• Python es un lenguaje case sensitivo: distingue


mayúsculas de minúsculas
• Así por ejemplo, los identificadores casa, CASA,
Casa y cAsA son todos distintos.
• Lenguajes case insensitivos: Pascal, Basic, Fortran
• Lenguajes case sensitivos: C, Java, Perl, Python
Palabras reservadas

• También llamadas keywords


• Son ciertos identificadores cuyo uso se prohíbe
• Los utiliza el lenguaje con propósitos particulares
como parte de las instrucciones
• En el ejemplo anterior se utiliza la palabra
reservada print,
• Muchos editores colorean las palabras reservadas
(emacs, vim, gedit, kate, idle)
Palabras reservadas en Python
Memoria

• El programa anterior utilizará tres variables: altura,


base, area
• Una variable está formada por:
• un nombre (identificador)
• un valor
• un tipo
• El valor y el tipo de una variable puede cambiar en el
transcurso de un programa
• La memoria de un programa está constituida por el
conjunto de variables utilizadas
• Más adelante: Espacio de nombres
Instrucción de Asignación

• El valor de una variable puede ser modificado en el


transcurso del programa.
• La instrucción de asignación tiene esta forma:
• identificador = expresión
• Asigna el valor a la variable correspondiente
• Si ya tenía valor, se pierde (asignación destructiva)
• Si no tenía valor, la variable se crea con la asignación
(creación dinámica)
• El valor puede ser una expresión a ser evaluada
Instrucciones y Programas

• Un programa es una secuencia de instrucciones


• Dos tipos de instrucciones:
• simples: expresión, asignación, break, continue y otras
• compuestas: if, while, for y otras@
Ejemplos de asignaciones
Sintaxis de la Asignación
Asignación en cadena
Asignación en Paralelo
El Concepto de Tipo

• Los tipos permiten indicar la característica de los


valores (datos) manipulados en un programa.
• Toda variable tiene asociado un tipo.
• Esto ocurre también con los operadores y las
funciones.
• Poseer tipos permite detectar ciertos errores de
construcción en el código (chequeo de tipos).
• Por ejemplo:3 + 4 es correcto (integer)
• 3 / 'a' es incorrecto
• En Python el chequeo de tipos se hace en tiempo de
ejecución (tipado dinámico)
Tipos Numéricos

• Números enteros
• int números entre -2147483648 y 2147483647
• long no acotado
• boolean ({0,1})
• Números Reales
• float representados en punto flotante de doble
precisión
• Numeros Complejos
• complex
Literales y expresiones

• Cada tipo tiene su forma de literales (valores


constantes)
• Booleanos: True False
• Enteros: 14151234
• Reales: 14.03.12 0.1 .10
• Complejos: 4+3jcomplex(8.2,0.99)
• La expresiones se construyen con los operadores
habituales: + - * /
Expresiones Aritméticas

• Las expresiones más simples son las variables y


los literales.
• Las otras expresiones se construyen usando los
operadores + - * // / % **:
• Ejemplos de expresiones
• a (variable numérica)
• 12
• 13.4
• 4+2
• (a + 3) / x
• (a + 8) / (b + 2.0) * (c -3.5 -b)
Evaluando Expresiones en Python
Conversión implícita (coerción)

• Si en una expresión aparece al menos un


operando real, todo los otros operandos se
transforman a real.
• Si se quiere evaluar 4 + 5.3 se hace 4.0 + 5.3
• Esta transformación se llama coerción: un valor es
forzado a cambiar de tipo automáticamente.
• Python provee operadores de conversión
explícitos: float(), long(), bool(), int(), complex()
Tipo de una expresión

• El tipo de una expresión puede ser consultado


con el operador type()
Comparaciones

• Los operadores de comparación dan como


resultado un boolean, estos son:
< menor
<= menor o igual
> mayor
>= mayor o igual
<>, != distinto
== igual
• Se pueden encadenar: x < y <= z se interpreta
como (x < y) and (y <= z)
Ejemplos de comparaciones
Operadores booleanos

• Son operadores que permiten construir condiciones


compuestas
• Todos los números se interpretan como booleanos: el 0
es False y todos los demás son True
• Los operadores and y or se evalúan en modalidad
perezoza de izquierda a derecha
Precedencia y asociatividad de operadores

• or
• and
• not
• <, <=, >, >=, <>, !=, ==
• +, -
• /, //, %
• +x, -x, ~x
• **
• Operadores de igual precedencia asocian de
izquierda a derecha (excepto comparadores que
encadenan de izquierda a derecha)
Ejemplos

• not a < b or c <> x +1


• a = b + 2 * 3 and x <= 4 or b == 0
• not 3 + 4 < 8 != 3 * 6 + 2 and 8 > x
Cadenas de caracteres

• Las cadenas de caracteres (strings) se escriben


con comillas dobles o simples
Cadenas y líneas

• Existe un carácter especial: fin de línea


• Es un carácter de control que produce un cambio
de línea en la salida
• Se representa como \n
Continuación de cadena

• Una cadena se puede escribir en varias líneas sin


incluir fin de línea:
Comillas triples

• Las cadenas pueden encerrarse entre 3 comillas


simples o dobles.
• En ese caso se incluyen los fines de línea
Modo textual (raw)

• Si la cadena es precedida por el carácter r se


interpreta como raw string
• Se pueden escribir varias líneas pero se requiere
carácter de continuación
Concatenación y repetición

• Las cadenas permiten las operaciones de:


• concatenación: pegar dos cadenas, con el
operador +
• repetición: repetir muchas veces la misma
cadena, con el operador *
Concatenación de literales

• Dos cadenas literales consecutivas se concatenan


automáticamente
• Solo funciona con literales
Índices de cadenas

• Los caracteres de una cadena pueden obtenerse


utilizando la operación de indizado
• Se pueden obtener rebanadas(slices) utilizando
Inmutabilidad de las cadenas

• No es posible cambiar parcialmente una variable


cadena
Índices negativos

• Los índices negativos permiten contar desde el


final de la cadena
Esquema para rebanadas

• Un diagrama que ilustra como se comportan las


rebanadas:
• Los índices se asocian con bordes de las celdas
• La rebanada de i a j consiste de todos los caracteres
comprendidos entre los bordes i , j
Largo de una cadena
Subcadena
Programación Python

También podría gustarte