"Hausaufgabenfragen", evtl. könnt/wollt ihr helfen

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.
Benutzeravatar
Damaskus
Administrator
Beiträge: 890
Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle

"Hausaufgabenfragen", evtl. könnt/wollt ihr helfen

Beitragvon Damaskus » Montag 17. September 2007, 20:47

.. ok vllt habe ich mit meinen beleidigungen auch übertrieben
bitte entschuldigt
ich bin normalerweise keine böser mensch
und ihr habt mich glaub falsch verstanden
ich bin neu auf der schule und hab noch nicht so viel kontakt
zu den anderen im informatik kurs
aber langsam geht das
und zum fach informatik ich hab normalerweise sozialwissenschaften gewähllt, doch der kurs war schon voll weil ich erst 2 wochen nach den sommerferien mich in die schule angemeldet habe... ist ja jetzt egal
also ich hab wirklich probleme in informatik und ich habe meine mitschüler gefragt, doch die haben sogar selber probleme damit.
ich habe sogar versucht
ich bin nciht faul und das intressiert mich auch
ich zeige mal was ich bis jetzt alles so geleistet habe :


Code: Alles auswählen


# paul
import pickle
liste=[]

name=raw_input("Bitte den Namen eingeben:")
vorname=raw_input("Bitte den Vornamen eingeben:")
alter=raw_input("Bitte das Alter eingeben:")
haarfarbe=raw_input("Bitte die Haarfabe eingeben:")
größe=raw_input("Bitte die Größe eingeben:")
person=[name,vorname,alter,haarfarbe,größe]

while name:
person.append(person)
person.append(name)
person.append(vorname)
person.append(haarfarbe)
person.append(größe)
liste.append(person)

name=raw_input("Name der Person eingeben:")
vorname=raw_input("Vorname der Person eingeben:")
alter=raw_input("Alter der Person eingeben:")
haafarbe=raw_input("Haafarbe der Person eingeben:")
größe=raw_input("Größe der Person eingeben:")
print person

personendatei=file ("Personenbeschreibungsdatei.txt","w")
pickle.dump(liste,personendatei)
personendatei.close()


ich hoffe ihr helft mir noch
auch wenn es anfangs nciht so gut gelaufen ist

Mfg

Paul




/EDIT by Damaskus
Hier jetzt bitte keine neue Postings mehr zum Thema Hausaufgaben.
Ich glaube er hats verstanden.

Hab jetzt mal eine PN von blackmamba hier veröffentlicht!
Er entschuldigt sich und fragt ob ihr ihm doch noch helft.
Auch wenn sein Start hier nicht ganz so gelungen ist.

@blackmamba:
Ich werd morgen mal über deinen Code fliegen und schauen ob ich dir einige Tipps geben kann :wink:

Allerdings empfehl ich dir hier noch einen wichtigen Artikel für dich
http://www.python-forum.de/topic-1689.html

Gruß
Damaskus
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Montag 17. September 2007, 21:29

Hallo blackmamba!

Dann fangen wir mal an!!!

Um schneller zum Ziel zu kommen, schreibe ich hier einfach ein paar Gedanken zusammen.

- Um Umlautprobleme am Anfang komplett zu vermeiden, so lange du noch nicht einmal ein lauffähiges Programm zusammen bringst --> verwende keine Umlaute. Weder als Variablenamen noch innerhalb von Anführungszeichen.

- Jedes Python-Programm sollte im Kopf das Encoding-Cookie stehen haben. Das gibt weniger Probleme mit Umlauten.

- Lesen:
-- http://www.python-forum.de/topic-5095.html
-- http://www.python-forum.de/topic-6157.html

- Einrückungen sind bei Python besonders wichtig. Diese kennzeichen einen zusammengehörenden Block.

Code: Alles auswählen

i = 0
while i < 10:
    print i
    i += 1 # entspricht i = i + 1
print "Fertig"

Wie man hier sieht, ist die "print"-Zeile und die "i += 1"-Zeile um vier (4) Leerzeichen eingerückt. Diese beiden zeilen gehören zur While-Schleife. Die 'print "Fertig"'-Zeile gehört nicht mehr zur While-Schleife und wird erst ausgeführt, wenn die While-Schleife vollständig durchlaufen wurde.

Wichtigster Lesestoff für Anfänger: http://starship.python.net/crew/gherman ... nline/tut/

Weitere Links: http://gerold.bcom.at/python/python_links/

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Beitragvon nkoehring » Dienstag 18. September 2007, 00:31

Hi... schoen das hier jetzt ein freundliches Level aufkommt.

