⚠
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 Verstöße Erkennen

Punkte: 0 / 16

Anleitung

Dieses interaktive Quiz testet Ihre Fähigkeit, PEP 8-Verstöße in Python-Code zu erkennen. Die Fragen basieren auf den Level 2 PEP 8-Übungen und decken folgende Themen ab:

  • Namenskonventionen (snake_case, PascalCase, UPPER_CASE)
  • Leerzeichenregeln (Leerzeichen um Operatoren, nach Kommas, nach Doppelpunkten)
  • Import-Organisation (ein Import pro Zeile, ungenutzte Imports entfernen)
  • Zusammengesetzte Anweisungen (mehrere Anweisungen in einer Zeile vermeiden)
  • Zeilenlänge (79-88 Zeichen Limit)
  • Ressourcenverwaltung (Verwendung von with für Dateibehandlung)

Lesen Sie jeden Code-Ausschnitt sorgfältig und versuchen Sie, alle Verstöße zu identifizieren, bevor Sie Ihre Antwort auswählen. Viel Erfolg!

Frage1 Verstöße Zählen

Wie viele PEP 8-Verstöße enthält dieser Code?

import sys,os
import numpy as np

def ProcessData(input_list,threshold=10):
    result=[]
    for item in input_list:
        if item>threshold:result.append(item*2)
    return result
Frage2 Verstöße Erkennen

Wählen Sie ALLE PEP 8-Verstöße in diesem Code aus:

import sys,os
import numpy as np

def ProcessData(input_list,threshold=10):
    result=[]
    for item in input_list:
        if item>threshold:result.append(item*2)
    return result

Wählen Sie alle zutreffenden Optionen:

Frage3 Namenskonventionen

Welche Namenskonvention sollte die Funktion ProcessData laut PEP 8 verwenden?

Frage4 Verstöße Zählen

Wie viele PEP 8-Verstöße enthält dieser Code?

from dash import Dash,html,dcc
import numpy as np
import sys

def generate_road_profile(num_points=100,x_max=80):
    x=np.linspace(0,x_max,num_points)
    y=0.015*x**3+0.3*np.sin(2*np.pi*x)
    return x,y

camera_position={'x':0,'y':2.0,'z':1.5}
MAX_distance=100
Frage5 Verstöße Erkennen

Wählen Sie ALLE PEP 8-Verstöße in diesem Code-Ausschnitt aus:

camera_position={'x':0,'y':2.0,'z':1.5}
MAX_distance=100

Wählen Sie alle zutreffenden Optionen:

Frage6 Namenskonventionen

Was ist laut PEP 8 falsch am Variablennamen MAX_distance?

Frage7 Verstöße Erkennen

Wählen Sie ALLE PEP 8-Verstöße in diesem Code aus:

import numpy as np
from typing import List

def HelperFunction(val):
    result=val*2
    return result

def another_helper(x,y,z): return x+y+z

def calculate_distance(point1,point2):
    dx=point2[0]-point1[0]
    dy=point2[1]-point1[1]
    return np.sqrt(dx**2+dy**2)

# This is a very long comment that definitely exceeds the recommended 79 character limit for code readability

Wählen Sie alle zutreffenden Optionen:

Frage8 Zusammengesetzte Anweisungen

Warum empfiehlt PEP 8, die zusammengesetzte Anweisung def another_helper(x,y,z): return x+y+z zu vermeiden?

Frage9 Verstöße Erkennen

Wählen Sie ALLE PEP 8-Verstöße in diesem Code aus:

import sys,os,json

class DataProcessor:
    def __init__(self,data,config=None):
        self.data=data
        self.config=config if config else {}

    def Process(self,threshold=0):
        filtered=[x for x in self.data if x>threshold]
        return filtered

    def GetStats(self):
        return {'mean':np.mean(self.data),'std':np.std(self.data)}

max_items=1000

Wählen Sie alle zutreffenden Optionen:

Frage10 Namenskonventionen

Welche Namenskonvention sollten die Methoden Process und GetStats laut PEP 8 verwenden?

Frage11 Über PEP 8 hinaus

Dieser Code hat ein Bonusproblem, das nicht strikt ein PEP 8-Verstoß ist, aber einen Laufzeitfehler verursachen würde. Was ist es?

import sys,os,json

class DataProcessor:
    def __init__(self,data,config=None):
        self.data=data
        self.config=config if config else {}

    def GetStats(self):
        return {'mean':np.mean(self.data),'std':np.std(self.data)}
Frage12 Verstöße Erkennen

Wählen Sie ALLE PEP 8-Verstöße in diesem Code aus:

from typing import List,Tuple
import numpy as np

def find_intersection(x_road,y_road,angle_degrees,camera_x=0,camera_y=1.5):
    angle_rad=np.radians(angle_degrees)
    ray_dx=np.cos(angle_rad)
    ray_dy=np.sin(angle_rad)

    for i in range(len(x_road)-1):
        x1,y1=x_road[i],y_road[i]
        x2,y2=x_road[i+1],y_road[i+1]

        t=((camera_y-y1)*ray_dx-(camera_x-x1)*ray_dy)/((x2-x1)*ray_dy-(y2-y1)*ray_dx)

        if 0<=t<=1:
            x_intersect=x1+t*(x2-x1)
            return x_intersect,y1+t*(y2-y1)

    return None,None

Wählen Sie alle zutreffenden Optionen:

Frage13 Zeilenlänge

Die folgende Zeile aus Übung 2.5 ist zu lang. Was ist der BESTE Weg, sie gemäß PEP 8 Best Practices zu korrigieren?

t=((camera_y-y1)*ray_dx-(camera_x-x1)*ray_dy)/((x2-x1)*ray_dy-(y2-y1)*ray_dx)
Frage14 Verstöße Erkennen

Wählen Sie ALLE PEP 8-Verstöße in diesem Code aus:

import json,sys
from pathlib import Path

class ConfigManager:
    def __init__(self,config_file="config.json"):
        self.config_file=config_file
        self.data=self.load_config()

    def load_config(self):
        if Path(self.config_file).exists():return json.load(open(self.config_file))
        return {}

    def get_value(self,key,default=None):
        return self.data.get(key,default)

    def update_config(self,updates):
        self.data.update(updates)
        with open(self.config_file,"w") as f:json.dump(self.data,f)

DEFAULT_timeout=30
max_retries=3

Wählen Sie alle zutreffenden Optionen:

Frage15 Zusammengesetzte Anweisungen

Was ist der korrekte Weg, diese zusammengesetzte Anweisung aus Übung 2.6 umzuschreiben?

if Path(self.config_file).exists():return json.load(open(self.config_file))
Frage16 Namenskonventionen

Wie sollten die folgenden Variablen auf Modulebene laut PEP 8 umbenannt werden?

DEFAULT_timeout=30
max_retries=3
© 2026 Dominik Mueller   •  Powered by Soopr   •  Theme  Moonwalk