Pyton - Zahlen anhängen und bearbeiten

Hallo

Vielleicht könnte mir jemand Helfen!

Ich erstelle in Python (2.7) eine leere Liste.
liste=[]
Mit "Int_Input" werden Zahlen abgefragt.
Die Eingaben sollen in der Liste mit "append" angehangen werden.
Sobald die Liste mehr als 11 Elemente enthällt, sollen nur die letzten 10 Elemente berücksichtigt werden::rolleyes:

Vielen Dank
 
Hallo,

für solche Strukturen nimmt man normalerweise einen Ringbuffer.
Aber du kannst auch nach jedem Einfügen einfach überprüfen, ob len(liste) > 10 gilt und in diesem Fall die Liste mit
Code:
liste = liste[-10:]
auf die letzten 10 Elemente verkürzen.

Hier steht auch noch einiges über Listen-Operationen: http://effbot.org/zone/python-list.htm

Gruß, metax.
 
Besten dank für die Auskunft:)

Eine Frage noch, mit liste.append() lassen sich Zahlen anhängen, ist nachvollziehbar.
Wie ist es aber wenn das Programm Zahlen durch INPUT abfragt. Können diese Zahlen auch angehängt werden ? Wenn ja wie ?


Schönen Gruss
 
Hallo

habe folgendes getestet:
liste=[]
listea.append=raw_input("Zahl eingeben :")
liste.append(raw_input(listea))
print liste


Bei diesem Skript erscheint die eingegebene Zahl, und unten drunter die leere Liste [' ']

Ist das normal, oder wurde etwas vergessen!
Danke
 
Der Code wird so eine wie du ihn gepostet hast eine Fehlermeldung erzeugen.

Code:
liste=[]
foobar=raw_input("Zahl eingeben: ")
try:
    liste.append(int(foobar))
except:
    print "Keine Zahl eingegeben"
 
Danke vielmals für die Auskunft!
Euer Forum ist eine echte Bereicherung:)

noch eine kleine Bitte.....ich müsste zwei Eingaben machen.
Einmal die Eingabe (MAXIMUM), danach die Eingabe für (MINIMUM)!
Kann man eine "zweite Liste" einfügen, wie auch das "foobar=raw_input()", oder sollte man den Skript umschreiben.

Danach müsste ich eine Sprungmarke zu Formel definieren. Sobald die Formel errechnet ist. Ausgabe der Ergebnisse für (MAXIMUM) und das (MINIMUM), uns wieder Sprung zur Eingabe von (MAXIMUM) und (MINIMUM) einer Zeitperiode.

Falls es Quellen für diese Probleme gibt, wäre ich sehr dankbar für einige Links.

Einen schönen Gruss
 
listemax=[]
listemin=[]
foobar=raw_input("Max Zahl eingeben: ")
foobar=raw_input("Min Zahl eingeben: ")
try:
.....listemax.append(int(foobar))
.....listemin.append(int(foobar))
except:
.........print "Keine Zahl eingegeben"

print listemax;
print listemin;


(....)Punkte dienen nur als Platzhalter im Script oben!
Habe versucht einfach noch etwas hinzuzufügen, klappt leider nicht!

Gruss
 
1. Was genau geht nicht dein code rennt bei mir ohne probleme
Aber dir ist eh klar das foobar bei der 2. eingabe ueberschrieben wird wenn du beide values willst musst du schon ne zweite Variable verwenden :-p

2. Sprungmarken sind ein no go heutzutage ich wage zu bezweifeln das du irgendwas brauchst was sich nicht durch eine Schleife loesen lassen kann.

Edit: In deinems script sind die Abstaende nicht gleich wenn "." = abstand das print "Keine Zahl eingeben" sollte auf selber hoehe wie wir die listemax dinger sein.
 
Zuletzt bearbeitet:
Hallo

Habe meine Open Office Tabelle heruntergeladen (Zahlen irrelevant da geändert, und nur ein ausschnitt), bzw. erste 10000 Zeilen.

http://www.file-upload.net/download-2180939/Produktion.ods.html

Folgendes Problem:
Open Office Tabelle zu unübersichtlich bei der Anzahl von Spalten.

In Python möchte ich nur eine Maske erstellen......
In der Maske soll man nur das "Maximum" und das "Minimum" einer Stunde eingeben können.
Diese Eingaben werden in die ListeMax und ListeMin zu auswertung angehängt/gespeichert!

Im Hintergrund wird das Max/Min für den TAG/WOCHE/MONAT ausgerechnet/ermittelt, und als

TAGMAX; TAGMIN; - WOCHEMAX; WOCHEMIN; - MONATMIN; MONATMAX;

ausgegeben.

Danach geht's zurück über eine Schleife zur Eingabe von Stunde(Max); Stunde(Min).

Ich hoffe die Beschreibung ist verständlich, und aus der Tabellenkalkulation sind die Formeln nachvollziehbar, leider sind die Formeln zum Teil nicht richtig kopiert, aber alles Bezieht sich auf Stunde, Tag, Woche, Monat!

Besten Dank für eure Hilfe, ich weiss es zu schätzen;):)
 
Ok Alles klar. Frage waers nicht viel angenehmer wenn du direkt die Werte aus einer Date einlesen koenntest und dann ausrechnen auf die art und weise musst du nicht zig mal durch die Eingabe..

Desweiteren wuerde ich dafuer schon fast eine Datenstruktur hernehmen z.B Time und da alle Felder rein max und min und saemtliche Funktionen die du brauchst. Dann verarbeitest du das imput file und rechnest bzw schreibst alles in ein Objekt von Typ time und speicherst die in der Liste.
 
Muss net mal ne lib sein exportier das ganze als CSV und dann mach ein string split auf "," und such dir die spalte die du brauchst.
 
Besten Dank für die Auskünfte, man lernt immer etwas Neues dazu.

Sagen wir mal, die Daten müssten "in Realtime" ausgewertet werden.
Die Ansammlung der Ergebnisse ensteht erst durch die Zeit!

Mir ist letzlich nur wichtig dass ich die Auswertungen für die letzte Stunden;Tage;Wochen;Monate auf einen Blick erhalte.

Die Jahresliste dient nur deshalob, dass man die Prozedere nachvollziehen kann.

Also für mich ist es sehr wichtig, die Eingabe schleifen zu durchlaufen.

Wäre auch nett wenn ihr mir sagen könntet, wi ich hier mein scriptcode posten kann!

Dank euch!
 
Besten Dank für die Auskünfte, man lernt immer etwas Neues dazu.

Sagen wir mal, die Daten müssten "in Realtime" ausgewertet werden.
Die Ansammlung der Ergebnisse ensteht erst durch die Zeit!

Mir ist letzlich nur wichtig dass ich die Auswertungen für die letzte Stunden;Tage;Wochen;Monate auf einen Blick erhalte.

Die Jahresliste dient nur deshalb, dass man die Prozedere nachvollziehen kann.

Also für mich ist es sehr wichtig, die Eingabe-Schleifen zu durchlaufen.

Wäre auch nett wenn ihr mir sagen könntet, wie ich hier mein "scriptcode" posten kann!

Dank euch!
 
Hallo

Mit dem folgenden Skript bin ich zufrieden:

Code:
listemax=[]
foobar=raw_input("Max Zahl eingeben: ")
try:
    listemax.append(int(foobar))
except:
    print "Keine Zahl eingegeben"
listemin=[]
footbar=raw_input("Min Zahl eingeben:  ")
try:
    listemin.append(int(footbar))
except:
    print "Keine Zahl eingegeben"

print listemax
print listemin
Wie erstelle ich die Schleife, wieder zum Input ?

Danke
 
foobar bzw. foo und bar sind nur Namenshalter. Du solltest Variablen einen Namen geben, der darauf hinweist wofür die Variable zuständig ist.

Code:
def liste(listemax=[], listemin=[]):

    while True:
        maximum=raw_input("Max Zahl eingeben: ")
        minimum=raw_input("Min Zahl eingeben:  ")

        try:
            listemax.append(int(maximum))
            listemin.append(int(minimum))
            return listemin, listemax

        except:
            print "Falsche Eingabe...bitte wiederholen"

a,b=liste()
print a,b
 
Zuletzt bearbeitet:
Besten Dank für die Berichtigung, hat mich echt weitergebracht:):wink:

Kann ich mit "return" wieder zum Input, denn ich brauche mindestens zehn Zahlen in der Liste :thumb_up:

Schönen Gruß
 
Code:
def liste(listemax=[], listemin=[]):

    while True:
        maximum=raw_input("Max Zahl eingeben: ")
        minimum=raw_input("Min Zahl eingeben:  ")

        if (not maximum) and (not minimum):             
            return listemin, listemax

        try:[QUOTE]
            listemax.append(int(maximum))
            listemin.append(int(minimum))

        except:
            print "Falsche Eingabe...bitte wiederholen"

a,b=liste()
print a,b

Wenn du weder bei maximum noch bei minimum was eingibst, ist die Schleife beendet.
 
Zurück
Oben