Dein Code ist ein wenig problematisch. Du solltest dich (wie auch die anderen hier bereits bemerkten) dringend mit den grundlegenden Dingen in Python befassen.

Ach und koenntest du bitte die genauen Aufgabenstellungen posten? Ich werd aus dem, was im ersten Thread steht nicht so wirklich schlau...

Waer doch gelacht, wenn wir dir nicht Python wenigstens grundlegend beibringen koennten ;)
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Re: "Hausaufgabenfragen", evtl. könnt/wollt ihr he

Beitragvon EyDu » Dienstag 18. September 2007, 07:11

Ich rate einfach mal, wie ich vermute wie der Code aussehen soll. Das wäre nämlich nur noch ein recht kleiner Schritt:

Code: Alles auswählen

import pickle
personen=[] #"liste" umgenannt in "personen"

name = True
while name:
    name=raw_input("Name der Person eingeben:")
    vorname=raw_input("Vorname der Person eingeben:")
    alter=raw_input("Alter der Person eingeben:")
    haafarbe=raw_input("Haafarbe der Person eingeben:")
    groesse=raw_input("Groesse der Person eingeben:")
    person = (name, vorname, alter, haarfarbe, groesse)
    personen.append(person)

personendatei=file ("Personenbeschreibungsdatei.txt","w")
pickle.dump(personen,personendatei)
personendatei.close()


Kann man auf jeden Fall noch etwas verbessern, aber so versteht man wohl am meisten.
Zuletzt geändert von EyDu am Dienstag 18. September 2007, 07:13, insgesamt 1-mal geändert.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 18. September 2007, 07:13

Da eine Liste verwendet wurde, empfehle ich mal das Wiki zu lesen: [wiki]Tutorial/Listen[/wiki]

Ansonsten gibt es noch allgemein gute Seiten:
[wiki]Tutorial[/wiki]
[wiki]FAQ[/wiki]

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Re: "Hausaufgabenfragen", evtl. könnt/wollt ihr he

Beitragvon schlangenbeschwörer » Dienstag 18. September 2007, 16:51

EyDu hat geschrieben:Kann man auf jeden Fall noch etwas verbessern, aber so versteht man wohl am meisten.

Hi,
ja verbessern kann man noch was, und wenn man python lernt, sollte man es vlt. nicht mit verbesserbarem code machen, wobei man natürlich erstmal das prinzip verstehen sollte...
Wenns verstanden ist, kann man aber schön kürzen.
Die vielen raw_inputs finde ich am unschönsten.

Code: Alles auswählen

import pickle
personen=[]

name = True
while name:
    person = []
    for angabe in ("Name", "Vorname", "Alter", "Haafarbe","Groesse"):
          person.append(raw_input("%s der Person eingeben:" %angabe))
    personen.append(tuple(person))

personendatei=file ("Personenbeschreibungsdatei.txt","w")
pickle.dump(personen,personendatei)
personendatei.close()


edit:
Es geht natürlich auch noch kürzer, aber dann wirds wieder unschön :lol:

Code: Alles auswählen

__import__("pickle").dump([tuple([raw_input("%s der Person eingeben"%a) for a in ("Name", "Vorname", "Alter", "Haafarbe","Groesse")]) for i in xrange(int(raw_input("Wie viele Personen sollen eingefuegt werden?")))], file("Pbd.txtt", "w"))

(kann man die Datei noch schließen?)
BlackJack

Beitragvon BlackJack » Dienstag 18. September 2007, 17:42

Wenn Du nichts gegen ein Semikolon hast könnte man sicher in Python 2.5 die ``with``-Anweisung importieren. :-)
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Beitragvon nkoehring » Dienstag 18. September 2007, 18:44

nun bringt ihn doch nicht total aus der Fassung ^^
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Dienstag 18. September 2007, 19:27

Anstelle von w würde ich wb empfehlen. Habe da so meine Erfahrungen machen müssen.
My Website - 29a.ch
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn
Kontaktdaten:

Re: "Hausaufgabenfragen", evtl. könnt/wollt ihr he

Beitragvon blackmamba28 » Mittwoch 19. September 2007, 08:28

schlangenbeschwörer hat geschrieben:
EyDu hat geschrieben:Kann man auf jeden Fall noch etwas verbessern, aber so versteht man wohl am meisten.

Hi,
ja verbessern kann man noch was, und wenn man python lernt, sollte man es vlt. nicht mit verbesserbarem code machen, wobei man natürlich erstmal das prinzip verstehen sollte...
Wenns verstanden ist, kann man aber schön kürzen.
Die vielen raw_inputs finde ich am unschönsten.

