- Page 1 and 2: Inmersión en Python Python de nova
- Page 3 and 4: o 3.3. Presentación de las tuplas
- Page 5 and 6: o 7.7. Resumen • 8. Procesamiento
- Page 7 and 8: o 13.6. Pruebas de cordura • 14.
- Page 9 and 10: H.B.2. BeOpen Python open source li
- Page 11 and 12: Es más, los programas escritos par
- Page 13 and 14: 5. Si no dispone de derechos admini
- Page 15 and 16: 7. Abra la carpeta MacPython-2.3 8.
- Page 17 and 18: Ejemplo 1.2. Instalación en RedHat
- Page 19 and 20: Type "help", "copyright", "credits"
- Page 21 and 22: 3 El intérprete interactivo de Pyt
- Page 23 and 24: Devuelve una cadena.""" return ";".
- Page 25 and 26: Python lleva un registro interno de
- Page 27 and 28: Muchos IDE de Python utilizan la ca
- Page 29 and 30: Ejemplo 2.4. Ruta de búsqueda de i
- Page 31 and 32: """Crea una cadena de conexión par
- Page 33: if __name__ == "__main__": Algunas
- Page 37 and 38: 'database' es una clave, y su valor
- Page 39 and 40: 42: 'douglas', 'retrycount': 3} Los
- Page 41 and 42: arbitrarios y expandirse de forma d
- Page 43 and 44: una lista”. De forma similar, si
- Page 45 and 46: otras listas. Puede que esto es lo
- Page 47 and 48: emove elimina sólo la primera apar
- Page 49 and 50: Los elementos de una tupla tienen u
- Page 51 and 52: • 3.4.1. Referencia a variables
- Page 53 and 54: z 'e' v es una tupla de tres elemen
- Page 55 and 56: caracteres de la cadena (en este ca
- Page 57 and 58: Una de las carácterísticas más p
- Page 59 and 60: ['server=mpilgrim', 'uid=sa', 'data
- Page 61 and 62: li = ['server=mpilgrim', 'uid=sa',
- Page 63 and 64: Antes de sumergirnos en el siguient
- Page 65 and 66: Ejemplo 4.1. apihelper.py Si aún n
- Page 67 and 68: uildConnectionString Build a connec
- Page 69 and 70: • 4.3.2. La función str • 4.3.
- Page 71 and 72: dir(li) ['append', 'count', 'extend
- Page 73 and 74: La ventaja de interpretarlo así es
- Page 75 and 76: getattr también funciona con dicci
- Page 77 and 78: Concatenamos el argumento format co
- Page 79 and 80: carácter, por lo que se obtendrá
- Page 81 and 82: ooleano, and devuelve el último de
- Page 83 and 84: El truco real que hay tras el truco
- Page 85 and 86:
4.7.1. Funciones lambda en el mundo
- Page 87 and 88:
La última línea de código, la ú
- Page 89 and 90:
epresentación como cadena, 'None'.
- Page 91 and 92:
method).__doc__))) if __name__ == "
- Page 93 and 94:
Capítulo 5. Objetos y orientación
- Page 95 and 96:
self.clear() try: fsock = open(file
- Page 97 and 98:
title=Sidewinder genre=18 name=/mus
- Page 99 and 100:
Aparte de esto, es sólo cuestión
- Page 101 and 102:
UserList y UserString que le permit
- Page 103 and 104:
Le dije antes que esta clase actúa
- Page 105 and 106:
__name__, y__bases__. Puede acceder
- Page 107 and 108:
• La Referencia de bibliotecas de
- Page 109 and 110:
definen sólo por su nombre, y hay
- Page 111 and 112:
tipos de datos internos como cadena
- Page 113 and 114:
'/music/_singles/kairo.mp3' El mét
- Page 115 and 116:
self.__parse(item) FileInfo.__setit
- Page 117 and 118:
Este ejemplo muestra algunos de los
- Page 119 and 120:
Mientras que otros lenguajes orient
- Page 121 and 122:
No hay constantes en Python. Todo p
- Page 123 and 124:
En Python, todos los métodos espec
- Page 125 and 126:
Capítulo 6. Excepciones y gestión
- Page 127 and 128:
seguridad correctas al acceder. Si
- Page 129 and 130:
try: import termios, TERMIOS except
- Page 131 and 132:
Python incorpora una funcioón, ope
- Page 133 and 134:
6.2.2. Cerrar ficheros Los ficheros
- Page 135 and 136:
El método read puede lanzar una IO
- Page 137 and 138:
• eff-bot comenta la eficiencia y
- Page 139 and 140:
Ejemplo 6.10. Iteración sobre un d
- Page 141 and 142:
función stripnulls. Ahora que hemo
- Page 143 and 144:
Dado el nombre (como cadena) de cua
- Page 145 and 146:
'c:\\Documents and Settings\\mpilgr
- Page 147 and 148:
'Program Files', 'Python20', 'RECYC
- Page 149 and 150:
import glob >>> glob.glob('c:\\musi
- Page 151 and 152:
dentro de otra). Sólo se puede lla
- Page 153 and 154:
UserDict.__init__(self) self["name"
- Page 155 and 156:
Capítulo 7. Expresiones regulares
- Page 157 and 158:
habría problema con diferencias de
- Page 159 and 160:
suficientemente rápido por sí mis
- Page 161 and 162:
¿Qué se necesitaría para certifi
- Page 163 and 164:
Así que hay cuatro patrones posibl
- Page 165 and 166:
Ejemplo 7.5. La manera antigua: cad
- Page 167 and 168:
e.search(pattern, 'MCMLX') >>> re.
- Page 169 and 170:
de la cadena, y con ninguna de las
- Page 171 and 172:
tres C, L y las tres posibles X, V
- Page 173 and 174:
Ejemplo 7.11. Búsqueda de la exten
- Page 175 and 176:
phonePattern = re.compile(r'^(\d{3}
- Page 177 and 178:
carácter no numérico (el guión),
- Page 179 and 180:
Comprobación de seguridad final. S
- Page 181 and 182:
Capítulo 8. Procesamiento de HTML
- Page 183 and 184:
def handle_charref(self, ref): will
- Page 185 and 186:
self.pieces.append(self.verbatim an
- Page 187 and 188:
(r'tle\b', r'til'), (r'll\b', r'l')
- Page 189 and 190:
sgmllib.py contiene una clase impor
- Page 191 and 192:
línea de órdenes desde el cuadro
- Page 193 and 194:
El primer paso para extrar datos de
- Page 195 and 196:
start_a lo invoca SGMLParser cada v
- Page 197 and 198:
nada. SGMLParser es un consumidor d
- Page 199 and 200:
HTML terminan en punto y coma; el r
- Page 201 and 202:
def unknown_starttag(self, tag, att
- Page 203 and 204:
... x = 1 ... print locals() ... >>
- Page 205 and 206:
Este módulo sólo define una clase
- Page 207 and 208:
cadena y comprender cual será el r
- Page 209 and 210:
e. La cadena de formato producirá
- Page 211 and 212:
Usando la función output definida
- Page 213 and 214:
def finish_starttag(self, tag, attr
- Page 215 and 216:
llama a la función. En este moment
- Page 217 and 218:
capitalize es un método de cadenas
- Page 219 and 220:
Como feed mantiene un búfer intern
- Page 221 and 222:
interna utilizando clases nativas d
- Page 223 and 224:
xrefs] The default source will be o
- Page 225 and 226:
in The text of a text node is usual
- Page 227 and 228:
grammar = "kant.xml" try: opts, arg
- Page 229 and 230:
[usted@localhost kgp]$ python kgp.p
- Page 231 and 232:
Esta sintaxis no la ha visto antes.
- Page 233 and 234:
directorios; son directorios con un
- Page 235 and 236:
epresenta este Node. En el caso del
- Page 237 and 238:
El cuarto hijo es un objeto Element
- Page 239 and 240:
en más de un idioma tienen el mism
- Page 241 and 242:
cadenas normales. Para resolver est
- Page 243 and 244:
Este ejemplo está extraído de un
- Page 245 and 246:
[10] Tristemente, esto no es más q
- Page 247 and 248:
Puede usar el mismo método getElem
- Page 249 and 250:
Los nombres de los atributos se alm
- Page 251 and 252:
Capítulo 10. Scripts y flujos •
- Page 253 and 254:
minidom.parse es lo suficientemente
- Page 255 and 256:
contents = "01" >>> import StringIO
- Page 257 and 258:
pass # treat source as string impor
- Page 259 and 260:
for i in range(3): ... sys.stdout.w
- Page 261 and 262:
#stderr.py import sys fsock = open(
- Page 263 and 264:
Esto imprime simplemente el conteni
- Page 265 and 266:
azar) que se tomen cada vez que seg
- Page 267 and 268:
devuelve una lista de todos los nod
- Page 269 and 270:
Ahora puede tratar la cadena como e
- Page 271 and 272:
Ejemplo 10.20. Presentación de sys
- Page 273 and 274:
del módulo getopt toma tres parám
- Page 275 and 276:
Ejemplo 10.23. Tratamiento de los a
- Page 277 and 278:
Creamos una nueva instancia de la c
- Page 279 and 280:
10.8. Resumen Python incluye biblio
- Page 281 and 282:
y DELETE) se relacionan directament
- Page 283 and 284:
an of a If the etag argument is sup
- Page 285 and 286:
import urllib >>> data = urllib.url
- Page 287 and 288:
temporal en una cabecera Location:)
- Page 289 and 290:
La biblioteca de URL de Python no i
- Page 291 and 292:
La segunda línea es la cabecera Ho
- Page 293 and 294:
también podríamos crear uno de es
- Page 295 and 296:
opener = urllib2.build_opener() >>>
- Page 297 and 298:
definido para la consulta actual. u
- Page 299 and 300:
Podemos obtener la ETag devuelta po
- Page 301 and 302:
f.status Traceback (most recent cal
- Page 303 and 304:
equest = urllib2.Request('http://di
- Page 305 and 306:
send: ' GET /xml/atom.xml HTTP/1.0
- Page 307 and 308:
header: Content-Encoding: gzip head
- Page 309 and 310:
objeto así que, ¿por qué no elim
- Page 311 and 312:
interesa es el esquema, para asegur
- Page 313 and 314:
{'url': 'http://diveintomark.org/xm
- Page 315 and 316:
Capítulo 12. Servicios web SOAP
- Page 317 and 318:
Puede importar esto como módulo y
- Page 319 and 320:
3. Haga clic dos veces sobre el ins
- Page 321 and 322:
1. Seleccione Latest Official Relea
- Page 323 and 324:
Las bibliotecas de SOAP proporciona
- Page 325 and 326:
específico, que es el que especifi
- Page 327 and 328:
fichero WSDL describe las funciones
- Page 329 and 330:
El diccionario server.methods conti
- Page 331 and 332:
*** Incoming SOAP *****************
- Page 333 and 334:
filter (u'http://www.w3.org/2001/XM
- Page 335 and 336:
Cada elemento de resultElements es
- Page 337 and 338:
Traceback (most recent call last):
- Page 339 and 340:
fallo lo antes posible si los indic
- Page 341 and 342:
self.__hd, self.__ma) File "c:\pyth
- Page 343 and 344:
Capítulo 13. Pruebas unitarias (Un
- Page 345 and 346:
• Este sitio cuenta más cosas so
- Page 347 and 348:
(2, 'II'), (3, 'III'), (4, 'IV'), (
- Page 349 and 350:
class FromRomanBadInput(unittest.Te
- Page 351 and 352:
Dado esto, construyamos el primer c
- Page 353 and 354:
Cada prueba individual es un métod
- Page 355 and 356:
lugar de llamar directamente a toRo
- Page 357 and 358:
de cordura” (sanity checks para a
- Page 359 and 360:
Lo más interesante de este caso de
- Page 361 and 362:
Capítulo 14. Programación Test-Fi
- Page 363 and 364:
fromRoman should give known result
- Page 365 and 366:
self.assertEqual(integer, result) F
- Page 367 and 368:
InvalidRomanNumeral que estaba espe
- Page 369 and 370:
while n >= integer: result += numer
- Page 371 and 372:
-----------------------------------
- Page 373 and 374:
14.3. roman.py, fase 3 Ahora que to
- Page 375 and 376:
File "", line 1, in ? File "roman3.
- Page 377 and 378:
===================================
- Page 379 and 380:
"""convert Roman numeral to integer
- Page 381 and 382:
self.assertRaises(roman4.InvalidRom
- Page 383 and 384:
"""Convert to and from Roman numera
- Page 385 and 386:
fromRoman(toRoman(n))==n for all n
- Page 387 and 388:
# cambiado) def testBlank(self): ""
- Page 389 and 390:
fromRoman should give known result
- Page 391 and 392:
(100, 'C'), (500, 'D'), (1000, 'M')
- Page 393 and 394:
def testTooManyRepeatedNumerals(sel
- Page 395 and 396:
fromRoman should give known result
- Page 397 and 398:
Ejemplo 15.8. Programación de los
- Page 399 and 400:
y los suma, sin importar cuántas v
- Page 401 and 402:
cadena y devuelve un objeto de patr
- Page 403 and 404:
obteniendo volcados de pila complet
- Page 405 and 406:
estar introduciendo nuevos fallos e
- Page 407 and 408:
idea se vuelve aún mejor cuando no
- Page 409 and 410:
for integer in range(1, MAX_ROMAN_N
- Page 411 and 412:
• Invocar a unittest.main() desde
- Page 413 and 414:
sentarse rascándose la cabeza y gr
- Page 415 and 416:
Capítulo 13, Pruebas unitarias (Un
- Page 417 and 418:
os.path.abspath. os.path.abspath no
- Page 419 and 420:
Esta técnica le permitirá reutili
- Page 421 and 422:
objeto Match que contiene informaci
- Page 423 and 424:
Como nota de interés, quisiera se
- Page 425 and 426:
función. Pero usar bucles for de e
- Page 427 and 428:
Ahora la variable sys es el módulo
- Page 429 and 430:
uta” el directorio del script aca
- Page 431 and 432:
modules [, , , , ] >>> modules[-1]
- Page 433 and 434:
uscar pruebas y construir una bater
- Page 435 and 436:
combinada con otras letras para hac
- Page 437 and 438:
Puede que piense que esto convertir
- Page 439 and 440:
aquí”. En este caso hemos record
- Page 441 and 442:
equivalente a invocar matches_sxz(n
- Page 443 and 444:
Observe que la función plural no h
- Page 445 and 446:
usaremos en re.search para ver si l
- Page 447 and 448:
... print c ... print b ... print a
- Page 449 and 450:
será diferente como verá en unos
- Page 451 and 452:
... print 'incrementando x' ... x =
- Page 453 and 454:
Podemos usar un generador como fibo
- Page 455 and 456:
• Realizar sustitución de cadena
- Page 457 and 458:
pasa añadiendo nuevas característ
- Page 459 and 460:
def soundex(source): "S": "2", "T":
- Page 461 and 462:
egulares? ¿Tendrá su código efec
- Page 463 and 464:
quiere optimizar. Si tiene un progr
- Page 465 and 466:
que esta expresión regular no camb
- Page 467 and 468:
def soundex(source): "I": "9", "J":
- Page 469 and 470:
def soundex(source): # ... input ch
- Page 471 and 472:
charToSoundex = string.maketrans(al
- Page 473 and 474:
Woo W000 12.6070768771 Pilgrim P426
- Page 475 and 476:
¿Es más rápido que soundex3a.py
- Page 477 and 478:
Pero espere un momento. ¿Un bucle
- Page 479 and 480:
ejecuta de forma nativa; el bucle e
- Page 481 and 482:
o La Python Knowledge Base tiene mu
- Page 483 and 484:
o La Python Knowledge Base explica
- Page 485 and 486:
o La Python Knowledge Base contesta
- Page 487 and 488:
o Las FAQ de PyUnit explican por qu
- Page 489 and 490:
Si tiene la suerte de usar Debian G
- Page 491 and 492:
• 3.3. Presentación de las tupla
- Page 493 and 494:
Ya sabe usted que las funciones de
- Page 495 and 496:
La instanciación de clases en Pyth
- Page 497 and 498:
es que Python es bueno en tantas ot
- Page 499 and 500:
• 7.5. Expresiones regulares prol
- Page 501 and 502:
Hagamos por un minuto un inciso ent
- Page 503 and 504:
• 9.4. Unicode Como iba diciendo,
- Page 505 and 506:
analizados se componen de varios ti
- Page 507 and 508:
Agent. Para hacerlo nos hace falta
- Page 509 and 510:
Como muchas otras cosas en el campo
- Page 511 and 512:
en forma de funciones de conversió
- Page 513 and 514:
• 15.3. Refactorización • 15.4
- Page 515 and 516:
Ya está familiarizado con el uso d
- Page 517 and 518:
• 17.6. plural.py, fase 5 Hemos e
- Page 519 and 520:
Apéndice C. Trucos y consejos Cap
- Page 521 and 522:
loques de código. • 2.6. Prueba
- Page 523 and 524:
verdaderas. o Un diccionario vacío
- Page 525 and 526:
que no ensucie mi propio código co
- Page 527 and 528:
distinto tipo. Otros lenguajes (not
- Page 529 and 530:
una longitud”). • 5.8. Presenta
- Page 531 and 532:
La especificación de HTML precisa
- Page 533 and 534:
documento XML obtenemos un montón
- Page 535 and 536:
usr/, os.path.abspath('bin/../local
- Page 537 and 538:
o Ejemplo 3.1. Definición de un di
- Page 539 and 540:
o Ejemplo 4.11. La función getattr
- Page 541 and 542:
o Ejemplo 6.3. Apertura de un fiche
- Page 543 and 544:
• 8.4. Presentación de BaseHTMLP
- Page 545 and 546:
o Ejemplo 10.5. Análisis de XML de
- Page 547 and 548:
o Ejemplo 12.3. Verificación de la
- Page 549 and 550:
o Ejemplo 15.1. El fallo o Ejemplo
- Page 551 and 552:
o Ejemplo 17.3. De vuelta a plural1
- Page 553 and 554:
Apéndice E. Historial de revisione
- Page 555:
Apéndice F. Sobre este libro Este