humansize.py

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Mondkraft
User
Beiträge: 5
Registriert: Sonntag 7. Februar 2016, 18:09

Ich habe folgenden Code in einem Buch gesehen (es basiert auf Python3 aber wohl eine ältere Version von Python3), aber er läuft bei mir nicht (Ich benutze Python 3.4.3+) Folgede Fehlermeldung erscheint: Syntax Error expected an indented block und bei format(size, suffix) ist das si rot makiert. Kann Jemand den Fehler finden?

LG
Mondkraft

Code: Alles auswählen

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 ValuError('numer too large!')

if __name__ == '__main__':
    print (approximate_size(1000000000000, False))
    print (approximate_size(1000000000000))
BlackJack

@Mondkraft: Die Einrückung stimmt nicht. Damit Python weiss was alles zu einem Block, also zu Beispiel zu der Funktion gehört.
Benutzeravatar
Mondkraft
User
Beiträge: 5
Registriert: Sonntag 7. Februar 2016, 18:09

Ich hab die Datei im Internet gefunden und sie mit meiner verglichen und hab die Fehler gefunden.

Ich glaube ich brauche noch etwas Übung, was Einrückungen angeht.

Danke für deine Hilfe :)
Antworten