Der spezielle fehler ist, dass Du nach `try:` keine neue Zeile angefangen hast und damit Python denkt, es kommt kein Block mehr. Auch sonst sind die Einrückungen nicht korrekt.
for mit range ist ein Antipattern, da man direkt über die Elemente der Liste iterieren kann, braucht man zusätzlich einen Index nimmt man enumerate. Die Argumente von `print` haben viel zu viele Klammern und vor der Klammer eines Funktionsaufrufs schreibt man kein Leerzeichen.
`int` gibt einen Wert zurück, den Du einer Variable zuweisen mußt.
`eval` sollte man nicht benutzen. pop und insert zusammen wäre einfach nur eine Zuweisung.
Code: Alles auswählen
while True:
for i, value in enumerate(self.Werte, 1):
print("Wert Nr. {} = {}".format(i, value))
edit = input("Welchen Wert bearbeiten?")
if edit == "b":
break
try:
edit = int(edit)
while not 0 < edit <= len(self.Werte)
edit = int(input("Bitte einen vorhandenen Wert eingeben"))
wertneu = int(input("Bitte neuen Wert eingeben"))
self.Werte[i] = wertneu
print(self.Werte)
except ValueError:
print("Bitte eine Zahl eingeben")