Diferencia entre revisiones de «Genera-intervalos.py»
De FJWiki
(Página nueva: Este script en Python procesa una lista de números en entrada estándar y la pasa a "intervalos". Por ejemplo: <source> # genera-intervalos.py << EOF > 1 > 2 > 3 > 5 > 6 > 7 > 9 > 1...) |
(Sin diferencias)
|
Revisión actual del 19:38 3 may 2009
Este script en Python procesa una lista de números en entrada estándar y la pasa a "intervalos". Por ejemplo:
# genera-intervalos.py << EOF
> 1
> 2
> 3
> 5
> 6
> 7
> 9
> 15
> 18
> 19
> 20
> EOF
1-3
5-7
9
15
18-20
Código de genera-intervalo.py
#!/usr/bin/python
#Hecho por FJ
import sys
if __name__ == '__main__':
lineas = sys.stdin.readlines()
i = 0
intervaloini = 0
intervalofin = 0
for linea in lineas:
linea = linea.strip()
if not linea.isdigit():
continue
numero=int(linea)
i += 1
if i == 1:
anterior = numero
intervaloini = numero
intervalofin = numero
continue
if anterior+1 == numero:
intervalofin = numero
else:
if intervaloini == intervalofin:
print intervaloini
else:
print "%d-%d" % (intervaloini, intervalofin)
intervaloini = numero
intervalofin = numero
anterior = numero
if i > 0:
if intervaloini == intervalofin:
print intervaloini
else:
print "%d-%d" % (intervaloini, intervalofin)
#fin