Skip to main content
 首页 » 编程设计

python之编译单个语句时发现多个语句

2025年05月04日11Renyi-Fan

<分区>

我是编程新手。我正在使用 Dive into Python 一书并尝试运行第一个示例 humansize.py。我已将代码复制并粘贴到 Idle(Python shell)中,并不断出现相同的语法错误:“编译单个语句时发现多个语句。”

我正在将代码下载到 BBEdit 中,然后将其复制并粘贴到 Idle 中。我在网上看过,有人说这可能是制表符与空格的问题。但我仔细检查了代码,它看起来与书中的一模一样,我什至在所有代码行中删除并重新插入了 4 个空格,但我仍然遇到错误。

这令人沮丧,因为我确信这是一个简单的问题,但我已经做了我所知道的一切(在尝试研究问题方面)让它发挥作用。如果这是空格与制表符的问题,你们中有人知道我可以去哪里学习如何正确地将代码复制和输入到 Idle 中吗?我是一个真正的初学者。

如果社区提供任何帮助,我将不胜感激。谢谢!

我正在运行 Mac OSX - V.10.7.5。我正在使用最新版本的 Dive into Python 一书和 Python 3.3。

代码如下:

>>> '''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** 
>>>