Se encontraron varias declaraciones al compilar una sola declaración [duplicar]
Esta pregunta ya tiene una respuesta aquí:
SyntaxError: se encontraron varias sentencias al compilar una sola sentencia 1 respuestaSoy nuevo en programación. Estoy usando el libro Dive into Python e intento ejecutar el primer ejemplo, humansize.py. He copiado y pegado el código en Inactivo, el shell de Python y sigo presentando el mismo error de sintaxis: "varias declaraciones encontradas al compilar una sola declaración".
Estoy descargando el código en BBEdit y luego lo estoy copiando y pegando en Inactivo. He buscado en línea y la gente dijo que podría tratarse de un problema de tabulación frente a espacio. Pero he revisado el código y se ve idéntico al libro, incluso eliminé y reinserté 4 espacios en todas las líneas de código y aún obtengo el error.
Es frustrante porque estoy seguro de que es un problema simple, pero he hecho todo lo que sé (en términos de tratar de investigar el problema) para que funcione. Si se trata de un problema de espacio frente a tabulaciones, ¿alguno de ustedes sabe dónde puedo ir y aprender cómo hacer el proceso de copiar e ingresar el código en Inactivo correctamente? Soy un verdadero principiante.
Apreciaría cualquier ayuda de la comunidad. ¡Gracias!
Estoy ejecutando un Mac OSX - V.10.7.5. Estoy usando la última versión del libro Dive into Python y Python 3.3.
El código está abajo:
>>> '''Convert file sizes to human-readable form.
Available functions:
approximate_size(size, a_kilobyte_is_1024_bytes)
takes a file size and returns a human-readable string
Examples:
>>> approximate_size(1024)
'1.0 KiB'
>>> approximate_size(1000, False)
'1.0 KB'
'''
SUFFIXES = {1000: ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
1024: ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']}
def approximate_size(size, a_kilobyte_is_1024_bytes=True):
'''Convert a file size to human-readable form.
Keyword arguments:
size -- file size in bytes
a_kilobyte_is_1024_bytes -- if True (default), use multiples of 1024
if False, use multiples of 1000
Returns: string
'''
if size < 0:
raise ValueError('number must be non-negative')
multiple = 1024 if a_kilobyte_is_1024_bytes else 1000
for suffix in SUFFIXES[multiple]:
size /= multiple
if size < multiple:
return '{0:.1f} {1}'.format(size, suffix)
raise ValueError('number too large')
if __name__ == '__main__':
print(approximate_size(1000000000000, False))
print(approximate_size(1000000000000))
**SyntaxError: multiple statements found while compiling a single statement**
>>>