Problem mit update() bei Dict's
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Der Rueckgabewert von `dict.update`
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Verstehe das trotzdem noch nicht
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Rufe mal im interaktiven Modus ``print({}.update({}))`` auf.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
None, weil der Return None ist, muss ich dann objects adden?
Könnt ihr mir bitte mal eine Lösung oder den richtigen Code schicken habe überhaupt keinen Plan.
Könnt ihr mir bitte mal eine Lösung oder den richtigen Code schicken habe überhaupt keinen Plan.
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Ich denke, es ist besser die Schritte einzeln durchzuführen. BlackJacks Beispiel ist eher akademisch interessant und nicht unbedingt im Produktiveinsatz zu empfehlen. Code sollte möglichst klar und verständlich für alle sein, auch wenn jeder etwas anderes darunter versteht.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
So geht es aber auch nicht:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Generate the playingfield
"""
#~Imports
import cPickle as pickle
import random
#~Define arena
#5*5 = 25
height_rows=5
width_cols=5
#~Define images
grass = {"tile" : "/gametiles/grass.png", "action" : None, "x" : None, "y": None}
baum1 = {"tile" : "/gametiles/baum1.png", "action" : None, "x" : None, "y": None}
baum2 = {"tile" : "/gametiles/baum2.png", "action" : None, "x" : None, "y": None}
baum3 = {"tile" : "/gametiles/baum3.png", "action" : None, "x" : None, "y": None}
#~Variables
objectlist = []
rows=[]
for y in range(height_rows):
row=[]
for x in range(width_cols):
number = random.randint(1, 10)
if number == 5:
objectlist = baum1
elif number == 1:
objectlist = baum2
elif number == 7:
objectlist = baum3
else:
objectlist = grass
objectlist.update({"x" : x, "y" : y})
row.append(objectlist)
rows.append(row)
for i in rows:
for e in i:
print e
name = raw_input("mapname: ")
pickle.dump(row, open("../maps/" + name + ".sav", "wb" ) )
print "fertig"
Zuletzt geändert von jtschoch am Montag 3. Dezember 2012, 18:26, insgesamt 1-mal geändert.
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
bei was? kann sein das ich es verhauen habe mit den Backups, hatte ich auch:/
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Ist dir in den Sinn gekommen, dass Probleme ab einer gewissen Größe nicht mehr durch raten gelöst werden können? Wie sollen wir dir denn noch abnehmen, dass du dich mit dem Problem beschäftigst, wenn du gefühlt alle 3 Minuten mit der nächsten Frage kommst? Wenn man ein Fehler in seinem Programm hat, dann geht man den entsprechenden Teil Schritt für Schritt durch und schaut mal, was bei den Anweisungen tatsächlich passiert. Hier braucht es doch nur ein paar print-Statements.
Das Leben ist wie ein Tennisball.
Hab ich schon gemacht, aber es kommt immer das selbe raus!
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Blackjack hatte Dich schon darauf hingewiesen: Du legst vier Dictionaries an (gras, baum1 etc) und bei denen bleibt es auch. Mehr werden es nicht. Python arbeitet mit Labels auf mutable und immutable Objekte. Das ist in diesem Fall (und grundlegend überhaupt) wichtig zu wissen.
Ich habe einfach keinen Plan, schade das ich nicht an meinen Projekt weiterkomme
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Ich denke du möchtest, eigentlich etwas anderes machen. Die Elemente sind Prototypen, die du mit Werten instanziieren möchtest.
Versuche bitte den Code zu verstehen und nicht als gegeben anzusehen. Wenn das eine Schulaufgabe ist, wird man es sehr schnell merken, dass das nicht deine eigene geistige Leistung war
Code: Alles auswählen
import random
class Prototype:
def __init__(self, tile, action=None, x=None, y=None):
self.tile = tile
self.action = action
self.x = x
self.y = y
def new(self, action=None, x=None, y=None):
if action is None:
action = self.action
if x is None:
x = self.x
if y is None:
y = self.y
return Prototype(self.tile, action, x, y)
def __repr__(self):
return '<%s>' %self.tile
prototypes = map(Prototype, ['baum1', 'baum2', 'baum3', 'grass'])
matrix = {}
n_rows = 5
n_cols = 5
for y in range(n_rows):
for x in range(n_cols):
prototype = prototypes[min(random.randrange(10), 3)]
matrix[ (x,y) ] = prototype.new(x=x, y=y)
print matrix
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Vielen Dank ich werde mir ihn dann inruhe anschauen, wie das ganze abläuft:)
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
14, übrigens hatte ich mich eine längere Zeit mit Python nichtmehr beschäftigt, und Alles was mit Listen und Arrays ist da verliere ich schnell den Überblick.
Ich hätte nochmal eine kleine Erklärung zu dem Teil bitte:
was tut er genau?
Edit, er gibt doch nur die Daten zurück, aber wozu, oder?
Ich hätte nochmal eine kleine Erklärung zu dem Teil bitte:
Code: Alles auswählen
class Prototype:
def __init__(self, tile, action=None, x=None, y=None):
self.tile = tile
self.action = action
self.x = x
self.y = y
def new(self, action=None, x=None, y=None):
if action is None:
action = self.action
if x is None:
x = self.x
if y is None:
y = self.y
return Prototype(self.tile, action, x, y)
def __repr__(self):
return '<%s>' %self.tile
Edit, er gibt doch nur die Daten zurück, aber wozu, oder?
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
14 und längere Zeit nicht mit Python beschäftigt - ich werde alt.
Die Idee von Prototypen ist es, dass du neue Objekte aus alten erschaffst. Das heißt, das neue Object übernimmt alle Eigenschaften seines Erschaffers, es ist quasi geklont. Man kann es natürlich klassisch mit Klassen lösen (was ein Wortspiel), aber diese Lösung kommt deiner mit den Dictionaries näher.
Die Idee von Prototypen ist es, dass du neue Objekte aus alten erschaffst. Das heißt, das neue Object übernimmt alle Eigenschaften seines Erschaffers, es ist quasi geklont. Man kann es natürlich klassisch mit Klassen lösen (was ein Wortspiel), aber diese Lösung kommt deiner mit den Dictionaries näher.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Vielleicht will ihm noch jemand auf der Mailingliste helfen: http://permalink.gmane.org/gmane.comp.p ... erman/8145
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Irgendwie weis ich immernochnicht wie ich das umsetze, die Ausgabe muss so sein:
Code: Alles auswählen
{"tile" : "/gametiles/grass.png", "action" : None, "x" : 0, "y": 0}
{"tile" : "/gametiles/grass.png", "action" : None, "x" : 1, "y": 0}
{"tile" : "/gametiles/grass.png", "action" : None, "x" : 2, "y": 0}
{"tile" : "/gametiles/grass.png", "action" : None, "x" : 3, "y": 0}
{"tile" : "/gametiles/grass.png", "action" : None, "x" : 4, "y": 0}
{"tile" : "/gametiles/grass.png", "action" : None, "x" : 0, "y": 0}
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk