⚠
Hinweis zur Privatsphäre: Wenn Sie sich mit Ihrem GitHub-Konto anmelden, werden Ihre Quiz-Versuche in Google Firebase gespeichert, damit Sie Ihren Fortschritt verfolgen können. Diese Daten sind nur für den Kursleiter einsehbar, werden nicht anderweitig weitergegeben und nach Semesterende gelöscht. Frühere Löschung auf Anfrage beim Kursleiter. Möchten Sie anonym bleiben? Nutzen Sie den Gastmodus oder ein GitHub-Konto ohne Ihren echten Namen.
Lädt...

02 Übung: PEP 8 Vorher/Nachher-Analyse

Punkte: 0 / 14

Anleitung

Dieses Quiz testet Ihre Fähigkeit, PEP 8-Verbesserungen in echtem Python-Code zu analysieren. Sie vergleichen “Vorher” (nicht-konform) und “Nachher” (konform) Versionen von Code-Ausschnitten und identifizieren die spezifischen Unterschiede, angewendeten Regeln und die Begründung hinter jeder Änderung.

Behandelte Themen:

  • Abstände um Operatoren und nach Kommata
  • Import-Organisation (Gruppierung, Sortierung, ungenutzte Imports)
  • Namenskonventionen (PascalCase, snake_case, UPPER_CASE)
  • Zusammengesetzte Anweisungen vs. separate Zeilen
  • Mehrzeilige Formatierung für Funktionsaufrufe
  • Git-Diff-Auswirkungen der Code-Formatierung

Tipp: Lesen Sie beide Code-Versionen sorgfältig, bevor Sie antworten. Kleine Unterschiede wie ein einzelnes Leerzeichen oder ein Zeilenumbruch zählen als eigenständige Verbesserungen.

Frage1 Unterschieds-Analyse

Wie viele PEP 8-Verbesserungen wurden zwischen der Vorher- und Nachher-Version vorgenommen?

Vorher:

def calc(a,b):return a+b

Nachher:

def calc(a, b):
    return a + b

Geben Sie eine Zahl ein:

Frage2 Regel-Identifikation

Welche PEP 8-Regeln wurden in der Nachher-Version angewendet?

Vorher:

def calc(a,b):return a+b

Nachher:

def calc(a, b):
    return a + b

Wählen Sie ALLE zutreffenden aus:

Wählen Sie alle zutreffenden Optionen:

Frage3 Regel-Identifikation

Welche PEP 8-Regeln wurden in der Nachher-Version dieser Imports angewendet?

Vorher:

import sys,os,json
from typing import List,Dict
import numpy as np

Nachher:

import json
import os
import sys
from typing import Dict, List

import numpy as np

Wählen Sie ALLE zutreffenden aus:

Wählen Sie alle zutreffenden Optionen:

Frage4 Best Practices

Warum ist die Leerzeile zwischen Import-Gruppen wichtig?

import json
import os
import sys
from typing import Dict, List
                                 # <-- diese Leerzeile
import numpy as np
Frage5 Unterschieds-Analyse

Wie viele PEP 8-Verbesserungen wurden zwischen der Vorher- und Nachher-Version vorgenommen?

Vorher:

class dataProcessor:
    def __init__(self,items):
        self.items=items
        self.count=len(items)
    def Process(self): return [x*2 for x in self.items]

Nachher:

class DataProcessor:
    def __init__(self, items):
        self.items = items
        self.count = len(items)

    def process(self):
        return [x * 2 for x in self.items]

Geben Sie eine Zahl ein:

Frage6 Regel-Identifikation

Welche PEP 8-Namenskonventionsregeln wurden in der Nachher-Version angewendet?

Vorher:

class dataProcessor:
    ...
    def Process(self): return [x*2 for x in self.items]

Nachher:

class DataProcessor:
    ...
    def process(self):
        return [x * 2 for x in self.items]

Wählen Sie ALLE zutreffenden aus:

Wählen Sie alle zutreffenden Optionen:

Frage7 Regel-Identifikation

Welche PEP 8-Regeln wurden in der Nachher-Version angewendet?

Vorher:

camera={'x':0,'y':2.0,'z':1.5}
max_distance=100
default_threshold=0.5

