0
我有了這個代碼Else語句只能執行1次循環的Python
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)
當我執行此,如果statemente工作正常進行lineas.len裏面,但else語句似乎是1次,而不是執行(contadorLineasTotal-contadorLineasValidas)次。
有什麼問題?
感謝
請修復您的縮進。 – wRAR
沒有看到輸入文件的內容,我們無法知道'else'分支是否應該被使用多次。但是,鑑於其他人指出的縮進問題,很可能這個問題有正確的答案。 – chepner