Python lambda?

Was macht lambda in diesem Code und wofür steht x?

def sort_tasks_by_due_date():
tasks.sort(key=lambda x: datetime.strptime(x["due_date"], "%d.%m.%Y"))

Hier der Komplette Code:

from datetime import datetime, timedelta
tasks = []
def add_task(description, due_date, priority):
task = {"description": description, "due_date": due_date, "priority": priority, "completed": False}
tasks.append(task)
def mark_completed(task_index):
if 0 <= task_index < len(tasks):
tasks[task_index]["completed"] = True
else:
print("Ungültiger Index für Aufgabe!")
def remove_task(task_index):
task_index = int(task_index)
if 0 <= task_index < len(tasks):
del tasks[task_index]
else:
print("Ungültiger Index für Aufgabe!")
def show_tasks():
for task_number, task in enumerate(tasks):
status = "Erledigt" if task["completed"] else "Offen"
print(f"{task_number + 1}. Beschreibung: {task['description']}, Fälligkeitsdatum: {task['due_date']}, Priorität: {task['priority']} - {status}")
def sort_tasks_by_due_date():
tasks.sort(key=lambda x: datetime.strptime(x["due_date"], "%d.%m.%Y"))
def remind_near_due_dates(days_before):
today = datetime.today()
for task in tasks:
due_date = datetime.strptime(task["due_date"], "%d.%m.%Y")
#Das Datum der Aufgabe minus des heutigen Datums, gleichviele Tage wie die Festgelgten Tage ist, dann gib eine Erinnerung aus.
if due_date - today <= timedelta(days=days_before) and not task["completed"]:
print(f"Erinnerung: Die Aufgabe '{task['description']}' ist bald fällig am {task['due_date']}!")
while True:
print("\n--- ToDo-Liste ---")
print("1. Aufgabe hinzufügen")
print("2. Aufgabe als erledigt markieren")
print("3. Aufgabe entfernen")
print("4. Aufgaben anzeigen")
print("5. Aufgaben nach Fälligkeitsdatum sortieren")
print("6. Erinnerung an nahende Fälligkeitsdaten einrichten")
print("7. Beenden")
choice = input("Wähle eine Option: ")
if choice == "1":
description = input("Beschreibung: ")
while True:
due_date = input("Fälligkeitsdatum (TT.MM.JJJJ): ")
try:
due_date_obj = datetime.strptime(due_date, "%d.%m.%Y")
if due_date_obj < datetime.today():
print("Fehler: Das Datum liegt in der Vergangenheit! Bitte geben Sie ein zukünftiges Datum ein.")
else:
break
except ValueError:
print("Fehler: Ungültiges Datumsformat! Bitte geben Sie das Datum im Format TT.MM.JJJJ ein.")
priority = input("Priorität: ")
add_task(description, due_date, priority)
elif choice == "2":
task_index = int(input("Index der erledigten Aufgabe: ")) - 1
mark_completed(task_index)
elif choice == "3":
try:
task_index = int(input("Index der zu entfernenden Aufgabe: ")) - 1
remove_task(task_index)
except ValueError:
print("Ungültige Eingabe! Bitte geben Sie eine Ganzzahl ein.")
elif choice == "4":
show_tasks()
elif choice == "5":
sort_tasks_by_due_date()
elif choice == "6":
try:
days_before = int(input("Tage vor Fälligkeitsdatum für Erinnerung: "))
remind_near_due_dates(days_before)
except ValueError:
print("Gib eine gültige Eingabe ein!")
elif choice == "7":
break
else:
print("Ungültige Auswahl!")
Programmiersprache, Python, Lambda, Python 3
Epic's "Core" Error running Lua task: [4C6A178280F8DC08]?

Ich spiele gerade ein wenig mit der Epic "Core"-Engine rum. Die benutzt die Lua-Version 5.3.6. - Ich bin absoluter Laie was coden angeht. Hab als Kind mal das ein oder andere Programm mit Visual Basic geschrieben und war stolz drauf. Das wars dann aber auch. Ich möchte verstehen wo der Fehler liegt.

Ich versuche das "META Inventory System" in Kombination mit dem "NPC AI Kit" zum laufen zu kriegen. Sobald ich einen NPC angreife kommt folgende Fehlermeldung:

Error running Lua task: [4C6A178280F8DC08] NPCKitTagGetter:164: attempt to index a nil value (local 'obj')

Soweit ich weiß heißt "nil" = non-existence or nothingness, bedeutet das der Code findet ein Objekt nicht?

Im Code selbst an der besagten Stelle, Line164: if obj.serverUserData and obj.serverUserData.combatTags then tagTable = obj.serverUserData.combatTags

Der NPC kann mir schaden zufügen und mich sogar besiegen. Sobald ich den NPC angreife nimmt er von diesem einen Angriff Schaden und danach keinen mehr, ab meinem ersten Angriff kann er mir auch keinen Schaden mehr zufügen. Das Game freezed jetzt nicht, aber es bricht halt die Gamemechanic so das es keinen Sinn mehr macht weiter zu spielen.

Ich bin da jetzt schon seit gut 4-5 Stunden dran.. und Tutorials zu dem Fehler gibt es auch nicht. Bin auch schon auf einem Discord extra für Lua Scripter gegangen, bisher konnte aber niemand helfen.

Vielleicht findet sich ja hier ein schlafloser Programmierer in Helferlaune. :)

Wenn noch was gebraucht wird an Info, gebe ich die natürlich. Ich lass den Tab mal offen und versuch weiter das Ding zum laufen zu kriegen.

System, Core, Error, lua, meta, nil, Programmiersprache, Epic, inventory

Meistgelesene Beiträge zum Thema Programmiersprache