Programmiersprache – die besten Beiträge

Frage zu Python im Editor Thonny: Optische Illusionen?

Hallo Zusammen,
wir müssen optische Illusionen mithilfe von 3 Befehlen in der Programmiersprache Python angeben. Editor wird Thonny benutzt.

Die Befehle sind:

rectangle(1,2,3,4) line (1,2,3,4) ellypse (1,2,3,4)

Damit müssen wir optische Illusionen darstellen oder zeichnen lassen.

Der Lehrer hat es uns gezeigt, wie es funktioniert am Computer. Ich habe aber keine weiteren Übungen mehr dazu und finde im Internet dazu auch keine Videos/Tutorials oder Beschreibungen.

Kennt jemand hier Unterlagen oder auch Übungen zu dem Thema? Ich besuche das Fach IMP (Informatik/Mathe/Physik) und habe bald eine Arbeit dazu. Leider haben wir schriftlich rein gar nichts. In der Arbeit bekommen wir dann eine Aufgabe zu dem Thema, die wir dann auf Papier nachbauen müssen oder erklären/verbessern müssen. Mir fällt das nicht so leicht und ich hätte gerne noch Übungsmaterial dazu. Leider kann mir der Lehrer auch nicht weiterhelfen, er sagte zu mir, dass ich es im Utnerricht ja verstanden hätte.

Bei der letzten Arbeit dachte ich das auch, jedoch war dann die Arbeit überhaupt nicht gut und ich habe es falsch gelöst. Nun möchte ich mich besser vorbereiten, habe aber kein Material und finde auch hier im Internet zu diesem Thema praktisch nichts. Kennt sich jemand damit aus und weiß, wo ich irgendwelches Material/Informationen zum Lernen/Üben bekommen könnte?

Vielen Dank und viele Grüße

Programmiersprache, Python

Python Chatbot-Fehler: Wo liegt hier das Problem?

Ich programmiere jetzt seit mehreren Stunden diesen Chatbot und finde den Fehler nicht, warum er es nicht schafft, auf die Frage: gut die richtige Antwort zu geben.

Hier ist mein Code und wenn ihr den Fehler findet, wäre ich euch sehr dankbar.

main.py:

class NeuroSama:
    def __init__(self):
        self.known_topics = self.load_topics("knowledge_base.txt")
        self.conversation_history = []
        self.load_conversation_log("conversation_log.txt")

    def respond(self, message):
        response = ""

        # Hier wird die Eingabe in Kleinbuchstaben umgewandelt, bevor sie verarbeitet wird
        message = message.lower()

        if self.is_new_topic(message):
            response = "Nein, was ist " + message + "?"
        else:
            response = self.get_response_from_file(message, "generate_response.py")

        self.conversation_history.append({"input": message, "output": response})
        return response

    def is_new_topic(self, topic):
        return topic.lower() not in self.known_topics

    def get_response_from_file(self, topic, filename):
        try:
            response_module = __import__(filename.split('.')[0])
            return response_module.generate_response(topic, self.conversation_history)
        except FileNotFoundError:
            return "Die Datei wurde nicht gefunden."
        except AttributeError:
            return "Die Funktion wurde nicht gefunden."

    def save_conversation(self, filename):
        with open(filename, 'w') as file:
            for convo in self.conversation_history:
                file.write(f"Eingabe: {convo['input']}\n")
                file.write(f"Antwort: {convo['output']}\n")
                file.write("\n")

    def load_topics(self, filename):
        known_topics = set()
        try:
            with open(filename, 'r') as file:
                for line in file:
                    known_topics.add(line.strip().lower())
        except FileNotFoundError:
            print("Datei nicht gefunden. Neue Datei wird erstellt.")
            open(filename, 'w').close()
        return known_topics

    def load_conversation_log(self, filename):
        try:
            with open(filename, 'r') as file:
                for line in file:
                    if line.startswith("Eingabe:"):
                        input_text = line[len("Eingabe:"):].strip()
                        output_text = file.readline()[len("Antwort:"):].strip()
                        self.conversation_history.append({"input": input_text, "output": output_text})
        except FileNotFoundError:
            print("Konversationsprotokoll nicht gefunden.")

# Beispielnutzung
neuro_sama = NeuroSama()

while True:
    user_input = input("Du: ")

    if user_input.lower() == 'exit':
        neuro_sama.save_conversation("conversation_log.txt")
        break

    response = neuro_sama.respond(user_input)
    print("Neuro-Sama:", response)

generate_response.py:

def generate_response(topic, conversation_history):
    if len(conversation_history) > 0:
        last_input = conversation_history[-1]['input'].lower()
        if 'hallo' in last_input:
            return "Hallo zurück!"
        elif any(variant in last_input for variant in ['gut', 'gutes', 'gutem', 'guter']):
            return "Es ist großartig zu hören, dass es dir gut geht!"
        else:
            return "Das ist interessant!"
    else:
        return "Ich bin mir nicht sicher, wie ich darauf reagieren soll."

Hier sind die Antworten, die ich derzeit bekommen habe:

= RESTART: C:\Users\####\Desktop\####\main.py
Du: hallo
Neuro-Sama: Hallo zurück!
Du: Hallo
Neuro-Sama: Hallo zurück!
Du: gut
Neuro-Sama: Nein, was ist gut?
Du: 
= RESTART: C:\Users\####\Desktop\####\main.py
Du: gut
Neuro-Sama: Nein, was ist gut?
Du: Gut
Neuro-Sama: Nein, was ist gut?
Du: 
Bot, Programmiersprache, ChatGPT

Meistgelesene Beiträge zum Thema Programmiersprache