Nachher:

camera = {'x': 0, 'y': 2.0, 'z': 1.5}
MAX_DISTANCE = 100
DEFAULT_THRESHOLD = 0.5

Wählen Sie ALLE zutreffenden aus:

Wählen Sie alle zutreffenden Optionen:

Frage8 Best Practices

Warum wurden max_distance und default_threshold in MAX_DISTANCE und DEFAULT_THRESHOLD umbenannt?

Frage9 Unterschieds-Analyse

Wie viele PEP 8-Verbesserungen wurden zwischen der Vorher- und Nachher-Version vorgenommen?

Vorher:

def process(data,threshold=10,debug=False):
    result=[]
    for item in data:
        if item>threshold:result.append(item*2)
    if debug:print(f"Processed {len(result)} items")
    return result

Nachher:

def process(data, threshold=10, debug=False):
    result = []
    for item in data:
        if item > threshold:
            result.append(item * 2)
    if debug:
        print(f"Processed {len(result)} items")
    return result

Geben Sie eine Zahl ein:

Frage10 Best Practices

Warum ist das Aufteilen zusammengesetzter Anweisungen in separate Zeilen wichtig für das Debugging?

Vorher (zusammengesetzt):

if item>threshold:result.append(item*2)

Nachher (separate Zeilen):

if item > threshold:
    result.append(item * 2)
Frage11 Unterschieds-Analyse

Wie viele PEP 8-Verbesserungen wurden zwischen der Vorher- und Nachher-Version vorgenommen?

Vorher:

from dash import Dash,html,dcc
import plotly.graph_objects as go
import numpy as np
import sys

def create_visualization(x_data,y_data,title="Plot"):
    fig=go.Figure()
    fig.add_trace(go.Scatter(x=x_data,y=y_data,mode='lines',name='Data'))
    fig.update_layout(title=title,xaxis_title="X",yaxis_title="Y")
    return fig

APP_title="Road Profile Viewer"

Nachher:

from dash import Dash, dcc, html
import numpy as np
import plotly.graph_objects as go

def create_visualization(x_data, y_data, title="Plot"):
    fig = go.Figure()
    fig.add_trace(go.Scatter(
        x=x_data,
        y=y_data,
        mode='lines',
        name='Data'
    ))
    fig.update_layout(
        title=title,
        xaxis_title="X",
        yaxis_title="Y"
    )
    return fig

APP_TITLE = "Road Profile Viewer"

Geben Sie eine Zahl ein:

Frage12 Regel-Identifikation

Welche Kategorien von PEP 8-Regeln wurden im Praxisbeispiel angewendet?

Vorher:

from dash import Dash,html,dcc
import plotly.graph_objects as go
import numpy as np
import sys

def create_visualization(x_data,y_data,title="Plot"):
    fig=go.Figure()
    fig.add_trace(go.Scatter(x=x_data,y=y_data,mode='lines',name='Data'))
    fig.update_layout(title=title,xaxis_title="X",yaxis_title="Y")
    return fig

APP_title="Road Profile Viewer"

Wählen Sie ALLE zutreffenden Kategorien aus:

Wählen Sie alle zutreffenden Optionen:

Frage13 Best Practices

Warum wird mehrzeilige Formatierung für Funktionsaufrufe mit vielen Argumenten bevorzugt?

Vorher (einzeilig):

fig.add_trace(go.Scatter(x=x_data,y=y_data,mode='lines',name='Data'))

Nachher (mehrzeilig):

fig.add_trace(go.Scatter(
    x=x_data,
    y=y_data,
    mode='lines',
    name='Data'
))
Frage14 Best Practices

Ein Teamkollege ändert mode='lines' zu mode='markers' in einem Funktionsaufruf. Welcher Formatierungsstil erzeugt einen saubereren Git-Diff?

Stil A (einzeilig):

fig.add_trace(go.Scatter(x=x_data, y=y_data, mode='lines', name='Data'))

Stil B (mehrzeilig):

fig.add_trace(go.Scatter(
    x=x_data,
    y=y_data,
    mode='lines',
    name='Data'
))
© 2026 Dominik Mueller   •  Powered by Soopr   •  Theme  Moonwalk