Mein Python Discord bot funktioniert bei mir nicht?
Hallo!
Ich arbeite grad an einem Discord Bot. Ich möchte das ein User einen Account erstellen kann und das vom Account "geld" (Ist eine normale integer variable ) abgezogen werden kann. Der ganze Standard Python discord Skript ist schon drin. Ich hab zwei Arrays erstellt: players und money. Falls ein Account erstellt wird ("$create_account ") sollte der Nickname vom Autor in dem Array players gespeichert werden, und es sollte in dem Money Array 200 erscheinen (das Geld am Anfang). Falls später der User schreibt "$abziehen" sollte 10 von dem Wert des Autoren abgezogen werden. Aber leider bleibt die Array stelle 200. Der Code:
if message.content.startswith("$create_account"):
player = str(message.author)
players.append(player)
money.append(200)
print("Account erstellt!")
Der Code zum Abziehen
if message.content.startswith("$abziehen"):
mi = 0
for i in players:
if i == message.author:
money[int(mi)] =- 10
mi += 1
Mich würde es sehr freuen falls mir jemand hilft.
LG. Klainix
1 Antwort
- Wenn man von einer Variable etwas abziehen möchte, dann sollte man - = verwenden, da wenn man =- verwendet den Wert auf ein minuswert setzt. Bsp.
preis = 50
preis = -10
print(preis)
#output -10
2 Ich kann es zwar nicht mit einem Discord Bot ausprobieren, da ich gerade keinen neuen Bot aufsetzen möchte, aber wenn ich den Code ausführt funktioniert alles
players = ['charles', 'martina', 'michael', 'florence', 'eli']
money = [100, 250, 300, 400, 500]
mi = 0
name = "charles"
for i in players:
if i == name:
money[int(mi)] -= 10
mi += 1
3 Ich hätte noch einen Verbesserungsvorschlag für dich. Für solche Aufgaben kann man perfekt ein Dictionary oder ein 2 Dimensionales Array verwenden, um den Code einfacher zu gestalten
players = {'charles': 100, 'martina': 250, 'michael': 300, 'florence': 400, 'eli': 500}
name = "charles"
for i in players:
if i == name:
players[i] -= 10
oder:
players = [["charles",100], ["martina",250], ["michael",300], ["florence",400], ["eli",500]]
name = "charles"
for item in players:
if item[0] == name:
item[1] -= 10
Ich hoffe ich konnte dir weiterhelfen
Mit freundlichen Grüßen