Liste--> Werte addieren

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.
Alpha-Phonix
User
Beiträge: 36
Registriert: Dienstag 10. Januar 2006, 13:24
Kontaktdaten:

Liste--> Werte addieren

Beitragvon Alpha-Phonix » Donnerstag 9. Februar 2006, 19:42

Hallo Leute!

mal wieder eine Frage, hab schon paar sachen aussprobiert, aber irgendwie will es net wie ich!
ich habe eine liste, die mit unterschiedlich vielen werten gefüllt werden soll! diese sollen dann unabhängig von der anzahl addiert werden!

wie könnte ich sowas am besten machen?
vielen dank
Never touch a running system...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Liste--> Werte addieren

Beitragvon gerold » Donnerstag 9. Februar 2006, 19:50

Alpha-Phonix hat geschrieben:ich habe eine liste, die mit unterschiedlich vielen werten gefüllt werden soll! diese sollen dann unabhängig von der anzahl addiert werden!

Hi Alpha-Phonix!

Code: Alles auswählen

sum([1, 2, 3, 4, 5, 6.0, 7])
reduce(lambda a, b: a + b, [1, 2, 3, 4, 5.0])

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Alpha-Phonix
User
Beiträge: 36
Registriert: Dienstag 10. Januar 2006, 13:24
Kontaktdaten:

Beitragvon Alpha-Phonix » Freitag 10. Februar 2006, 07:37

ich kriegs irgendwie nicht genau hin....
hier ist mein bisheriger Code:

Code: Alles auswählen

schnittlaenge=figur.rechneSchnittlaenge()
        self.m_SchnittListe.append(schnittlaenge)
def rechneSchnittlaenge(self):
       
        #self.schnitt=self.m_SchnittListe[0]+self.m_SchnittListe[1]
        #print self.schnitt


das in den kommentaren soll nun ersetzt werden, da ich ja normal nicht weiß, wieviel elemente die liste enthält!
Never touch a running system...
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 10. Februar 2006, 08:01

gerold hat dir doch schon die Lösung gegeben:

Code: Alles auswählen

def rechneSchnittlaenge(self):
    self.schnitt = sum(self.m_SchnittListe)
    print self.schnitt

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Alpha-Phonix
User
Beiträge: 36
Registriert: Dienstag 10. Januar 2006, 13:24
Kontaktdaten:

Beitragvon Alpha-Phonix » Freitag 10. Februar 2006, 08:08

vielen dank, es hat geklappt, ihr seit spitze!
Never touch a running system...
Alpha-Phonix
User
Beiträge: 36
Registriert: Dienstag 10. Januar 2006, 13:24
Kontaktdaten:

Beitragvon Alpha-Phonix » Freitag 10. Februar 2006, 08:38

noch ne kleinigkeit, wenn ich jetzt was speicher gibt er zum beispiel 12,456823482348234 aus, wie kann ich des formatieren auf 2 stellen?
Never touch a running system...
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 10. Februar 2006, 08:40


CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
helmut
User
Beiträge: 57
Registriert: Mittwoch 2. November 2005, 07:45
Wohnort: Dormagen

Beitragvon helmut » Freitag 10. Februar 2006, 08:42

Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 10. Februar 2006, 08:43

zu spät :P

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Alpha-Phonix
User
Beiträge: 36
Registriert: Dienstag 10. Januar 2006, 13:24
Kontaktdaten:

Beitragvon Alpha-Phonix » Freitag 10. Februar 2006, 08:43

ja des weiß ich, aber wenn ich des beim speichern mach, dann sagt er mir, dass TypeError: not enough arguments for format string!
weil ich ja noch %s hab

Code: Alles auswählen

def speichern(self):
        f=file("Daten.txt","w")
        f.write("%s\n" % self.m_figurListe)
        f.write("Gesamtflaeche:")
        f.write("%s\n" % self.flaeche)
        f.write("Gesamtschnittlaenge:")
        f.write("%s\n" % self.schnitt)
        f.close()
Never touch a running system...
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 10. Februar 2006, 08:45

Alpha-Phonix hat geschrieben:weil ich ja noch %s hab

Du mußt es ja auch austauschen :roll:

Code: Alles auswählen

def speichern(self):
    f=file("Daten.txt","w")
    #f.write("%s\n" % self.m_figurListe)
    #f.write("Gesamtflaeche:")
    #f.write("%s\n" % self.flaeche)
    f.write("Gesamtschnittlaenge:")
    f.write("%.2f\n" % self.schnitt)
    f.close()

btw. Warum rückst du immer so weit ein?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Alpha-Phonix
User
Beiträge: 36
Registriert: Dienstag 10. Januar 2006, 13:24
Kontaktdaten:

Beitragvon Alpha-Phonix » Freitag 10. Februar 2006, 09:27

des macht mein prog automatisch!
wie kann ich die gespeicherten werte wierder benutzen??
Never touch a running system...
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 10. Februar 2006, 09:31

Du kannst halt per Hand die Datei wieder einlesen und parsen.... Aber nutzt doch einfach den ConfigParser: http://www.python.org/doc/current/lib/m ... arser.html
http://www.python-forum.de/viewtopic.php?t=4676

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 10. Februar 2006, 10:21

Alpha-Phonix hat geschrieben:wie kann ich die gespeicherten werte wierder benutzen??

Hi Alpha-Phonix!

Du kannst deine Datei parsen, indem du alle Zeilen durchläufst und dir die Werte einzeln wieder herausparst.

Falls du aber nicht auf ein spezielles Dateiformat angewiesen bist, dann könntest du deine Daten in ein Standardformat bringen und die dafür vorgesehenen Parser verwenden.

Menschenlesbar:
ConfigParser --> INI-Format
Syck --> YAML-Format
ElementTree --> XML

Maschinenlesbar:
Pickle --> Schnelles Binärformat
Shelve --> dictionaryartiges Binärformat

Oder du schreibst alles in ein Dictionary und lässt dieses dann mit dict_to_file in eine Datei schreiben. Diese kann danach mit file_to_dict wieder ausgelesen werden und liefert dir alle Daten wieder in ein Dictionary zurück. Siehe folgenden Code von Dookie:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
"""
******************************************************************************
* Description:  Speichert ein Dictionary in eine Datei und liest diese
*               auch wieder aus. Vorsicht! Dabei wird allerdings alles in
*               einen String umgewandelt.
* By Dookie:    http://www.python-forum.de/viewtopic.php?t=1785
******************************************************************************
"""

import sys, re

 
#----------------------------------------------------------------------
def dict_to_file(d, name, sep='='):
    items = d.items()
    items.sort()
    f = file(name, 'w')
    for key, value in items:
        f.write('%s\t%s "%s"\n' % (key, sep, str(value)))
    f.close()


#----------------------------------------------------------------------
def file_to_dict(name, sep="="):
    f = file(name,'r')
    c = f.read()
    f.close()
    regex = '((\w+)\s*%s[ \t\f\v]*(("[^"]*")|(\S*))[^\n]*\n)' % sep
    result = dict([(x[1],x[2].strip('"').strip()) for x in re.findall(regex,c)])
    return result

Möglichkeiten gibt es viele. Viel mehr als ich hier aufzulisten vermag. Man muss von Fall zu Fall entscheiden, welchen Aufwand man für die Datenspeicherung treiben möchte.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.

Wer ist online?

Mitglieder in diesem Forum: noisefloor