Kochbuch
@non191
Wenn Du mal zeigst, was Du bisher hast, kann man Dir hier auch gerne helfen. Einfach Deinen Code innerhalb code-tags posten...
mutetella
Wenn Du mal zeigst, was Du bisher hast, kann man Dir hier auch gerne helfen. Einfach Deinen Code innerhalb code-tags posten...
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
@nono191
Und auch verstanden, was da im Einzelnen passiert? Sonst macht das kaum Sinn, schon gleich neue Funktionalität einzubauen.
Ansonsten nochmal der Hinweis, die Dokumentation zu bemühen. Auch wenn einen das erstmal erschlagen will... ohne Dokumentation lesen geht's einfach nicht. Jedenfalls wirst Du dort eine Methode finden, mit der Du Elemente aus einem dictionary bzw. aus einer Liste entfernen kannst. Und dann noch der Hinweis: Zum Hinzufügen hab' ich eine Funktion ``add`` erstellt, zum Entfernen würde ich eine Funktion ``remove`` schreiben.
mutetella
Und auch verstanden, was da im Einzelnen passiert? Sonst macht das kaum Sinn, schon gleich neue Funktionalität einzubauen.
Ansonsten nochmal der Hinweis, die Dokumentation zu bemühen. Auch wenn einen das erstmal erschlagen will... ohne Dokumentation lesen geht's einfach nicht. Jedenfalls wirst Du dort eine Methode finden, mit der Du Elemente aus einem dictionary bzw. aus einer Liste entfernen kannst. Und dann noch der Hinweis: Zum Hinzufügen hab' ich eine Funktion ``add`` erstellt, zum Entfernen würde ich eine Funktion ``remove`` schreiben.
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
@nono191: Beides müsstest Du eigentlich näher beschreiben damit wir nicht raten müssen. Gewöhn Dir mal an nicht einfach so zusammenhanglose knappe Fragen zu schreiben sondern beschreibe ausführlicher was Du machen möchtest, was Du tatsächlich machst, also *Quelltext*, und was dann nicht funktioniert. Also entweder eine konkrete Fehlermeldung/Ausnahme, am besten 1:1 in den Beitrag kopieren, oder beschreib was passiert und was Du stattdessen erwartet hättest. Am besten auch warum Du etwas anderes erwartet hast als dann letztendlich passiert ist.
Bei dem \ würde ich jetzt mal raten das Du Dir die Dokumentation bezüglich Zeichenkettenliteralen mal durchlesen solltest und was dort ein \ bedeutet. Das wird im Tutorial in der Python-Dokumentation zum Beispiel erklärt.
Bei dem \ würde ich jetzt mal raten das Du Dir die Dokumentation bezüglich Zeichenkettenliteralen mal durchlesen solltest und was dort ein \ bedeutet. Das wird im Tutorial in der Python-Dokumentation zum Beispiel erklärt.
@BlackJack: Ich kopiere zum Beispiel einen Text aus der Dokumentation und will ihn mit -v eifügen dann steht aber das Programm still und ich muss es beenden...
Und wenn ich mit alt-shift-7 ein Backslash schreiben will schreibt es nichts.
Und wenn ich mit alt-shift-7 ein Backslash schreiben will schreibt es nichts.
Zuletzt geändert von nono191 am Mittwoch 7. Oktober 2015, 18:25, insgesamt 1-mal geändert.
@nono191: Wo willst Du einfügen? Welches Programm steht still? Was ist ”es” hier?
@all: Was habe ich hier falsch gemacht?
Code: Alles auswählen
from collections import defaultdict as DefaultDict
import json
def remove(recipes):
if recipes:
category = get_category(
"Aus welcher Kategorie sollen Rezepte gelöscht werden? ",recipes
)
for recipe in recipes[category]:
print "\n{}\n***\n"
else:
print "Keine Rezepte vorhanden!\n"
recipes[category].remove(raw_input("Welches Rezept willst du löschen?"))
def load():
try:
with open("recipes.txt", "w") as file_:
recipes = DefaultDict(list, json.load(file_))
except IOError:
recipes = DefaultDict(list)
return recipes
def save(recipes):
with open ("recipes.txt", "w") as file_:
json.dump(recipes, file_)
def get_category(prompt, recipes):
categories = recipes.keys()
for number, name in enumerate(categories):
print "{:2d}: {}".format(number, name)
category = raw_input(prompt)
try:
category = categories[int(category)]
except (ValueError, IndexError):
pass
return category
def add(recipes):
try:
recipe = raw_input("Ihr Rezepttext(Ctrl-C beendet):")
except KeyboardInterrupt:
return
category = get_category(
"In welche Kategorie soll das Rezept hizugefügt werden? ",recipes
)
recipes[category].append(recipe)
def show(recipes):
if recipes:
category = get_category(
"Aus welcher Kategorie sollen Rezepte gezeigt werden? ", recipes
)
for recipe in recipes[category]:
print "\n{}\n***\n".format(recipe)
else:
print "Keine Rezepte vorhanden!\n"
def run():
menu = [
("Neues Rezept", add),
("Zeige Rezepte", show)
("Lösche Rezept", remove)
]
recipes = load()
while True:
print
for item_number, item in enumerate(menu):
print "{:2d}: {}".format(item_number, item[0])
try:
choice = int(raw_input("Ihre Wahl (Ctrl-C beendet): "))
except (ValueError, IndexError):
print "Bitte gültige Nummer eingeben...",
except KeyboardInterrupt:
break
print
menu[choice][2](recipes)
save(recipes)
run()
@all: Was mache ich jetzt falsch?
Code: Alles auswählen
from collections import defaultdict as DefaultDict
import json
def remove(recipes):
if recipes:
category = get_category(
"Aus welcher Kategorie sollen Rezepte gelöscht werden? ",recipes
)
for recipe in recipes[category]:
print "\n{}\n***\n"
else:
print "Keine Rezepte vorhanden!\n"
recipes[category].remove(raw_input("Welches Rezept willst du löschen?"))
def load():
try:
with open("recipes.txt", "w") as file_:
recipes = DefaultDict(list, json.load(file_))
except IOError:
recipes = DefaultDict(list)
return recipes
def save(recipes):
with open ("recipes.txt", "w") as file_:
json.dump(recipes, file_)
def get_category(prompt, recipes):
categories = recipes.keys()
for number, name in enumerate(categories):
print "{:2d}: {}".format(number, name)
category = raw_input(prompt)
try:
category = categories[int(category)]
except (ValueError, IndexError):
pass
return category
def add(recipes):
try:
recipe = raw_input("Ihr Rezepttext(Ctrl-C beendet):")
except KeyboardInterrupt:
return
category = get_category(
"In welche Kategorie soll das Rezept hizugefügt werden? ",recipes
)
recipes[category].append(recipe)
def show(recipes):
if recipes:
category = get_category(
"Aus welcher Kategorie sollen Rezepte gezeigt werden? ", recipes
)
for recipe in recipes[category]:
print "\n{}\n***\n".format(recipe)
else:
print "Keine Rezepte vorhanden!\n"
def run():
menu = [
("Neues Rezept", add),
("Zeige Rezepte", show),
("Lösche Rezept", remove)
]
recipes = load()
while True:
print
for item_number, item in enumerate(menu):
print "{:2d}: {}".format(item_number, item[0])
try:
choice = int(raw_input("Ihre Wahl (Ctrl-C beendet): "))
except (ValueError, IndexError):
print "Bitte gültige Nummer eingeben...",
except KeyboardInterrupt:
break
print
menu[choice][2](recipes)
save(recipes)
run()
@Sirius3:
0: Neues Rezept
1: Zeige Rezepte
2: Lösche Rezept
Ihre Wahl (Ctrl-C beendet): 2
Traceback (most recent call last):
File "/Python/easygui/Viel Glück.py", line 80, in <module>
run()
File "/Python/easygui/Viel Glück.py", line 77, in run
menu[choice][2](recipes)
IndexError: tuple index out of range
>>>
0: Neues Rezept
1: Zeige Rezepte
2: Lösche Rezept
Ihre Wahl (Ctrl-C beendet): 2
Traceback (most recent call last):
File "/Python/easygui/Viel Glück.py", line 80, in <module>
run()
File "/Python/easygui/Viel Glück.py", line 77, in run
menu[choice][2](recipes)
IndexError: tuple index out of range
>>>
@nono191
mutetella
Code: Alles auswählen
>>> (1, 2, 3, 4, 5)[0]
1
>>> (1, 2, 3, 4, 5)[4]
5
>>> (1, 2, 3, 4, 5)[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
@nono191: Den Quelltext. Deine Einstellung. Deine Art zu Fragen. Deinen Wissenstand über Python-Grundlagen.
@nono191
Wie Sirius3 schon sagte: Du versuchst auf ein Tupleelement zuzugreifen, das es nicht gibt. Den Teil musst Du ändern. Überleg' doch mal, wasbedeutet und was macht.
mutetella
Wie Sirius3 schon sagte: Du versuchst auf ein Tupleelement zuzugreifen, das es nicht gibt. Den Teil musst Du ändern. Überleg' doch mal, was
Code: Alles auswählen
menu = [
('Neues Rezept', add),
('Zeige Rezepte', show),
('Lösche Rezept', remove)
]
Code: Alles auswählen
menu[choice][2](recipes)
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )