PDF de programación - Programación de alto nivel con Python

Imágen de pdf Programación de alto nivel con Python

Programación de alto nivel con Pythongráfica de visualizaciones

Publicado el 10 de Mayo del 2018
1.334 visualizaciones desde el 10 de Mayo del 2018
1,0 MB
66 paginas
Creado hace 2a (29/01/2017)
Programación de alto nivel con python

Dr. Luis Gerardo de la Fraga

E-mail: fraga@cs.cinvestav.mx

http://cs.cinvestav.mx/~fraga

Departamento de Computación

Cinvestav

27 de septiembre, 2016

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

1/63

Contenido

1. ¿Por qué python?

2. Una breve introducción a Unix

3. Programando en python

4. Resolviendo problemas con python

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

2/63

¿Porqué aprender python?

Es un lenguaje de alto nivel
Es fácil construir programas rápidamente
Es uno de los lenguajes más usandos
Es el lenguaje sugerido para programar en RaspBerryPi

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

3/63

Lenguajes de alto nivel

C es un lenguaje de nivel medio
Los leguajes de alto nivel son interpretados
No se definen tipos de datos
Tienen una máquina de tiempo de ejecución (para uso de

memoria con un recolector de basura)

Se puede empotrar funciones en C dentro de Python si se

necesita eficiencia.

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

4/63

Prototipado rápido

Son ideales para realizar programas que procesan texto y

generan texto

Para generación dinámica de páginas WEB
Si se tiene una idea, puede obtenerse un programa funcional

en minutos u horas

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

5/63

Índice de Popularidad de los Lenguajes de Programación
PYPL PopularitY of Programming Language index
http://pypl.github.io/PYPL.html

Posición Cambio

Lenguaje

1
2
3
4
5
6
7
8
9
10



↑↑





Java

Python
PHP
C#

Javascript

C++

C

C-Objectivo

R

Swift

Porción Tendencia
23.9 %
12.8 %
10.5 %
8.8 %
7.7 %
7.2 %
7.1 %
4.7 %
3.1 %
3.0 %

-0.5 %
+2.1 %
-0.8 %
-0.5 %
+0.6 %
-0.4 %
-0.1 %
-0.6 %
+0.5 %
+0.4 %

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

6/63

PYPL PopularitY of Programming Language index https://sites.google.com/

site/pydatalog/pypl/PyPL-PopularitY-of-Programming-Language

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

7/63

PYPL PopularitY of Programming Language index

http://pypl.github.io/PYPL.html

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

8/63

http://www.raspberrypi.org/

Se puede comprar en www.newark.com.mx

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

9/63

Python no lo recomendado para cómputo intensivo

Comparacion de un programa intensivo en punto flotante en

tres versiones, python, perl y C.

$ time python chuaBinX.py 0.1 1000 12 > secPy

3m1.915s
3m1.869s

real
user
sys 0m0.048s
$ time perl chuaBinX.pl 0.1 1000 12 > secPl

3m31.458s
3m31.408s

real
user
sys 0m0.050s
$ time ./chuaBinX 0.1 1000 12 > secC

real
user
sys 0m0.003s

0m0.982s
0m0.968s

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

10/63

Si se ejecutase 1000 veces el trabajo anterior:

Python Perl

3’31"
211

^
|

C
1"
1

1000" = 16’40"

Tiempos de ejecucion 3’2"
Veces más
Si fuesen 10^6 bits
10^6/10^3 = 10^3

182

^
|
|

un poco más de 58 horas y media

50 horas y media

Moraleja: No usar lenguajes interpretados en cómputo intensivo

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

11/63

Lenguaje

Mapa caótico

Tiempo (seg)

C

Corrimiento de Bernoulli
Mapa casa de campaña

Mapa Zigzag

Python

Corrimiento de Bernoulli
Mapa casa de campaña

Mapa Zigzag

Matlab

Corrimiento de Bernoulli
Mapa casa de campaña

Mapa Zigzag

0.24
0.40
0.48
7.68
9.81
10.84
37.73
38.7
38.55

Tiempos medidos por Esteban Torres en su trabajo de licenciatura

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

12/63

Una muy breve introducción a Unix

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

13/63

Algunos comandos básicos de Unix

1. ls – lista el contenido del directorio
2. ls -l – listado largo del contenido del directorio
3. mkdir nombre – crea el directorio nombre
4. rmdir nombre – borra el directorio nombre
5. cd nombre – se cambia al directorio nombre
6. touch documento – crea un archivo vacío llamado

documento

7. mv documento doc1.txt – cambia de nombre el archivo

documento a doc1.txt

