[Python-es] [SOLUCIONADO] Consulta por sentencia while

Darío darioslc en gmail.com
Mar Ene 24 13:18:25 CET 2012


(Lo envío de nuevo porque creo que no llegó)

Acabo de reescribir el código y ahora me queda mucho más claro el
tema, me llamó la atención que me haya dado error al insertar el while
con un espaciado, es decir, puse:
 while ..... y correspondía
while o sea sin el espacio inicial.
Este era el error que me daba:
dario en debian:~$ python diario.py
 File "diario.py", line 28
   while preg!='n':
   ^
IndentationError: unexpected indent

Ahora funciona como quería y el código me quedó:


1 # coding: utf-8
 2
 3 # Conversor de segundos en días, horas, minutos y segundos
 4 # Pedimos datos
 5 dato=raw_input(u'Ingresar segundos: ')
 6

 7 # Hacemos un cast, convirtiéndo la cadena en un número largo
 8 dato= long(dato)

 9 # comprabación del valor introducido:

 10 if  dato>=2**32:
 11         print "Ingrese un valor menor que 2³²"
 12 else:
 13         # Días
 14         ndias, aux = divmod(dato,86400)
 15         # Horas
 16         nhoras, aux = divmod(aux,3600)
 17         # Minutos y segundos
 18         nmin, nseg= divmod(aux,60)
 19         # Muestra del resultado
 20
 21         print '%d dias, %d horas, %d minutos, %d segundos' % \
 22         (ndias,nhoras,nmin,nseg)
 23

 24 preg = raw_input(u'Desea ingresar otro valor (S/N)? ')
 25 #print preg
 26 preg=str(preg)
 27
 28 while preg!='n':
 29
 30  # Pedimos datos nuevamente
 31       ndato=raw_input('Ingresar segundos: ')
 32  # Hacemos un cast, convirtiendo la cadena en un número largo
 33       ndato= int(ndato)
 34  # comprabación del valor introducido:
 35
 36       if  ndato>=2**32:
37                  print "Ingrese un valor menor que 2³²"
 38       else:
 39                  # Días
 40                  ndias, aux = divmod(ndato,86400)
 41                  # Horas
 42                  nhoras, aux = divmod(aux,3600)
 43                  # Minutos y segundos
 44                  nmin, nseg= divmod(aux,60)
 45                  # Muestra del resultado
 46                  print '%d dias, %d horas, %d minutos, %d segundos' % \
 47                  (ndias,nhoras,nmin,nseg)
 48
 49
 50                  preg = raw_input(u'Desea ingresar otro valor (S/N)? ')
 51                  #print preg
 52                  preg=str(preg)


La verdad que es muy simple y más legible a pesar de ser un ejemplo
muy simple, valga la redundancia.

Gracias a todos por aclararme las dudas!


-- 
Darío

|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
Por favor, no utilice formatos de archivo propietarios para el intercambio
de documentos, como ser DOC, XLS, BMP, PPT, RAR, MP3, DWG,
MOV, FLV, WMV, etc.  sino  ODT, ODS, DJVU, PDF, TXT,
CSV, PNG, FLAC, OGV, GZ o cualquier otro que no obligue a utilizar
un programa de un fabricante concreto.
Info: http://www.gnu.org/philosophy/no-word-attachments.es.html
       http://www.vaslibre.org.ve/publicaciones/odfvsooxml-es.pdf
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|


Más información sobre la lista de distribución Python-es