我有这个代码
def filtraValoraciones (nomFichero = "valoraciones.data"):
# Se crea el archivo de salida
crearArchivoValoracionesFiltradas()
contadorLineasTotal = 0
contadorLineasValidas = 0
lineas = [(l.strip()).split("\t") for l in (open(nomFichero).readlines())]
for l in lineas:
contadorLineasTotal = contadorLineasTotal + 1
# Se lee Usuario, Restaurante, Precio y Calidad
idUsuari = int(l[0])
idRestaurant = int(l[1])
precio = round(float(l[2]),2)
calidad = round(float(l[3]),2)
if (idUsuari >= 0 and idUsuari <= 99) and (idRestaurant >= 0 and idRestaurant <= 49) and precio > 0.00 and (calidad >= 0.0 and calidad <= 10.00):
# Tiene valores coherentes --> se vuelcan a otro fichero
cadena = str(idUsuari) + " " + str(idRestaurant) + " " + str(precio) + " " + str(calidad) + "\n"
salida = open('valoracionesFiltradas.data','a')
salida.write (cadena);
salida.close()
contadorLineasValidas = contadorLineasValidas + 1
else:
cadena2 = str(idUsuari) + " " + str(idRestaurant) + " " + str(precio) + " " + str(calidad) + "\n"
print cadena2
print "El numero de valoraciones filtradas han sido: " + str(contadorLineasTotal-contadorLineasValidas)
当我执行此操作时,如果语句对 lineas.len 正常工作,但 else 语句似乎执行了 1 次,而不是 (contadorLineasTotal-contadorLineasValidas) 次。
有什么问题?
谢谢