Wo ist der Fehler in meinem Python Code (MQTT)?

Ich habe ein Python Script erstellt, damit später bei Nachrichten bestimmte befehle ausgeführt werden. Beim ersten Script(Openhab_Mqtt.py) habe ich beim Testen 3 Terminals aufgemacht und beim 2.(Openhab_Mqttv2.py) auch genau gleiche Sorgehensweise.

Im 1. Terminal habe ich das Python Script gestartet mit:

python Openhab_Mqttv2.py

Output:
Script 1: Connected to MQTT broker
Script 2: Connected to MQTT broker
Connected to MQTT broker

Im 2. Terminal habe ich die Nachricht ausgegeben bei Nachrichten mit:

mosquitto_sub -t "main/messager" -v -u xxx -P xxx

Output(Nach T3):
Script 1: main/messager test
Script 2: main/messager test

Und im 3. Terminal habe ich eine Nachricht gesendet mit:

mosquitto_pub -t "main/messager" -m "test" -u xxx-P xxx  

Output:
Script 1: Payload: test und BLA...
Script 2:

Ich kann einfach nicht den Fehler finden, warum es bei Openhab_Mqtt.py funktioniert und bei Openhab_Mqttv2.py nicht funktioniert.

Openhab_Mqtt.py DATA:

import paho.mqtt.client as mqtt
import os
import time
import bme280_temp
import smbus2
import bme280
import threading

def on_subscribe(client, userdata, mid, granted_qos):
 print("Subscribed to topic : " + str(mid) +" with QoS" + str(granted_qos))


def on_connect(client, userdata, flags, rc):
 print("Connected to MQTT broker")


def on_message(client, userdata, msg): 
 print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload))
 print("Payload: " + msg.payload.decode())
 if msg.payload.decode() == "send_signal":
  print("Calling script to send signal...")
  IR_Signal()
 if msg.payload.decode() == "temp_bme280_start":
  print("Calling script to for temperature start...")
  userdata["counter"] += 1
  print(str(userdata["counter"]))
  client.publish("frame/monitor", "START", qos=0, retain=True)
  Temp_sensor() 
 if msg.payload.decode() == "temp_bme280_stop":
  print("Calling script to for temperature stop...")
  userdata["counter"] -= 1
  print(str(userdata["counter"]))
  client.publish("frame/monitor", "STOP", qos=0, retain=True)
 if msg.payload.decode() == "test":
  print("BLA...")  
  print(str(["counter"])) 
  os.system("vcgencmd measure_temp") 
 else:
  pass    



#Bme280_basic Temperature
address = 0x76
bus = smbus2.SMBus(1)
calibration_params = bme280.load_calibration_params(bus, address)

def Temp_sensor():
 data = bme280.sample(bus, address, calibration_params)
 temperature_celsius = data.temperature      
 print("Temperature: {:.2f} °C".format(temperature_celsius))
 time.sleep(2)
    
 
def IR_Signal():
 os.system("irsend SEND_ONCE pioneer_vsx-301 KEY_POWER")
 print ("Signal Send!")


client = mqtt.Client()
client.on_message = on_message 
client.on_connect = on_connect
client.user_data_set({"counter": 0})
client.username_pw_set( "xx" , "xx" )
client.connect( "192.x.x.x", 1883, 60)
client.subscribe( "main/messager" , qos=0)


client.loop_forever() 

Openhab_Mqttv2.py

import paho.mqtt.client as mqtt
import time
import smbus2
import bme280
import threading


# Getting information
def on_subscribe(client, userdata, mid, granted_qos):
 print("Subscribed to topic : " + str(mid) +" with QoS" + str(granted_qos))
                                                                 
def on_connect(client, userdata, flags, rc):
 print("Connected to MQTT broker")


# Damit loops nicht am anfang durchstarten 
TempLoop_running = False


# Checking for messages to execute code
def on_message(client, userdata, msg):
 print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload))
 print("Payload: " + msg.payload.decode())
 if msg.payload.decode() == "Temp_Start":
  start_TempLoop()
 if msg.payload.decode() == "Temp_Stop":
  stop_TempLoop()
 if msg.payload.decode() == "test":
  print("TESTING...")
  client.publish("main/messager", "START", qos=0, retain=True)
 else:
  pass



# Execute things here ->


# Getting Temperature
address = 0x76
bus = smbus2.SMBus(1)
# Load calibration parameters
calibration_params = bme280.load_calibration_params(bus, address)
def Temperature_loop():
 global TempLoop_running
 while TempLoop_running:
  data = bme280.sample(bus, address, calibration_params)
  #Extract temperature, pressure, and humidity
  temperature_celsius = data.temperature      
  #Print the readings
  print("Temperature: {:.2f} °C".format(temperature_celsius))
  # Nachricht an das entsprechende Topic senden
  client.publish("Temp/Loop", "Temperature: {:.2f} °C".format(temperature_celsius))
  # Wartezeit, um die Ausgabe zu verlangsamen
  time.sleep(2)
# Funktion zum Starten der Temperatur Schleife
def start_TempLoop():
 global TempLoop_running
 TempLoop_running = True
 threading.Thread(target=Temperature_loop).start()
# Funktion zum Stoppen der Temperatur Schleife
def stop_TempLoop():
 global TempLoop_running
 TempLoop_running = False



# Set general data
client = mqtt.Client()
client.on_message = on_message 
client.on_connect = on_connect
client.connect( "192.x.x.x", 1883, 60)
client.username_pw_set( "xx", "xx" )
client.subscribe( "main/messager", qos=0)


# Loop forever
client.loop_forever()
Code, Python, Terminal, Message, Python 3, Raspberry Pi
Warum funktioniert mein Code auf dem Raspberry Pi nicht?

Hallo,

Ich programmiere gerade einen Sprachassistenten und auf meinem Windows PC hat alles super funktioniert, aber als ich das Programm auf den Pi geladen und das Programm gestartet habe, kam diese Fehlermeldung:

Traceback (most recent call last):

 File "/home/grafjulian08/PycharmProjects/voiceAssistant/main.py", line 1164, in <module>

  execute()

 File "/home/grafjulian08/PycharmProjects/voiceAssistant/main.py", line 658, in execute

  if detect_wake_word(): # Falls das Wake-Word erkannt wurde

    ^^^^^^^^^^^^^^^^^^

 File "/home/grafjulian08/PycharmProjects/voiceAssistant/main.py", line 139, in detect_wake_word

  recognizer.adjust_for_ambient_noise(source) # Hintergrundgeräusche anpassen

  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/home/grafjulian08/PycharmProjects/voiceAssistant/.venv/lib/python3.11/site-packages/speech_recognition/__init__.py", line 389, in adjust_for_ambient_noise

  assert source.stream is not None, "Audio source must be entered before adjusting, see documentation for ``AudioSource``; are you using ``source`` outside of a ``with`` statement?"

      ^^^^^^^^^^^^^^^^^^^^^^^^^

AssertionError: Audio source must be entered before adjusting, see documentation for ``AudioSource``; are you using ``source`` outside of a ``with`` statement?

Ich habe ein gutes Mikrofon am Pi, welches auch funktioniert, und ich habe schon viel am Code geändert, aber es geht nicht weg. Woran kann das sonst liegen?

Wenn ich Teile meines Codes zeigen soll, könnt ihr das sagen.

Freundliche Grüsse

cmd, Code, künstliche Intelligenz, Programmiersprache, Python, Python 3, Raspberry Pi, Pycharm, ChatGPT
Python variable ändern (erhöhen oder verringern)?

Ich bin ein absoluter Anfänger was programmieren angeht, lerne aber immer mehr und mehr dazu. Ich möchte für etwas ein Python Script erstellen, was auf meinem Pi die ganze Zeit läuft und die MQTT Nachrichten mitliest, um diese auszuführen und/oder eine Nachricht zurück zu senden.

Ich habe versucht eine Nachricht zu senden der den wert der Variable um 1 erhöhen soll und damit auch die While schleife aktivieren soll. Jedoch funktioniert es nicht, da die variable nicht in "def on_message" verfügbar ist und es die Erhöhung quasi nicht nach außen austrägt.

Was gibt es für Möglichkeiten die variable zu erhöhen, sodass sich die while schleife aktiviert? Und gibt es auch andere Ansätze wie man eine diese Schleife machen kann?

Script:

import paho.mqtt.client as mqtt
import os
import subprocess
import time
import smbus2
import bme280

#Bme280_basic Temperature
# BME280 sensor address (default address)
address = 0x76
# Initialize I2C bus
bus = smbus2.SMBus(1)
# Load calibration parameters
calibration_params = bme280.load_calibration_params(bus, address)
# to activate loop
y = int(1)
#Temperature loop
while y == 2:
      data = bme280.sample(bus, address, calibration_params)

      # Extract temperature, pressure, and humidity
      temperature_celsius = data.temperature      
      # Print the readings
      print("Temperature: {:.2f} °C".format(temperature_celsius))
      # Wait for a few seconds before the next reading
      time.sleep(2)
      #print(y)
else:
      print("stopped") 
    
#Connection successfull
def on_connect(client, userdata, flags, rc):
  print("Connected to MQTT broker")


