Neffe vs. Onkel

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn

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.
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Schau Dir mal die folgenden Sachen an.
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn

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
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Zeig doch mal, was du bisher hast.
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn

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
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Welche Bedeutung hat denn die vierte Spalte?
https://www.xing.com/go/invite/18513630.6a91d4
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

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!
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn

hallo
ja die vierte soll die klasse sein in die die person geht
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

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.
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn

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'),
    ]
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

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.
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

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.
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn

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:)
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

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 ;)
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn

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'),
    ]
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

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
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

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.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Tja, ich würde sagen 1:0 für den Onkel.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

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 :)
>>>
Antworten