Ich hab eine Aufgabe zum Thema Fehlersuche, leider hab ich keine Lösungen dazu.
Könnte mir jemand dabei helfen insgesamt 10 Fehler zu finden (inkl. Verbesserung?)
Vielen Dank schonmal!


Hier der Link zum Screenshot der Aufgabe
Heißt das, dass du keinen einzigen Fehler siehst? Einige sind schon sehr offensichtlich. Wenn du wirklich keine Fehler siehst -> Grundlagentutorial auf docs.python.org durcharbeiten.leider hab ich keine Lösungen dazu.
Aufgabe 4
Es ist ein Python Programm gegeben, das eine Textdatei mit Inhalt füllt. Die Anzahl der Zeilen und der Text pro Zeile wird vom Benutzer eingegeben. Danach wird die Datei ausgelesen und die einzelnen Zeilen in eine Liste mit dem Namen „list“ geschrieben. Zum Schluss wird die Liste ausgegeben, falls die Datei höchstens 10 Zeilen hat.
Finden Sie die 10 Fehler im Quellcode. Markieren Sie die Stellen im Programm und schreiben Sie den korrigierten Quellcode.
Code: Alles auswählen
from sys import argv script, filename == argv file = open(filename) lines = int(input("Wie viele Zeilen sollen in die Datei geschrieben werden?") for i in range(0, lines): text = input(f"Bitte nächste Zeile für {filename} eingeben: ") file.write(text+"\n") file.close() file = open(file) list = () i=0 for x in file: list.append(x) i +=1 if 0 <i<= 10: print("Die Datei hat {i} Zeilen.") print("Hier ist der Inhalt: ", l) el if i > 10: print("Die Datei ist zu groß, um hier ausgegeben zu werden.") else i == 0: print("Die Datei ist leider leer.")
Code: Alles auswählen
#!/usr/bin/env python3
from itertools import islice
from sys import argv
ENCODING = "utf-8"
MAX_OUPUT_LINES = 10
def ask_positive_integer(prompt):
while True:
try:
result = int(input(prompt))
except ValueError:
print("Bitte eine Zahl eingeben!")
else:
if result >= 0:
return result
print("Die Zahl muss positiv sein!")
def create_file(filename):
with open(filename, "w", encoding=ENCODING) as file:
line_count = ask_positive_integer(
"Wie viele Zeilen sollen in die Datei geschrieben werden? "
)
file.writelines(
input(f"Bitte nächste Zeile für {filename} eingeben: ") + "\n"
for _ in range(line_count)
)
def process_file(filename):
with open(filename, "r", encoding=ENCODING) as file:
lines = list(islice(file, MAX_OUPUT_LINES + 1))
if not lines:
print("Die Datei ist leider leer.")
elif len(lines) <= MAX_OUPUT_LINES:
print(f"Die Datei hat {len(lines)} Zeilen.")
print("Hier ist der Inhalt:", lines)
else:
print("Die Datei ist zu gross, um hier ausgegeben zu werden.")
def main():
if len(argv) != 2:
print(f"Verwendung: {argv[0]} <dateiname>")
return
create_file(argv[1])
process_file(argv[1])
if __name__ == "__main__":
main()