#Checking for messages to execute code
def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload))
    if msg.payload.decode() == "temp_bme280_start":
        print("Calling script to for temperature start...")
        # activate loop by adding 1
        y += 1   
        print(y)
    if msg.payload.decode() == "temp_bme280_stop":
        print("Calling script to for temperature stop...")
        # deactivate loop by remove 1
        y -= 1  
        print(y)  

def on_subscribe(client, userdata, mid, granted_qos):
    print("Subscribed to topic : " + str(mid) +" with QoS" + str(granted_qos))

client = mqtt.Client()

client.username_pw_set( "userxxx" , "passwortxxx" )

client.connect( "192.16x.xxx.xxx", 1883, 60)

client.subscribe( "frame/monitor" , qos=1)

client.on_connect = on_connect

client.on_message = on_message

client.loop_forever()

Würde Chat GPT sowas lösen können?

Code, Programmiersprache, Python, Script, Python 3, Raspberry Pi, while-Schleife, ChatGPT
Python | Decoratoren richtig nutzen?

Guten Tag,

ich arbeite in Moment an ein kleines Projekt mit einer API für den Privatgebrauch.

Ich möchte mithilfe von Decoratoren ein Event registrieren.
Dieser Code ist nur ein Beispielcode und soll nur darstellen, was ich genau erreichen möchte:

main.py:

import time


class Bot:
    _events: list = []


    def __init__(self):
        ... # Übergabe der Instanz...


    @classmethod
    def event(cls, func):
        ... # Überprüfen, ob es sich um ein gültiges Event handelt 


        cls._events.append(func) # Registiert das Event, falls es gültig ist
        return func
    
    @classmethod
    def event_handler(cls):
        for event in cls._events:
            if callable(event):
                event()


    def start(self) -> None:
        while True:
            time.sleep(1)
            ...


if __name__ == "__main__":
    bot = Bot()
    bot.start()

Alle Events, die es gibt:

class Events:
    """Events die Verfügbar sind"""
    
    def on_check(self, chat):
        ... 


    def messages(self, message):
        ...

Die Nutzung:

class MyBot:
    
    """Das ist ein gültiges Event -> Funkionsname vom Event richtig, Parameter richtig
    Kann also in die Registration aufgenommen werden"""
    @bot.event
    def on_check(self, chat):
        ...


    """Kein gültiges Event -> Sprich die Funktion event soll ein Fehler ausgeben"""
    @bot.event
    def on_name(self, name):
        ...


    """Hier fehlt der Parameter -> Sprich die Funktion event soll ein Fehler ausgeben"""
    @bot.event
    def messages(self):
        ...

Ich hoffe es ist durch den Kommentaren klar, was mein Ziel ist. Falls Unklarheiten bestehen, stehe ich gerne zur Verfügung.

Vielen dank für eure Hilfe!
Liebe Grüße

Bot, Code, Programmiersprache, Python, API, Python 3
Wie kann ich die Porcupine Wake-Word detection verwenden?

Hallo,

ich programmiere gerade einen Sprachassistenten und wollte nun die Wake-Word Funktion hinzufügen. Das ist mein Code:

def wait_for_wake_word(recognizer, source):
    keyword_path = r"C:\Users\User\PycharmProjects\voiceAssistant\hey-Luna_de_windows_v3_0_0 (2)\hey-Luna_de_windows_v3_0_0.ppn"
    sensitivity = 0.5
    access_key = "..."

    handle = pvporcupine.create(keywords=[keyword_path], sensitivities=[sensitivity], access_key=access_key)

    if handle is None:
        print("Fehler beim Erstellen des Porcupine-Objekts. Überprüfe den Dateipfad und den Zugriffsschlüssel.")
        return

    audio = pyaudio.PyAudio()

    try:
        print("Warte auf das Wake-Word...")

        stream = audio.open(
            rate=handle.sample_rate,
            channels=1,
            format=pyaudio.paInt16,
            input=True,
            frames_per_buffer=handle.frame_length)

        while True:
            pcm = stream.read(handle.frame_length)
            pcm = pcm[0: handle.frame_length]

            keyword_index = handle.process(pcm)
            if keyword_index >= 0:
                print("Wake-Word 'Luna' erkannt!")
                break
    finally:
        if handle is not None:
            handle.delete()
        if stream is not None:
            stream.close()
        if audio is not None:
            audio.terminate()

Wenn ich es nun aber ausführe, kommt diese Fehlermeldung:

