Seite 1 von 2

Neffe vs. Onkel

Verfasst: Freitag 26. Oktober 2007, 09:43
von blackmamba28
halloooooooooo allerseits
bin nicht so lange hier angemeldet
und kann nicht öfters on kommen :(
hab aber die erfahrung gemacht dass die leute hier sehr hilfsbereit und nett sind
macht echt einen riesen spass die dinge auszuprobieren die hier erklärt werden und neue sachen auszuprobieren bei python.
ich wollte um eure hilfe bitten
bei einer aufgabe komme ich nicht weiter die wie folgt lautet:
Bild

mein onkel ist informatiker und wollte mich testen ob ich schon mit python soweit bin um das nachzumachen weil ich schon seit 3monaten mit python arbeite
für ihn war das ein kinderspiel aber ich brauche bisschen hilfe damit
könnt ihr mir paar tipps geben wie ich die aufgaben lösen kann?

ich muss die komplette struktur skizzieren mit den inhalten der liste und die namen und die geburtsdaten abkürzen
und
ich muss die jeweiligen Elemente mit dem jeweiligen index versehen.

Verfasst: Freitag 26. Oktober 2007, 09:50
von lutz.horn
Schau Dir mal die folgenden Sachen an.

Verfasst: Freitag 26. Oktober 2007, 09:54
von blackmamba28
es tut mir leid aber wenn ich etwas nicht verstehe dann sind die tutorials immer die ersten sachen die ich mir angucken von daher hab ich das schon durchgelesen aber trotzdem danke

Verfasst: Freitag 26. Oktober 2007, 09:56
von querdenker
Zeig doch mal, was du bisher hast.

Verfasst: Freitag 26. Oktober 2007, 10:00
von blackmamba28
ja das problem ist ja der anfang wie ich beginnen soll
in der schule kann ichs immer aber zuhause ist es immer viel schwieriger
weil man auf sich allein gestellt ist

Verfasst: Freitag 26. Oktober 2007, 10:04
von lutz.horn
Welche Bedeutung hat denn die vierte Spalte?

Verfasst: Freitag 26. Oktober 2007, 10:06
von EnTeQuAk
blackmamba28 hat geschrieben:ja das problem ist ja der anfang wie ich beginnen soll
in der schule kann ichs immer aber zuhause ist es immer viel schwieriger
weil man auf sich allein gestellt ist
Warum, macht das in der Schule euer Lehrer immer für euch?


Nun, der Ablauf sollte nicht allzuschwer sein:

Erstelle eine Liste (oder Tupel, wenn sich die Werte nicht ändern sollen), die verschachtelt die Daten enthält.
Bsp:

Code: Alles auswählen

daten = (
    ('Gans', 'Otto', '23.11.1989', '7'),
    #...
)
Diese Liste gehst du in einer 'for' Schleife durch und gibst die Daten aus.
Für die Einrückungen müsste dir das Modul textwrap gute Dienste leisten, wenn ich das richtig in Erinnerung habe.

Wenns dabei Probleme gibt, einfach den bestehenden Code uns hier mal Zeigen und dann werden wir sicherlich auch weiterhelfen.


gruß, Christopher!

Verfasst: Freitag 26. Oktober 2007, 10:10
von blackmamba28
hallo
ja die vierte soll die klasse sein in die die person geht

Verfasst: Freitag 26. Oktober 2007, 10:15
von lutz.horn
OK, dann hast Du also eine Liste von Informationen zu Personen. Jeder Satz von Informationen besteht aus dem Nachnamen, dem Vornamen, dem Geburtsdatum und der Klasse. Das könnte man jetzt mit Klassen modellieren, aber wir fangen mal ganz einfach an.

Code: Alles auswählen

personen = [("Gans", "Otto", "23.11.1989", 7),
  ("Huhn", "Franzi", "11.11.1990", 6),
  # und so weiter
  ("Wachtel", "Spinat", "04.04.2001", 5)]
Aufgabe 1: Schreibe eine for-Schleife, die für jede Person ihre vier Informationen ausgibt.

Verfasst: Freitag 26. Oktober 2007, 10:22
von blackmamba28
ja habe geschrieben:

Code: Alles auswählen

Liste=[]

for personen in range(10)= [
    ('Gans', 'Otto', '23.11.1989', '7'),
    ('Huhn', 'Franzi', '11.11.1990', '6'),
    ('Ente', 'Lahme', '02.02.2000', '5'),
    ('Ganter', 'Gudrun', '04.04.2000', '5'),
    ('Pute', 'Dumme', '09.12.1989', '7'),
    ('Hahn', 'Otto', '01.02.1990', '7'),
    ('Erpel', 'Horst', '08.08.1989', '6'),
    ('Schwan', 'Svantje', '01.01.2000', '5'),
    ('Reiher', 'Rudi', '05.05.1988', '6'),
    ('Wachtel', 'Spinat', '04.04.2001', '5'),
    ]

Verfasst: Freitag 26. Oktober 2007, 10:27
von lutz.horn
Das ist nicht ganz richtig.

Code: Alles auswählen

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range liefert Dir eine Liste von Ganzzahlen. Über die kannst Du zwar mit for iterieren, aber eigentlich willst Du ja eine Liste von Personen haben.

Probier es doch mal auf die Art, wie EnTeQuAk oder ich es geschrieben haben. Bau die Liste der Pesonen zusammen, iterier dann mit einer for-Schleife über diese Liste und gibt im Rumpf der for-Schleife die Informationen zur aktuellen Person aus.

Verfasst: Freitag 26. Oktober 2007, 10:29
von Jona
probier die sachen doch erstmal mal aus bevor du sie hier postest.
grade bei python ist das doch kein problem.

das jedenfalls macht 1. kein sinn und hat einen schlimmen syntax-fehler.

Verfasst: Freitag 26. Oktober 2007, 10:31
von blackmamba28
könnt ihr mir das nicht mal vorgeben wie ihr das meint mit der for schleife weil ich das grad nicht ganz hinkriege
wäre supernett:)

