Ver Mensaje Individual
  #13 (permalink)  
Antiguo 16/01/2013, 19:56
yograterol
 
Fecha de Ingreso: enero-2013
Ubicación: 127.0.0.1
Mensajes: 16
Antigüedad: 9 años, 5 meses
Puntos: 6
Respuesta: Comapracion de letras en string

Recuerda que cuando se lee un archivo, se recorre linea por linea, hasta llegar a la ultima que esta vacía!... Entonces si pasas un objeto vacío, y haces len(objeto) - 1, entonces ahí cae el error, porque estarías en -1 de un string vacío, que si estuvieses un string -1 seria el ultimo elemento. Pero en algo vacío no hay elementos por eso tienes el error.

Debes verificar primero si la linea esta vacía.

Código Python:
Ver original
  1. psu=open("psu.txt","r")
  2.     resul=open("resultados.txt","w")
  3.     def revisar(x, y):
  4.         n = 0
  5.         for i in range(len(x) -1):
  6.             if x[i] == y[i]:
  7.                 n += 1
  8.         return n
  9.      
  10.     maxResultado=0
  11.     minResultado=0
  12.      
  13.     p1l=psu.readline()[20:]
  14.     while True:
  15.         linea=psu.readline()[20:]
  16.         if not linea:
  17.             break
  18.         print revisar(p1l,linea)

Nunca verifiques if a == "", mejor usa if not a, para todo lo que sea false, vacío o 0.

Saludos!

PD: Antes de empezar a programar debes leerte un libro o tutorial, no comenzar a darte golpes sin leer lo suficiente.