Python

Ekkart Kleinod  • 

Auf dieser Seite

Schnelle Erkenntnisse:

  • ob Tabs oder Spaces ist Python egal, Hauptsache konsistent
  • Strings in ' einschließen, es sei denn, ein ' kommt drin vor, dann mit "
  • Variablennamen mit Underscore
  • Klassennamen CamelCase
  • Module und import sind nicht so einfach, hier mal in die Doku gucken
  • runde Klammern werden auch fü Tupel verwendet, also nicht alles aus Gewohnheit klammern
  • Strings formatieren über f-Strings f'Hallo {name.upper()}. Du hast {amount:.2f} Geld.'
  • ein Array ist erst ein Array, wenn es so deklariert wurde, sonst ist es eine Liste: array.array([1,2,3]) (array muss vorher importiert werden)
  • Test auf Typ: isinstance(variable, type)
  • bei allen Textoperationen Encoding explizit angeben: utf_8 (utf8, utf-8)
  • Code-Stil
    • guter Stil: bei Listen jedes Element mit Komma abschließen, auch letztes Element
    • flake8, blue, black

Buchtip:

else-Blöcke

  • if: Alternative
  • for: Ausführung nur, wenn Schleife zu Ende gelaufen ist, nicht bei break
  • while: Ausführung nur, wenn Schleife zu Ende gelaufen ist, nicht bei break
  • try: Ausführung nur, wenn keine Exception im try-Block kam

for

  • übliches Pattern
for item in my_list:
    if item == 'banana':
        break
else:
    raise ValueError('No banana found!')

try

  • else: Verdeutlichung, dass bestimmter Code nur ohne Exception ausgeführt wird
    • else ist ein sehr schlechter Name, schöner wäre sowas wie then
  • finally: Code wird auch bei Exception ausgeführt

statt

try:
    a = call_with_possible_exception()
    do_something_with(a)
except OSError:
    log('Oh, an OS error...')
except:
    log('Oh, an unspecified error...')
finally:
    log('Finished')

besser

try:
    a = call_with_possible_exception()
except OSError:
    log('Oh, an error...')
except:
    log('Oh, an unspecified error...')
else:
    do_something_with(a)
finally:
    log('Finished')

Python