Python Script

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.
Draco2010
User
Beiträge: 40
Registriert: Dienstag 18. August 2009, 06:28

sma hat geschrieben:
Draco2010 hat geschrieben:Stefan alias "sma" hat mir nun eine kleine Möglichkeit von Rechenmöglichkeiten aufgeschrieben:
Ich gebe zu mein Beispiel war "gemein", denn ich habe mutwillig den Titel des Themas missverstanden und gezeigt, wie ich den Kern einer Tabellenkalkulation (das Programm im Gegensatz zu einem Dokument, das ich mit so einem Programm erstelle) in Python bauen würde. Rekursiv ist da eigentlich nichts und Lambda benutze ich auch keines. Ich nutze nur eines der ältesten Entwurfsmuster (ca. 1978), das "Observer Pattern" und allgemein Objektorientierung, um Formel-Objekte zu haben, die Wert- oder andere Formel-Objekte beobachten und sich selbst neu berechnen, wenn die beobachteten Objekte sich ändern.

Stefan
:wink:

Stefan Alias "sma", egal ob die Beispiele gemein waren oder nicht, du hast mir mit Deiner Ausführung noch am besten geholfen :wink:

Gruß
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Wir tappen ja alle noch im Dunkeln, was du eigentlich vor hast. Du leistest da leider keine Abhilfe.
Draco2010
User
Beiträge: 40
Registriert: Dienstag 18. August 2009, 06:28

Es tut mir leid, aber ich kann es leider nicht anders Beschreiben.
Als eine leere Liste erstellen, Zahlen durch INPUT abfragen, und diese in Liste anhängen.
Aber das finde ich in GOOGLE auch noch!

Ich hoffe es kann jemand das ganze Thema löschen, weil es etwas aus dem Ruder geraten ist.

Danke
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Draco2010 hat geschrieben:Ich hoffe es kann jemand das ganze Thema löschen, weil es etwas aus dem Ruder geraten ist.
Themen werden hier nicht gelöscht, wir sind ja nicht die Wikipedia.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

foo:

Code: Alles auswählen

spalte_a,spalte_b,spalte_c, spalte_d
1,2,3,4,5
6,7,8,9,10

Code: Alles auswählen

In [4]: with open('foo') as fobj:
   ...:     l = [line[:-1].split(',') for line in fobj.readlines()]

In [6]: l
Out[6]: 
[['spalte_a', 'spalte_b', 'spalte_c', ' spalte_d'],
 ['1', '2', '3', '4', '5'],
 ['6', '7', '8', '9', '10']]
Sowas?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo Draco!
Draco2010 hat geschrieben:eine leere Liste erstellen

Code: Alles auswählen

liste = []
Draco2010 hat geschrieben:Zahlen durch INPUT abfragen, und diese in Liste anhängen.

Code: Alles auswählen

eingabe = str_input("Bitte geben Sie eine Zahl ein: ")
eingegebene_zahl = int(eingabe)
liste.append(eingegebene_zahl)
print repr(liste)
Aber vielleicht meinst du mit Liste keine in Python übliche Liste, sondern eine Textdatei mit Daten in Zeilen? Das Programm könnte (etwas vereinfacht) so aussehen:

Code: Alles auswählen

while True:
    eingabe = raw_input(u"Bitte geben Sie etwas ein: ")
    if not eingabe: 
        break
    datei = file("/home/gerold/Desktop/dateiname.txt", "a")
    datei.write(eingabe + "\n")
    datei.close()
Das Problem ist nur, dass ich leider nicht verstanden habe, was du wirklich willst. Ich müsste mir vielleicht alle Beiträge nochmal genauer durchlesen... ;-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@Gerold: Tja, das bringt Dich dann zu dem Punkt, an dem das ganze irgend wie obskur mit einer Tabellenkalkulation in Verbindung gebracht wird. Und genau an diesem Punkt "verzeifeln" wir hier bisher, da der OP das nicht präzise darstellen will.
Draco2010
User
Beiträge: 40
Registriert: Dienstag 18. August 2009, 06:28

def max_ind_min_list1_erstellen():
max=[]
min=[]
def eingabe_von_min_und_max_durch_Input():
maxi=input ("Bitte das Maximum eingeben :")
mini=input ("Bitte das Minimum eingeben :")
max.append(maxi)
min.append(mini)

# Weitere ausführung in Worten
# 1.Gebe das "max" der letzten zehn Zahlen aus.
# 2.Gebe das "min" der letzten zehn Zahlen aus.

Es tut mir leid, und ich möchte nicht unhöflich klingen, aber ich verstehe nicht, was daran nicht zu verstehen ist!

Das Programm soll mir keine Tabellenkalkulation erstellen, und auch keine ansammlung von Zahlen aufzeigen.
Sondern es soll "nur Zahlen abfragen" einmal das Minimum und das Maximum.
Diese zwei Zahlen, was durch den User eingegeben wurden, sollen in der Liste eingetragen/angehangen werden.

"Gerold" hat schon den richtigen Ansatz gemacht, leider funktioniert es nicht.

Habe auch schon versucht mit append Zahlen anzuhängen, leider lässt sich nur ene Zahl anhängen.

Schöne Grüsse
Draco
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Draco2010 hat geschrieben: Es tut mir leid, und ich möchte nicht unhöflich klingen, aber ich verstehe nicht, was daran nicht zu verstehen ist!
Du postest unkommentierten Quellcode ohne code-Tags zu benutzen und erwartest, dass man Dir das sagt, was Du hören willst. Wieso schreibst Du nicht einfach auf, was Du willst und wo Du glaubst, dass das Problem liegt? Was soll man anhand dieses Schnipsels Dir denn nun sagen?
Das Programm soll mir keine Tabellenkalkulation erstellen, und auch keine ansammlung von Zahlen aufzeigen.
Ok. Dann hast Du uns zu Beginn des Threads aber auf eine sehr falsche Fährt getrieben... :roll:
Sondern es soll "nur Zahlen abfragen" einmal das Minimum und das Maximum.
Das ist ja leicht gemacht - Du hast es uns ja sogar gezeigt (wobei man input nur in Python3 so benutzt; in Python 2.x nutzen raw_input() stattdessen)
Diese zwei Zahlen, was durch den User eingegeben wurden, sollen in der Liste eingetragen/angehangen werden.
Was ist "die" Liste? Wo kommt die her?
"Gerold" hat schon den richtigen Ansatz gemacht, leider funktioniert es nicht.
Inwiefern? "Funktioniert nicht" sagt nivht viel aus! (Fehlermeldung, oder Beschreibung, was Du Dir anders vorstellst!)
Habe auch schon versucht mit append Zahlen anzuhängen, leider lässt sich nur ene Zahl anhängen.
Um mehrere Elemente zu einer Liste hinzuzufügen kann man entweder eine Schleife drum herum basteln oder eben extend() mit einem Mutable Sequence Typ als Argument. Steht alles in der Doku und wird auch im Tutorial behandelt!

Code: Alles auswählen

# unsere Liste
l = []

# wir packen mal ein paar Zahlen dran
l.append(1)
l.append(2)
l.append(3)

# ... *gähn*!
for value in xrange(100):
    l.append(value)

# besser
l.extend(xrange(100))
So, was genau ist denn nun noch unklar?
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

@Dauerbaustelle: Du kannst über die Datei direkt iterieren anstatt readlines() zu benutzen. Dein Beispiel würde ich mit dem csv Modul (wenn es sich nicht um Unicode Output handeln muss, womit csv noch nicht zurecht kommt) einlesen anstatt es manuell zu machen, obwohl es natürlich trivial möglich ist.
Antworten