Verfasst: Freitag 26. Oktober 2007, 10:32
von EnTeQuAk
ein kleiner Tipp noch, da ich vermute, dass du auf der falschen Färte bist:

Code: Alles auswählen

daten = [
    ('Gans', 'Otto', '23.11.1989', '7'),
    ('Huhn', 'Franzi', '11.11.1990', '6'),
    ('Ente', 'Lahme', '02.02.2000', '5'),
    ('Ganter', 'Gudrun', '04.04.2000', '5'),
    ('Pute', 'Dumme', '09.12.1989', '7'),
    ('Hahn', 'Otto', '01.02.1990', '7'),
    ('Erpel', 'Horst', '08.08.1989', '6'),
    ('Schwan', 'Svantje', '01.01.2000', '5'),
    ('Reiher', 'Rudi', '05.05.1988', '6'),
    ('Wachtel', 'Spinat', '04.04.2001', '5'),
]
Das ist dein aktueller (richtiger) Code.

Du kannst in Python über einzelne Elemente einer Liste iterieren

Code: Alles auswählen

for element in daten:
    #...
Um zu sehen, was dann an 'element' gebunden ist, kannst du es ja einfach mit einem 'print' ausgeben. Somit kannst du auch experimentell an die Aufgabe rangehen und mit dem interpreter deine Ideen ausprobieren. Dann würdest du z.B. auch sehen, dass dein Vorschlag oben nicht ganz so hinhaut, wie du es gern hättest.

Ansonsten empfehle ich dir, mal ein Python-Tutorial durchzuarbeiten bzw. mal unser Wiki durchzusuchen ( http://wiki.python.de ). Da findest du viele Informationen.
Denn es sieht so aus, als wenn du noch nicht sehr viel Erfahrung mit Python gemacht hast (die Anzahl an Monaten hat ja nichts zu bedeuten).


MfG EnTeQuAk

Edit:
könnt ihr mir das nicht mal vorgeben wie ihr das meint mit der for schleife weil ich das grad nicht ganz hinkriege
wäre supernett:)
*mööööp* Hausaufgaben alarm. Wie schon oft woanders geschrieben :D -- Wir lösen keine Aufgaben, wir helfen nur bei der Lösung. Also ohne Hilfe deinerseits (mit bestehendem Code z.B.) können/werden wir nicht so viel machen ;)

Verfasst: Freitag 26. Oktober 2007, 10:37
von blackmamba28
ich probiere es ja auch selber ist ja nicht so dass ich alles euch überlasse
also jetzt hab ich es so

Code: Alles auswählen

Liste=[]

for element in daten= [
    ('Gans', 'Otto', '23.11.1989', '7'),
    ('Huhn', 'Franzi', '11.11.1990', '6'),
    ('Ente', 'Lahme', '02.02.2000', '5'),
    ('Ganter', 'Gudrun', '04.04.2000', '5'),
    ('Pute', 'Dumme', '09.12.1989', '7'),
    ('Hahn', 'Otto', '01.02.1990', '7'),
    ('Erpel', 'Horst', '08.08.1989', '6'),
    ('Schwan', 'Svantje', '01.01.2000', '5'),
    ('Reiher', 'Rudi', '05.05.1988', '6'),
    ('Wachtel', 'Spinat', '04.04.2001', '5'),
    ]

