Download Python
Document related concepts
no text concepts found
Transcript
Beneficios de Python
Interpretación
Lenguaje de propósito general (sirve para muchas cosas)
Instalar el intérprete python (si todavía no está)
Permite un diseño elegante de aplicaciones web
Checar con which python donde se instaló
Multiplataforma
Incluir al inicio de cada script python esta ubicación
Por ejemplo, #!/usr/bin/python
Fácil y poderoso
Buenas herramientas gratuitas de desarro#o
Ejemplo
# fibo
n = 10
print "Serie de Fibonacci"
antepasado = 0
pasado = 1
while n > 0:
actual = antepasado + pasado
print actual
(antepasado, pasado) = (pasado, actual);
n = n - 1
Permitir ejecución con chmod usando el modo u+x
Observaciones
El espacio blanco es significativo
No se requiere especificar el tipo de una variable
Las variables son en realidad punteros (cuidado)
Conversiones explícitas (str(), int(), etc.)
Colección automática de basura (del())
Potencia con **, operaciones binarias como en C
Cadenas de múltiples líneas con “””…”””
Formateo de impresión casi igualito al de ANSI-C
L para long, j para números complejos
Ejemplo con formateo
# coeficiente binomial
(n, k, cnk) = (31, 5, 1.0)
(g, p) = (k, n - k)
if p > g:
(g, p) = (p, g)
(i, j) = (g + 1, p)
while i <= n:
cnk *= i
i = i + 1
if (j > 1):
cnk /= j
j = j - 1
print "C(%d, %d) = %.0d" % (n, k, cnk)
Ejemplo con listas
# bubble sort
d = [30, 32, 15, 74, 27, 96, 20, 40, 38, 95, 84]
print d
n = len(d) - 1
for i in range(n):
for j in range(n):
if d[j] > d[j+1]:
(d[j], d[j+1]) = (d[j+1], d[j])
print d
Listas y cadenas
lista.append()
lista.pop()
lista.reverse()
lista.sort()
len(lista)
map(tipo, lista)
lista = cadena.split(separador)
cadena = separador.join(lista)
Ejemplo con diccionario
# guia telefonica
extensiones = {'Elisa' : 1637, 'Claudia' : 1500, 'IT Lab' : 1518 }
for p in extensiones.keys():
print "La extension de", p, "es", extensiones[p]
las claves deben ser inmutables
Ejemplo con función
# gcd
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
(x, y) = (987654321, 12345)
print "gcd(%d, %d) = %d" % (x, y, gcd(x, y))
Librerías
os, sys, string, …
re (expresiones regulares)
socket, httplib, htmllib, …
depuración: pdb
Ejemplo con archivos
import string
entrada = open("algo.dat", "r")
data = entrada.readlines();
lineas = map(string.strip, data)
entrada.close()
salida = open("otro.dat", "w")
num = len(lineas)
j = 1
for i in range(num):
salida.write("linea %d: " % j)
j = j + 1
salida.write(string.capwords(lineas[i]))
salida.write("\n")
salida.close()