Code: Alles auswählen

import pickle
personen=[]

name = True
while name:
    person = []
    for angabe in ("Name", "Vorname", "Alter", "Haafarbe","Groesse"):
          person.append(raw_input("%s der Person eingeben:" %angabe))
    personen.append(tuple(person))

personendatei=file ("Personenbeschreibungsdatei.txt","w")
pickle.dump(personen,personendatei)
personendatei.close()


edit:
Es geht natürlich auch noch kürzer, aber dann wirds wieder unschön :lol:

Code: Alles auswählen

__import__("pickle").dump([tuple([raw_input("%s der Person eingeben"%a) for a in ("Name", "Vorname", "Alter", "Haafarbe","Groesse")]) for i in xrange(int(raw_input("Wie viele Personen sollen eingefuegt werden?")))], file("Pbd.txtt", "w"))

(kann man die Datei noch schließen?)



HEy danke euch allen
besonders dir !!
ich muss die person am ende ausgeben können
also am ende sollen die angaben der personen aufgelistet stehen
mach man das mit print ??
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn
Kontaktdaten:

Beitragvon blackmamba28 » Mittwoch 19. September 2007, 08:33

nkoehring hat geschrieben:Hi... schoen das hier jetzt ein freundliches Level aufkommt.

Dein Code ist ein wenig problematisch. Du solltest dich (wie auch die anderen hier bereits bemerkten) dringend mit den grundlegenden Dingen in Python befassen.

Ach und koenntest du bitte die genauen Aufgabenstellungen posten? Ich werd aus dem, was im ersten Thread steht nicht so wirklich schlau...

Waer doch gelacht, wenn wir dir nicht Python wenigstens grundlegend beibringen koennten ;)



Die aufgaben lauten:

A:

1.) Sie entpickeln ihre liste nach abfrage eines Nachnamens.
Geben sie das geburtsdatum bzw. die klasse der betreffenden personen aus.

2.)
Nach abgfrage einer klasse geben sie alle mitglieder der klasse aus.

3.)
Nach abfrage eines nachnamens entfernen sie die person(den Tupel)
aus der liste. Methode: liste.remove(person)

4.)
Sie fügen einen neuen Personen-Tupel an.

5.)
Nach abfrage eines nachnamens ändern sie die klasse dieser person.
überlegen sie, wie dies mit einem tupel klappen könnte.


B:

gestalten sie für die listen-operation
ein menü: Anlegen, abspeichern, ausgeben, ändern, suchen + ausgeben
löschen , spechern



also am freitag is abgabe wäre noch wenn ich min. 1-2 aufgaben fertig stelle

also der code muss so geändert werden, dass die vorgegeben angaben von 1 bis 5 erfüllt werden
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Re: "Hausaufgabenfragen", evtl. könnt/wollt ihr he

Beitragvon Rebecca » Mittwoch 19. September 2007, 08:50

blackmamba28 hat geschrieben:ich muss die person am ende ausgeben können
also am ende sollen die angaben der personen aufgelistet stehen
mach man das mit print ??

Ja, aber warum probierst du das nicht einfach aus? Das geht doch viel schneller als hier nachzufragen.

Zu Aufgabe 1: Die in dem obigen Programm gepickelte Personenliste kannst du mit pickle.load(...) wieder laden. Dann musst du dir ueberlegen, wie du eine Person mit einem bestimmten Namen aus der Personenliste rausholen kannst.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Mittwoch 19. September 2007, 17:43

Noch ein Tip: Überleg mal, ob ein Dict nicht besser wäre als eine Liste.
BlackJack

Beitragvon BlackJack » Mittwoch 19. September 2007, 19:45

Nicht wenn auf dem Aufgabenzettel Liste vorgeschrieben ist. ;-)
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Donnerstag 20. September 2007, 17:03

BlackJack hat geschrieben:Nicht wenn auf dem Aufgabenzettel Liste vorgeschrieben ist. ;-)

Ja, kommt drauf an, ob mit Liste der Typ gemeint ist, oder nur Liste wie "Einkaufsliste" oder so, also allgemein eine Ansammlung von Daten.
Wenn man die Personen über den Nachnamen finden soll, wär das so am einfachsten. wenn man eine Liste mit Tupeln hat, muss man ja immer suchen...
Man könnte auch eine Parallelstuktur verwenden, also in einem Dict nur die Indexe speichern.

Code: Alles auswählen

l = [("nachname1", "vorname", ...), ("nachname2", ...),...]
d = {"nachname1": 0, "n2":1, ...}

Jedoch ist das auch etwas problematisch oder kann es zumindest werden.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder