Hallo zusammen,
ich habe vor 3 tagen angefangen mit python zu arbeiten und habe so gut wie keine vorkenntnisse was programmierung angeht.
da bitte ich um nachscht.
ausgewertet werden soll eine nachricht aus discord welche 2 variablen enthält...
einmal eine "location" und einmal ein "level"
import discord
#variables
trigger = "$"
adminchannel = 733728061
levelchannel = 733718055
#defconlists
berlin = ["Level 1 Berlin", "Level 2 Berlin", "Level 3 Berlin", "Level 4 Berlin", "Level 5 Berlin"]
berlinimg = ["imgurl1", "imgulr2", "imgurl3", "imgurl4", "imgurl5"]
hamburg = ["Level 1 Hamburg", "Level 1 Hamburg", "Level 1 Hamburg", "Level 1 Hamburg", "Level 1 Hamburg"]
hamburgimg = ["imgurl1", "imgulr2", "imgurl3", "imgurl4", "imgurl5"]
class MyClient(discord.Client):
# Einloggen
async def on_ready(self):
print("\nBOT status online \n\n____________")
# Wenn Nachricht gepostet wird
# Keine antwort auf eigene nachrighen
async def on_message(self, message):
if message.author == client.user:
return
if message.content.startswith(trigger + " set-level"):
quest = message.content.split(" ")
channel = client.get_channel(levelchannel)
#await channel.purge()
if quest[2] == (name eines der location listen):
await channel.send(eintrag der location tabelle mit den level aus der nachricht)
return
Beispiel:
im discord channel wird eingetragen
$ set-level hamburg 3
dann soll der bot aus der hamburgimg liste den level 3 eintrag posten also hamburg[2]
wie kann man soetwas verwirklichen
habe mich jetzt 2 tage mit google rumgeschlagen und bleibe immer bei den listen hängen
danke schonmal für eure hilfe
Live Side
discord 3 bot
@LiveSide: Grundsätzlich ist das offizielle Tutorial ein guter Einstieg in Python.
Im Moment nützt dir auch Google nichts, denn du weißt ja nicht, wonach du eigentlich suchst.
Wenn man parallele Listen nutzt, dann benutzt man in der Regel die falsche Datenstruktur. Insbesondere hier. Warum stehen in der Berlin-Liste Elemente, deren einziger Unterscheid eine hochgezählte Nummer ist? Die Nummer ergibt sich doch aus der Position in der Liste. Aber nur bei Berlin - in Hamburg scheint das anders zu sein?!?
Du solltest ein dict als Datenstruktuir verwenden. Wobei der Schlüssel jeweils der Stadtname ist und der Wert eine Liste der URLs.
Im Moment nützt dir auch Google nichts, denn du weißt ja nicht, wonach du eigentlich suchst.
Wenn man parallele Listen nutzt, dann benutzt man in der Regel die falsche Datenstruktur. Insbesondere hier. Warum stehen in der Berlin-Liste Elemente, deren einziger Unterscheid eine hochgezählte Nummer ist? Die Nummer ergibt sich doch aus der Position in der Liste. Aber nur bei Berlin - in Hamburg scheint das anders zu sein?!?
Du solltest ein dict als Datenstruktuir verwenden. Wobei der Schlüssel jeweils der Stadtname ist und der Wert eine Liste der URLs.
Code: Alles auswählen
city_to_images = {
"berlin": ["imgurl1", "imgulr2", "imgurl3", "imgurl4", "imgurl5"],
"hamburg": ["imgurl1", "imgulr2", "imgurl3", "imgurl4", "imgurl5"]
}
@sparrow
vielen dank schonmal für die hilfe
die urls in den listen sind unterschiedliche
in der hamburg liste ist das ein fehler von mir natürlich soll diese auch hochlaufend sein die nummer...
ich werde mal das versuchen mit den dict
vielen dank schon mal
ich gebe dann rückmeldung ob es geklappt hat
vielen dank schonmal für die hilfe
die urls in den listen sind unterschiedliche
in der hamburg liste ist das ein fehler von mir natürlich soll diese auch hochlaufend sein die nummer...
ich werde mal das versuchen mit den dict
vielen dank schon mal

ich gebe dann rückmeldung ob es geklappt hat