Hallo zusammen,
ich will im folgenden Programm falls der else Fall eintrifft das die if Anweisung von vorne beginnt oder das komplette Programm von vorne anfängt...
if option == 2:
pick=int(input("1=Add name,2=delete Name\n---->"))
if pick == 1:
add_name=input("Please enter the name you want to add: ")
class_list.append(add_name)
if pick == 2:
delete_name=int(input("Please enter the number of the name you want to remove: "))
delete_name=delete_name-1
del class_list[delete_name]
else:
Habe es mit break und continue versucht wie in der while Schleife, das funktioniert bei der if anweisung aber anscheinend nicht.. wie ihr seht bin ich noch blutiger Anfänger.
Schon mal danke im Vorfeld!
Gruß
if-Anweisung mit Neustart
Sirius3 hat recht.
Nächste mal bitte den Code Button benutzen dann kann man es leichter lesen ... naja nebenbei würde Ich deine liste nicht class nennen....
Ich will dir nur grob zeigen wie es aussieht in dem Programm so wie du es programmiert ist dort aber ein Fehler drinne.
Nächste mal bitte den Code Button benutzen dann kann man es leichter lesen ... naja nebenbei würde Ich deine liste nicht class nennen....
Code: Alles auswählen
namen_liste = []
while True:
pick = int(input("1=Add name,2=delete Name"))
if pick == 1:
add_name = input("Please enter the name you want to add: ")
namen_liste.append(add_name)
continue
elif pick == 2:
delete_name = int(input("Please enter the number of the name you want to remove: "))
delete_name = delete_name - 1
del namen_liste[delete_name]
continue
else:
break
Eine Vision ohne Aktion bleibe eine Illusion
-
- User
- Beiträge: 5
- Registriert: Samstag 23. Januar 2021, 09:09
Vielen Dank für Eure Antworten. Hab es wie ihr gesagt habt mit der while- schleife gelöst, bin da irgendwie auf dem Schlauch gestanden.
Danke noch mal!
Danke noch mal!
-
- User
- Beiträge: 5
- Registriert: Samstag 23. Januar 2021, 09:09
Vielen Dank für Eure Antworten. Hab es wie ihr gesagt habt mit der while- schleife gelöst, bin da irgendwie auf dem Schlauch gestanden.
Danke noch mal!
Danke noch mal!
mit ein bisschen try und except kann man die Eingabe auch so gestalten, dass keine ungültigen Werte weiterverarbeitet werden und das Programm nicht bei einer fehlerhaften Eingabe abstürzt.
Außerdem würde ich nicht del benutzen um Elemente einer Liste zu löschen, sondern entweder remove() um über den Wert zu entfernen, oder pop() um über den Index zu entfernen. Bei deiner Methode fehlt aber noch eine Möglichkeit den Index eines Namens herauszubekommen, das kannst du wie in meinem Beispiel mit enumerate() machen oder auch mit index().
Code: Alles auswählen
def main():
names = []
while True:
while True:
try:
choice = int(input("Enter your choice:\n1 - add name\n2 - delete name\n3 - show name list\n> "))
if choice in (1,2,3):
break
else:
raise ValueError
except ValueError:
print("invalid input")
if choice == 1:
name_to_add = input("Please enter the name you want to add: ")
names.append(name_to_add)
print(f"{name_to_add} was added to list.")
elif choice == 2:
name_to_delete = input("Please enter the name you want to delete: ")
if name_to_delete in names:
names.remove(name_to_delete)
print(f"{name_to_delete} was deleted")
else:
print(f"{name_to_delete} is not in list.")
elif choice == 3:
for index, name in enumerate(names):
print(f"{index} - {name}")
print()
@Jankie: hier hast Du zu viele Abstraktionsebenen in einer Funktion. Das Einlesen und Validieren einer Eingabe und die Verarbeitung.
Teile main in mehrere Funktionen:
Wenn die Design-Entscheidung ist, dass der Name über den Index entfernt werden soll, dann ist del das Mittel der Wahl, wenn mit dem Rückgabewert von pop gar nichts gemacht wird.
Teile main in mehrere Funktionen:
Code: Alles auswählen
def input_choice():
while True:
try:
choice = int(input("Enter your choice:\n1 - add name\n2 - delete name\n3 - show name list\n> "))
except ValueError:
pass
else:
if choice in (1,2,3):
return choice
print("invalid input")
def main():
names = []
while True:
choice = input_choice()
if choice == 1:
name_to_add = input("Please enter the name you want to add: ")
names.append(name_to_add)
print(f"{name_to_add} was added to list.")
elif choice == 2:
name_to_delete = input("Please enter the name you want to delete: ")
if name_to_delete in names:
names.remove(name_to_delete)
print(f"{name_to_delete} was deleted")
else:
print(f"{name_to_delete} is not in list.")
elif choice == 3:
for index, name in enumerate(names, 1):
print(f"{index} - {name}")
print()