[Python-es] Consulta por sentencia while
Darío
darioslc en gmail.com
Jue Ene 19 00:24:37 CET 2012
Hola lista, estoy empezando a aprender a programar en este lenguaje, y
estoy teniendo un problema con la sentencia while.
Es un ejercicio muy simple, pero para mí se me complicó un poco. La idea
es dado un número natural (tiempo en segundos), convertirlo en días,
horas, minutos y segundos. El problema me surge cuando quiero hacer un
bucle con while de forma tal que se le pregunta si desea realizar otro
cálculo, mientras lo ingresado sea distinto de n se sigue con otro
valor, y si es n se sale del programa.
El código es el siguiente:
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
26 preg=str(preg)
27 while preg!='n':
28
29 # Pedimos datos nuevamente
30 ndato=raw_input('Ingresar segundos: ')
31 # Hacemos un cast, convirtiendo la cadena en un número largo
32 ndato= long(ndato)
33 # comprabación del valor introducido:
34
35 if ndato>=2**32:
36 print "Ingrese un valor menor que 2³²"
37 else:
38 # Días
39 ndias, aux = divmod(ndato,86400)
40 # Horas
41 nhoras, aux = divmod(aux,3600)
42 # Minutos y segundos
43 nmin, nseg= divmod(aux,60)
44 # Muestra del resultado
45 print '%d dias, %d horas, %d minutos, %d segundos' %
\
46 (ndias,nhoras,nmin,nseg)
47 print 'Gracias!'
El error al querer ejecutarlo es:
File "diario.py", line 30
ndato=raw_input('Ingresar segundos: ')
^
IndentationError: expected an indented block
Si elimino el while el código funciona bien (porque fue hecho por
alguien que sabe, no yo), le quise agregar el while para aprender su uso
en python.
Me surge la duda si está bien definido el valor preg como string.
Alguna sugerencia?
Gracias
--
Darío
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
Por favor, no utilice formatos de archivo propietarios para el in-
tercambio de documentos, como DOC, XLS, BMP, PPT, RAR, MP3,
DWG, MOV, FLV, WMV, etc. sino HTML, ODT, ODT, DJVU, PDF,
TXT, CSV, PNG, FLAC, OGV, GZIP o cualquier otro que no obligue
a utilizar un programa de un fabricante concreto.
Vea http://www.gnu.org/philosophy/no-word-attachments.es.html
también
http://www.vaslibre.org.ve/publicaciones/odfvsooxml-es.pdf
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
Más información sobre la lista de distribución Python-es