Verfasst: Freitag 26. Oktober 2007, 10:41
von EnTeQuAk
Okay, Stopp!

Sorry, wenn das ein wenig Schroff wirkt, aber ließt du überhaupt alles was wir dir Schreiben?

Ließ dir bitte das [wiki=Tutorial]Tutorial[/wiki] durch und dann bitte auch, unsere Beiträge.

Und bitte bitte bitte probiere deinen Code vorher aus, bevor du hier einfach sinnlosen Code schreibst.


MfG EnTeQuAk

Verfasst: Freitag 26. Oktober 2007, 10:43
von lutz.horn
Du bringst noch das Erzeugen einer Liste mit deren Verwendung in einer for-Schleife durcheinander. Um eine Liste zu erzeugen brauchst Du keine for-Schleife.

Code: Alles auswählen

liste = ["foo", "bar", "baz"]
genügt, um eine Liste zu erzeugen.

Über ein Liste iterierst Du mit for, das aber eine klare Syntax hat:

Code: Alles auswählen

for ding in liste:
  print ding
Wichtig sind der Doppelpunkt am Ende der ersten Zeile und die Einrückung in der zweiten.

Verfasst: Freitag 26. Oktober 2007, 10:50
von mawe
ch probiere es ja auch selber ist ja nicht so dass ich alles euch überlasse
Den Eindruck habe ich aber schon. EnTeQuAk hat dir doch, nett wie er ist, schon vorgekaut wie es funktioniert.
weil ich schon seit 3monaten mit python arbeite
Und nach 3 Monaten harter Arbeit schreibst du Dinge wie for personen in range(10)= [ ?
EnTeQuAk hat geschrieben:Warum, macht das in der Schule euer Lehrer immer für euch?
:) Jep.

Verfasst: Freitag 26. Oktober 2007, 10:55
von Leonidas
Tja, ich würde sagen 1:0 für den Onkel.

Verfasst: Freitag 26. Oktober 2007, 10:55
von Jona
Hi,

du wirst dir mit einer programmiersprache immer unsicher vorkommen wenn du nicht genau über die syntax bescheid weisst.

syntax heisst in etwa "was darf ich wo hinschreiben"

und bei allem was du benutzt musst du dir erstmal klar werden wie die syntax ist. ich mache das mal ausführlich an der for-schleife klar.
du musst das so (mit lesen und ausprobieren und hier nachfragen) mit allen "sprachelementen" tun.

probier doch zb mal für das "if".

also:

Code: Alles auswählen

for listen_element in liste:
   #mach irgendwas

#beispiel:
>>> for e in [1,2,3]:
...     print e
...
1
2
3
dabei ist
for: ein sogenanntes schlüsselwort, fest von python vorgegeben. hiermit sagst du python erstmal was du überhaupt vorhast (eine for-schleife)
listen_element: eine variable die du beliebig benennen darfst
in: wieder ein schlüsselwort, genauer der "in" operator
liste: irgendetwas "aufzählbares".
am schluss der doppelpunkt ":" und nur der. "=" ist hier nicht erlaubt.
#mach irgendwas: steht in der nächsten zeile. und zwar eingerückt. das ist das was für jedes element in der liste getan wird.

im beispiel habe ich für liste "[1,2,3]" eingesetzt.

du könntest aber auch eine funktion einsetzten, die eine liste zurückgibt,
zb range().

oder (wenn auch sinnfrei)

Code: Alles auswählen

def gibt_mich_liste():
   return [1,2,3]

und noch ein paar beispiel was man nicht darf:

Code: Alles auswählen

>>> for 1 in [1,2,3]:
...     pass
...
  File "<stdin>", line 1
SyntaxError: cant assign to literal

# 1 ist keine variable, sondern ein fester wert, ein literal.
# daher ein syntaxfehler, das literal darf da nicht stehen!

>>> for e in 1:
...     pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

# diesmal kein syntaxfehler, aber so ähnlich.
# statt durch eine liste will ich hier durch eine einzelne zahl laufen, das geht nicht. for e in [1]: wäre dagegen in ordnung - warum?

>>> for e innen_drin_in [1,2,3]:
  File "<stdin>", line 1
    for e innen_drin_in [1,2,3]:
                      ^
SyntaxError: invalid syntax

#auch falsch. hier habe ich das sclüsselwort "in" falsch geschrieben.


>>> for e in [1,2,3]
  File "<stdin>", line 1
    for e in [1,2,3]
                   ^
SyntaxError: invalid syntax

# der doppelpunkt fehlt.

>>> for e in [1,2,3] =
  File "<stdin>", line 1
    for e in [1,2,3] =
                     ^
SyntaxError: invalid syntax

# wieder fehlt der ":", das "=" macht es auch nicht besser :)
>>>