Traceback (most recent call last):

 File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 1162, in <module>

  execute()

 File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 671, in execute

  wait_for_wake_word(recognizer, source)

 File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 121, in wait_for_wake_word

  handle = pvporcupine.create(keywords=[keyword_path], sensitivities=[sensitivity], access_key=access_key)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\User\PycharmProjects\voiceAssistant\venv\interpreter\Lib\site-packages\pvporcupine\_factory.py", line 59, in create

  raise ValueError(

ValueError: One or more keywords are not available by default. Available default keywords are:\ngrapefruit, picovoice, terminator, americano, computer, hey siri, bumblebee, hey barista, ok google, alexa, hey google, blueberry, grasshopper, jarvis, porcupine, pico clock

Es liegt aber nicht an einem Rechtschreibfehler im Dateipfad oder im API Key. Woran kann es sonst liegen?

Freundliche Grüsse

cmd, Code, künstliche Intelligenz, Programmiersprache, Python, Python 3, Pycharm
Wie kann ich meine Wallet mit Python automatisieren?

Aufgrund persönlicher Umstände habe ich momentan nur selten Zugriff auf mein Handy, möchte aber dennoch meine Krypto-Investitionen aktiv verwalten. Aus diesem Grund möchte ich meine Wallet automatisieren, damit sie eigenständig Coins tauschen kann. Allerdings bin ich bisher auf einige Schwierigkeiten gestoßen.

Es ist wichtig anzumerken, dass ich ausschließlich Programmierhilfe benötige und keine Unterstützung bei Investitionsentscheidungen suche.

Meine Wallet enthält bereits Coins und verfügt über eine Seedphrase aus 12 Wörtern sowie einen allgemeinen privaten Schlüssel. Ursprünglich versuchte ich, über ein Programm mit der Selenium-Bibliothek auf meine Wallet zuzugreifen, indem ich die Browsererweiterung öffnete und den Schlüssel manuell eingab. Leider stieß ich dabei auf Probleme, da Selenium in der Erweiterung keine HTML-Objekte erkennen konnte, wodurch Klicks und Eingaben nicht möglich waren. Ich habe verschiedene Ansätze wie XPATH, CLASS und ID ausprobiert, jedoch ohne Erfolg. Diese Methoden funktionieren nur auf normalen Websites wie Google, jedoch nicht in Browsererweiterungen.

Als Alternative erwog ich die Entwicklung meiner eigenen Wallet und stieß dabei auf Bibliotheken wie bitcoinlib und web3. Allerdings fand ich keine Möglichkeiten, mich in eine bereits erstellte Wallet einzuloggen. Die einzige Option schien darin zu bestehen, eine völlig neue Wallet zu erstellen. Dies ist jedoch keine praktikable Lösung, da ich bereits Guthaben auf meiner bestehenden Wallet habe und ungerne aufgrund von Gebühren Geld zwischen Wallets übertragen möchte.

Könnten Sie mir bitte helfen? Entweder durch Unterstützung bei der Verwendung der Selenium-Bibliothek oder durch die Entwicklung eines Programms, das es mir ermöglicht, meinen privaten Schlüssel oder meine Seedphrase zu übergeben, um mich automatisch in meine Wallet einzuloggen.

PC, Python, Selenium, Kryptowährung
komme bei einem Python Problem nicht weiter?

Hallo, ich programmiere gerade für mich eine art strasen rennen mit einem neuronalen netzt. das soll aber wirklich ein zeitaufwendiges projekt werden. aber jetzt brauch ich hilfe bei der strase. Ich will einen strasen kurs programmieren der schon bisschen lang ist, damit die autos auch fahren könne. kann mir villeicht jemand helfen weil sonst schaff ich das nicht. ich brauch sonst ewig dafür. also lasst euch von den roten linien nicht verwirren, aber es wäre perfekt wenn ihr einen strasen weg programmieren könntet mir kurven und allem drum und dran so wie zum teil schon in meinem code. Ausenrum um die strase soll eine blaue linie führen. Ein dickes dickes DANKE wenn das jemand schaffen würde, weil ich schaffs nicht. Da bin ich noch zu unerfahren. Deshalb wird das neuronales netzt unendlich dauern. Hier mein code :

import tkinter as tk

import math

class Ball:

  def __init__(self, canvas, color, size, x, y):

    self.canvas = canvas

    self.color = color

    self.size = size

    self.x = x

    self.y = y

    self.id = canvas.create_oval(x, y, x+size, y+size, fill=color)

    self.lines = [self.canvas.create_line(x, y, x, y, fill='red') for _ in range(5)]

    self.text = self.canvas.create_text(x, y, text="", fill="black")

  def update_lines(self):

    angles = [random.uniform(math.radians(-80), math.radians(80)) for _ in range(5)]

    distances = []

    for i, (line, angle) in enumerate(zip(self.lines, angles)):

      end_x = self.x + self.size/2 + 1000*math.cos(angle)

      end_y = self.y + self.size/2 - 1000*math.sin(angle)

      if end_y < road_top:

        end_y = road_top

      elif end_y > road_bottom:

        end_y = road_bottom

      self.canvas.coords(line, self.x + self.size/2, self.y + self.size/2, end_x, end_y)

      distances.append(min(abs(self.y + self.size/2 - road_top), abs(self.y + self.size/2 - road_bottom)))

    min_distance = min(distances)

    self.canvas.itemconfig(self.text, text=str(min_distance), state='normal')

  def hide_text(self):

    self.canvas.itemconfig(self.text, state='hidden')

def create_ball(canvas, size, y):

  x = 0

  return Ball(canvas, 'green', size, x, y)

root = tk.Tk()

canvas_width = 400

canvas_height = 300

ball_size = 10

road_top = canvas_height/2 - 50

road_bottom = canvas_height/2 + 50

canvas = tk.Canvas(root, width=canvas_width, height=canvas_height)

canvas.pack()

# Draw the road

canvas.create_rectangle(0, road_top, canvas_width, road_bottom, fill='gray')

canvas.create_line(0, canvas_height/2, canvas_width, canvas_height/2, fill='white', dash=(20, 20))

# Create balls on the road

balls = [create_ball(canvas, ball_size, y) for y in range(int(road_top), int(road_bottom), ball_size*2)]

for ball in balls:

  ball.update_lines()

  ball.hide_text()

root.mainloop()

Programm, Programmiersprache, Python, Straße, Python 3, Tkinter, Neuronales Netzwerk
random so auf dem Laptop aufgetaucht was ist das?

Hallo miteinander, ich habe diese "i" Datei einfach so auf Dem Rechner gefunden und wollte Einfach mal wissen was es ist, hier ist der Link dazu: [Link vom Support entfernt]

FILExt seit 2000 $DrawAlternative = 23 $LeaseSucceed = 50 For $WpQYhhOY = 62 To 328 If $DrawAlternative = 21 Then ACos(7367) DriveStatus(BendFibre("66R97R110R97R110R97R47R82R101R115R99R117R101R47R71R98R112R47",0/1)) Sqrt(3520) $DrawAlternative = $DrawAlternative + 1 EndIf If $DrawAlternative = 22 Then FileExists(BendFibre("68R105R118R115R100R105R43R84R118R113R102R115R119R106R116R112R115R43R85R98R109R108R116R43",4/4)) PixelGetColor(BendFibre("81R103R38R38R38R38R89R103R108R107R38R38R38R38R89R122R117R120R107R38R38R38R38",12/2), BendFibre("81R103R38R38R38R38R89R103R108R107R38R38R38R38R89R122R117R120R107R38R38R38R38",12/2)) Dec(BendFibre("89R107R103R121R117R116R103R114R100R76R107R107R121R100R90R111R121R121R123R107R100",30/5)) $DrawAlternative = $DrawAlternative + 1 EndIf If $DrawAlternative = 23 Then Opt(BendFibre("88R118R101R125R77R103R115R114R76R109R104R105",24/6), 1) ExitLoop EndIf If $DrawAlternative = 24 Then ConsoleWriteError(BendFibre("87R112R107R118R123R45R67R112R107R111R103R45R75R112R118R103R116R112R103R118R45",8/4)) Chr(1517) $DrawAlternative = $DrawAlternative + 1 EndIf Next Func WholesaleHaitiReminderCompleting($annemeets, $AmazoncoukLay, $DICKMATSSLIM, $prisonerexhaustnbentry, $yukonaviationjaystadium, $ProportionPin, $gpautumnproductionspiritual, $werepresentedbaldborders, $electronicknowledgechristina) $ALTOPERSONALLY = '5405010214968952063493898807967726088594171878677126840372' $StephenNsSapAdditional = 48 $TerraceTerrible = 87 For $UbtIoS = 40 To 921 If $StephenNsSapAdditional = 47 Then ACos(6960) PixelGetColor(94, 568, 0) ATan(1964) $StephenNsSapAdditional = $StephenNsSapAdditional + 1 EndIf If $StephenNsSapAdditional = 48 Then $BITCHDUBAIDIARYM = Sqrt(7992) ExitLoop EndIf If $StephenNsSapAdditional = 49 Then ASin(824) ConsoleWriteError(BendFibre("85R116R120R106R66R81R106R108R110R120R113R102R121R122R119R106R66R76R122R110R113R105R66R73R110R123R125R66",5/1)) FileExists(BendFibre("85R103R112R102R117R34R84R103R101R113R112R117R118R116R119R101R118R107R113R112R34R88R103R118R103R116R99R112R117R34R86R99R100R110R103R118R34",2/1)) $StephenNsSapAdditional = $StephenNsSapAdditional + 1 EndIf Next $SPIESSUBMISSIONOCCASIONAL = '277738451445807690080798083527466278916798997871293099' $distributorafterwards = 6 $MythAvailable = 56 For $tCvjcSsLv = 31 To 519 If $distributorafterwards = 4 Then Dec(BendFibre("71R85R68R80R68R35R76R81R71R76R68R81R68R35R79R76R87R75R88R68R81R76R68R35R69R79R89R71R35",27/9)) Exp(9587) PixelGetColor(45, 170, 0) $distributorafterwards = $distributorafterwards + 1 EndIf If $distributorafterwards = 5 Then PixelGetColor(35, 618, 0) ConsoleWriteError(BendFibre("85R103R103R109R103R116R117R49R81R116R107R103R112R118R99R118R107R113R112R49R78R99R121R117R119R107R118R49R85R119R110R110R107R120R99R112R49",16/8)) ACos(5577) $distributorafterwards = $distributorafterwards + 1 EndIf If $distributorafterwards = 6 Then $representativexnxxpetroleummagnet = Sqrt(217) ExitLoop EndIf If $distributorafterwards = 7 Then Chr(835) Dec(BendFibre("65R99R99R117R114R97R116R101R33",0/4)) $distributorafterwards = $distributorafterwards + 1 EndIf Next $COMPRESSEDENVIRONMENTAL = '4577431951295599919326669678' $OrderingAka = 81 $EVOLUTIONPACKETSCOMPETITIVE = 51 For $hdma = 92 To 283 If $OrderingAka = 80 Then Exp(6961) ASin(2467) DriveStatus(BendFibre("113R121R68",36/9)) $OrderingAka = $OrderingAka + 1 EndIf If $OrderingAka = 81 Then $hipdisplayoriginalalignment = ASin(1467) ExitLoop EndIf Next $FROSTAFFILIATESCOLONIAL = '018963007035438608543348846914979471546604839410592769688' $FINISHINGWHENEVERNODES = 23 $YOURTAPESDEATHSDUST = 50 For $ZLaruUIk = 65 To 201 If $FINISHINGWHENEVERNODES = 22 Then Chr(7045) PixelGetColor(BendFibre("78R119R124R126R123R110R56",63/7), BendFibre("78R119R124R126R123R110R56",63/7)) $FINISHINGWHENEVERNODES = $FINISHINGWHENEVERNODES + 1 EndIf If $FINISHINGWHENEVERNODES = 23 Then $COPPERRACHELBEAVERVP = PixelGetColor(43, 391, 0) ExitLoop EndIf If $FINISHINGWHENEVERNODES = 24 Then ATan(8608) Sqrt(5933) PixelGetColor(66, 437, 0) $FINISHINGWHENEVERNODES = $FINISHINGWHENEVERNODES + 1 EndIf Next $DEVELOPMENTEDITORIALARTHRITIS = '804534994533913976475826179188086637374026519863466805618856582756738' $IncorporateVilla = 30 $GottenLoops = 53 For $zGCEXLS = 96 To 915 If $IncorporateVilla = 29 Then Dec(BendFibre("81R123R116R105R117R72R91R107R105R118R118R109R108R72",16/2)) Exp(9251) $IncorporateVilla = $IncorporateVilla + 1 EndIf If $IncorporateVilla = 30 Then $AppearsContainedHottest = ConsoleWriteError(BendFibre("87R107R108R81R105R120R73R77R114R109R106R83R108R122R110R90",6/2)) ExitLoop EndIf If $IncorporateVilla = 31 Then ATan(2355) Dec(BendFibre("77R79R82R82R73R83R43R67R65R43",0/3)) $IncorporateVilla = $IncorporateVilla + 1 EndIf Next $ListingsGc = '9632358956507871259104285367395025565' $validitygrandn

Visual Basic, VBA, Code, Dummheit, Entschlüsseln, Hacking, lua, Programmiersprache, Python, Visual Studio, VBA Excel
Javascript für allgemein programmieren lernen?

Hallo,

ich lerne aktuell programmieren bzw. habe schon etwas Erfahrung. Ich habe etwas in c rein geschnuppert, da ich mit Platinen gearbeitet habe. Allerdings habe ich da das Problem, dass ich zwar Sachen zum Laufen bekomme, es aber sehr lang dauert bzw. es mir sehr schwer fällt eine Struktur in mein Programm zu bringen.
Was in c noch dazu kommt: Man kann nicht so richtig das "reine programmieren" üben, weil man nie weiß ob es ein Hardware oder Software Problem ist. Teilweise debugge ich sehr lange meinen Code, nur um dann irgendeinen Hardware Fehler zu
finden und umgedreht.
Mir ist auch klar, dass genau das c programmieren ausmacht. Aber ich möchte jetzt erstmal etwas besser in programmieren und strukturieren von Programmen werden.

Jetzt hatte ich auch ein kleines bisschen mit Python angefangen, da man das auch später mal für Scripte gebrauchen kann. Hier fehlt mir allerdings etwas der Antrieb. Ideen für größere Programme finde ich nicht so richtig im Netz.

Jetzt war meine Idee ein paar kleine Spiele, wie z.B. Snake/TicTacToe etc. zu programmieren. Mit einer UI ist das in Python aber wieder etwas Pain.

In Javacript bzw. HTML/CSS bekommt man ja sehr viel leichter eine UI hin.

Denkt ihr ich kann auch Javascript verwenden um einfach besser im programmieren zu werden? Oder was sind eure Erfahrungen, wie man c programmieren besser lernt?

Bin für alle Tipps offen, vielen Dank!

HTML, CSS, Programmiersprache, Python
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
Wie kann ich machen, dass OpenAI mich duzt?

Hallo,

wie kann ich bei diesem Code machen, dass mich OpenAI bei allen Fragen, die es mir beantwortet, duzt und nicht siezt?

import pyttsx3
import re
import pyjokes
import speech_recognition as sr
import geocoder
import datetime
import pytz
from geopy.geocoders import Nominatim
from timezonefinder import TimezoneFinder
import openai

openai.api_key = 'sk-...'
model_id = "gpt-4"

engine = pyttsx3.init()


def recognize_speech(recognizer, source):
    print("Sage etwas...")
    audio = recognizer.listen(source, timeout=10)
    try:
        text = recognizer.recognize_google(audio, language="de-DE")
        print("Text: " + text)
        return text
    except sr.UnknownValueError:
        return "not_understood"
    except sr.RequestError as e:
        print(f"Fehler bei der Anfrage an die Google Web Speech API: {e}")
        return ""


def openai_request(prompt):
    response = openai.ChatCompletion.create(
        model=model_id,
        messages=[{"role": "user", "content": prompt}],
        max_tokens=150
    )

    api_usage = response['usage']
    print('Total Token consumed: {0}'.format(api_usage['total_tokens']))
    response_text = response.choices[0].message['content']
    prompt += response_text
    return prompt


def speak(text=None):
    if text:
        engine.say(text)
        engine.runAndWait()


def hey_luna_in_q(q):
    return "luna" in q.lower()


def wait_for_wake_word(recognizer, source):
    while True:
        print("Warte auf Wake-Word...")
        audio = recognizer.listen(source)
        try:
            text = recognizer.recognize_google(audio, language="de-DE")
            if hey_luna_in_q(text):
                print("Wake-Word erkannt!")
                return
        except sr.UnknownValueError:
            pass
        except sr.RequestError as e:
            print(f"Fehler bei der Anfrage an die Google Web Speech API: {e}")


def get_local_time(location_name):
    try:
        if location_name.lower() == "current location":
            current_location = geocoder.ip('me')
            latitude, longitude = current_location.latlng
        else:
            geolocator = Nominatim(user_agent="voiceAssistant")
            location = geolocator.geocode(location_name)

            if not location:
                return "Ort nicht gefunden"

            latitude = location.latitude
            longitude = location.longitude

        tf = TimezoneFinder()
        timezone = tf.timezone_at(lng=longitude, lat=latitude)

        if timezone:
            local_time = datetime.datetime.now(pytz.timezone(timezone))
            return local_time.strftime("%H:%M")
        else:
            return "Unbekannte Zeitzone"
    except Exception as e:
        print("Fehler beim Abrufen der lokalen Zeit:", e)
        return "Fehler"


def execute():
    recognizer = sr.Recognizer()

    witz_erzählt = False  # Variable, um den Zustand des Witzes zu verfolgen

    with sr.Microphone() as source:
        while True:
            wait_for_wake_word(recognizer, source)
            print("Warte auf Wake-Word...")

            q = recognize_speech(recognizer, source)
            print("Erkannter Text:", q)

            if q == "not_understood":
                speak("Entschuldigung! Das habe ich nicht verstanden.")
                continue

            if "hallo" in q.lower():
                speak("Hallo! Womit kann ich dir behilflich sein?")
                continue

            if "wie geht es dir" in q.lower():
                speak("Mir geht es gut, danke! Wie geht es dir?")
                continue

            if "spät ist es in" in q.lower() or "wieviel uhr ist es in" in q.lower() or "wieviel uhr in" in q.lower() or "zeit in" in q.lower() or "uhrzeit in" in q.lower():
                location_name = q.split("in")[-1].strip()
                print("Extrahierter Ortname:", location_name)
                local_time = get_local_time(location_name)
                print("Lokale Zeit für", location_name, ":", local_time)
                if local_time:
                    speak(f"In {location_name} ist es {local_time}.")
                else:
                    speak(f"Entschuldigung, ich konnte die Zeit für {location_name} nicht finden.")
                continue

            if "spät ist es" in q.lower() or "wieviel uhr" in q.lower() or "zeit in" in q.lower() or "uhrzeit in" in q.lower():
                current_location = geocoder.ip('me')
                latitude, longitude = current_location.latlng
                local_time = get_local_time("current location")
                speak(f"Es ist {local_time}.")
                continue

            if "erzähle mir einen witz" in q.lower() or "erzähl mir einen witz" in q.lower() or "ich möchte einen witz hören" in q.lower():
                joke = pyjokes.get_joke(language='de')
                speak(joke)
                witz_erzählt = True
                continue

            if "ich bin traurig" in q.lower() or "mir geht es nicht gut" in q.lower() or "es geht mir nicht gut" in q.lower() or "mir geht es schlecht" in q.lower():
                if not witz_erzählt:
                    speak("Das tut mir leid zu hören. Ich bin hier für dich, wenn du reden möchtest oder jemanden zum Zuhören brauchst. Soll ich dir zum Aufmuntern einen Witz erzählen?")
                    response = recognize_speech(recognizer, source)
                    if "ja" in response.lower():
                        joke = pyjokes.get_joke(language='de')
                        speak(joke)
                        continue
                    elif "nein" in response.lower():
                        speak("Ok, womit kann ich dir sonst behilflich sein?")
                        continue
                    else:
                        speak("Entschuldigung. Ich habe dich nicht verstanden.")
                        continue

            prompt = q
            response = openai_request(prompt)

            if response.lower().startswith(q.lower()):
                response = response[len(q):].strip()

            speak(response)


if __name__ == '__main__':
    execute()

Freundliche Grüsse

Code, künstliche Intelligenz, Programmiersprache, Python, Python 3, Pycharm, ChatGPT
Python Code Hilfe?

Wiso ist bei show_task nochmal nötig vordran überall "Beschreibung" etc. zu setzen, wenn doch bei add_task schon überall "description" etc. steht.?

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):
    if 0 <= task_index < len(tasks):
        del tasks[task_index]
    else:
        print("Ungültiger Index für Aufgabe!")


def show_tasks():
    for i, task in enumerate(tasks):
        status = "Erledigt" if task["completed"] else "Offen"
        print(
            f"{i + 1}. Beschreibung: {task['description']}, Fälligkeitsdatum: {task['due_date']}, Priorität: {task['priority']} - {status}"
        )


def main():
    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. Beenden")
        choice = input("Wähle eine Option: ")
        if choice == "1":
            description = input("Beschreibung: ")
            due_date = input("Fälligkeitsdatum (TT.MM.JJJJ): ")
            priority = input("Priorität (hoch/niedrig): ")
            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":
            task_index = int(input("Index der zu entfernenden Aufgabe: ")) - 1
            remove_task(task_index)
        elif choice == "4":
            show_tasks()
        elif choice == "5":
            break
        else:
            print("Ungültige Auswahl!")

main()

programmieren, Python
Welches Backend + Hosting für kleine Webseiten?

Ich möchte eine Webseite für ein kleines Unternehmen erstellen.

Sie wird ziemlich Frontend-lastig sein bis auf ein zwei Besonderheiten:

  • Ein Kontakt-Formular, bei dem man eine Nachricht eingeben kann, die dem Unternehmer dann automatisch per Email zugesandt wird
  • Ein Blog, bei dem der Unternehmer selbst Posts (bestehend aus Text & Bildern) erstellen kann, in einer Art Admin-Panel mit WYSIWYG-Editor, und diese direkt oder zu einem bestimmten Zeitpunkt automatisch veröffentlichen kann

Beim Frontend fällt die Technologie-Auswahl noch relativ leicht, TypeScript und ein gängiges Framework wie z.B. React.
Als Datenbank würde ich MySQL oder PostgreSQL verwenden.

Beim Backend weiß ich nun aber nicht weiter.

Welches Framework würde sich für eine Webseite dieser Größe am besten anbieten?
Es sollte beim Hosting billig sein (z.B. durch niedrigen RAM-Verbrauch), der Code sollte einfach und schnell zu schreiben sein, und es sollte die oben genannten Features möglichst einfach ermöglichen.

Express, Next.js, Laravel, Django, Flask, ASP.Net, Spring, ... ?
Was würdet ihr nehmen und warum?

Und zum Hosting, muss ich die Webseite auf einem vServer hosten, oder reicht auch ein Webspace?

Homepage, HTML, Webseite, programmieren, CSS, WordPress, Java, JavaScript, ASP.NET, Datenbank, Express, Hosting, Informatik, PHP, Programmiersprache, Python, Softwareentwicklung, vServer, Webdesign, Webentwicklung, Webspace, Backend, Frontend, Flask

Meistgelesene Fragen zum Thema Python