8. file doc1.txt – identifica el archivo doc1.txt
9. rm doc1.txt – borra el archivo doc1.txt

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

14/63

Hay que ser ordenados para trabajar

Hay que crear siempre un espacio de trabajo, por ejemplo:
cd
mkdir CursoPython
cd CursoPython
ls -l
nano hola.py

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

15/63

Mi primer programa en python
print "Hola mundo!"

El programa se ejecuta en la línea de comandos como:
$ python hola.py

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

16/63

Programando en python

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

17/63

Variables en python
x = 123
x = 123L
x = 3.14
x = "hola"
x = [0,1,2]
x = (0,1,2)
x = open(’hello.py’, ’r’)

# un entero
# un entero largo
# un real en doble precisión

# una cadena
# una lista
# una tupla

# un archivo

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

18/63

Sentencia “if”
x = 4
if x < 5 :

print "x es menor que cinco"

else :

print "x es mayor o igual que cinco"

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

19/63

Sentencia “if”
x = 4
if x == 0 :

print "x es igual a cero"

elif x < 5 :

print "x es menor que cinco"

else :

print "x es mayor que cinco"

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

20/63

# Una línea de comentarios comienza con un ’#’
a = 90
print a
"""

Varias líneas

de comentarios
Fraga 24/03/2014
"""

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

21/63

Ciclos

Se puede usar la sentencia ’for’,
o también la sentencia ’while’
La sentencia ’for’ se usa para iterar en listas

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

22/63

# Un ejemplo de uso del ’while’
#
i=0
while i<10 :

print i
i = i + 1

# coding: utf-8
#
# El mismo programa anterior pero con
# una modificación en el ’print’:
#
i=0
while i<10 :
print i,
i = i + 1

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

23/63

# Un ejemplo del uso del ’for’
#
lista = [2,3,5,9]

for i in lista :

print i

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

24/63

El comando ’pydoc’

La ayuda sobre cualquier sentencia se puede obtener

con el comando ’pydoc’.

Dar, por ejemplo, ’pydoc if’ en la línea de comandos.

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

25/63

Se pueden definir funciones (1/2):

def suma(a, b) :

return( a+b )

r = suma( 5, 6)
print "5 + 6 =", r

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

26/63

Se pueden definir funciones (2/2):

def f(x) :

return( x*x )

i=0
while i<20 :
y = f(i)
print i, y
i = i+1

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

27/63

Las funciones matemáticas se encuentran en el módulo math:
import math

angulo = math.pi/2

print math.degrees(angulo), math.sin(angulo), \

math.cos(angulo)

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

28/63

El módulo numpy nos permite definir matrices:
# coding: utf-8
import numpy

A = numpy.zeros((3,2))

# ndim es el número de dimensiones
# size es el número total de elementos
# shape
print A.ndim, A.size, A.shape
i=0
while i<3 :

mxn

j=0
while j<2

:

print A[i,j],
j = j+1

print
i = i+1

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

29/63

Debe definirse desde el principio del tamaño de la matriz, o
usar sus métodos asociados ’resize’, ’reshape’, por ejemplo.

import numpy as np

a = np.ones((3,3))
print a

a.resize( (3,4 ) )
print a

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

30/63

Guardando datos en un archivo:
def f(x) :

return( x*x )

arch = open( "salida.txt", ’w’ )

i=0
while i<20

:

y = f(i)
arch.write( "{} {}\n".format(i, y) )
i = i+1

arch.close()

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

31/63

Argumentos en la línea de comandos:
# coding: utf-8
import sys

n = len(sys.argv)
print n
if n != 3 :

print "Args: número1 número2"
sys.exit(1)

print sys.argv[1], sys.argv[2]

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

32/63

Excepciones:
# coding: utf-8
import sys

n = len(sys.argv)
if n != 2 :

print "Args: nombre_archivo"
sys.exit(1)

nombre = sys.argv[1]
try:

arch = open( nombre, ’r’ )

except IOError:

print "No pude abrir el archivo", nombre
sys.exit(2)

for linea in arch :

print linea

arch.close()

Dr. Luis Gerardo de la Fraga

CCE 2016, Cinvestav

Programación de alto nivel con python

33/63

Para separar los tokens de una cadena:
# coding: utf-8

a = "Esta es una prueba de una línea de texto"

b = a.split()

for palabra in b:
print palabra

c = b[3]
print "Otro: ", c

n = len(b)
i=0
while i<n :

print b[i]
i = i+1

Dr. Luis Gerardo de la Fraga
  • Links de descarga
http://lwp-l.com/pdf11017

Comentarios de: Programación de alto nivel con Python (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad