Python Zahlenvergleich in liste

S

SunTzu2010

Hallo

vielleicht könnte mir jemand bei meinem kleinen Problem helfen ?

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:
            listemax.append(int(maximum))
            listemin.append(int(minimum))

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

a,b=liste()
print a,b

Folgenden Script habe ich zusammen; Zahlen in Listen anhängen!

Könnte mir jemand sagen, wie ich es anstellen kann, dass ich aus der Liste, dass MIN und MAX der letzten 10 eingegebenen Zahlen angezeigt bekomme!

Besten Dank!
Gruss
 
Hi,

speichere die letzten 10 eingaben, indem du einen Counter in der Schleife mitlaufen laesst, und in 2 neuen listen mit modulo speicherst (last10max[counter % 10] = foo).
Am Ende einfach mit max() und min() das Maximum und Minimum bestimmen.

Edit:
Statt einem leeren except willst du wahrscheinlich 'except Exception', es sei denn du willst tatsaechlich auch KeyboardInterrupts und aehnliches auffangen (Python >= 2.5).

mfg,
bytepool
 
Hallo

Python ist noch neu für mich :hilfe2:

Wo trage ich das im Script ein ?

Und wie Rücke ich mit der Schleife ein ?

Sorry für die Unwissenheit :think:

Gruss
 
Hi,

was ist an der Loesung noch unklar? Vorkauen werde ich es dir nicht, da bin ich zu faul fuer, und der Lerneffekt geht fuer dich dann auch gegen Null.

mfg,
bytepool
 
Zuletzt bearbeitet:
Hallo

Ohne Landkarte, ist der Weg schwer zu finden!

Normalerweise konnte man die Anzeige der letzen zehn Elemente mit [-10] Anzeigen oder ?

Wie soll ich lernen, wenn ich nicht weiss, wo ich suchen soll?(

Gruß
 
Hi,
Normalerweise konnte man die Anzeige der letzen zehn Elemente mit [-10] Anzeigen oder ?
fast, um mehr als ein Element zu bekommen musst du slicing verwenden. Im Grunde ist das logischer als extra Listen zu benutzen, stimmt schon.

Beispiel:
Code:
>>> l = []
>>> for i in range(1, 21):
...     l.append(i)
...
>>> l[-10:]
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

mfg,
bytepool
 
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:
            listemax.append(int(maximum))
            listemin.append(int(minimum))

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

print listemax [-10:]
print listemin [-10:]

Ich habe zwar die [-10:] eingefügt, aber jetzt wird ein Fehler Angezeigt :think:
Code:
 l = []
>>> for i in range(1, 21):
...     l.append(i)

Hier hast Du eine Liste erzeugt, die ich nicht übernehmen soll?(
Unter Slicing habe ich auch nichts gefunden! Was nu:think:

Gruss
 
Ehm, also ausser dass du noch ein paar Python Tutorials durcharbeiten solltest hab ich da nicht mehr viel zu sagen. Dir fehlen ja scheinbar wirklich noch alle Grundlagen...
Sorry, das macht so keinen Sinn. Schau dir das Prinzip von Lokalitaet von Variablen nochmal an, und wie das mit Rueckgabewerten von Funktionen funktioniert.

Edit:
Oder vor allem wenn es deine erste Programmiersprache ist, besser noch, ein gutes Buch. Tutorials sind IMHO meistens nur dann sinnvoll, wenn man wenigstens eine Sprache schon halbwegs kann.

mfg,
bytepool
 
Zuletzt bearbeitet:
Hallo

Danke für den Tipp, werde ich mir mal anschauen:bounce:

Gruß
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Habe Deinen Rat befolgt, und nach dem ersten Satz des durchlesens, ist es mir eingefallen, dass ich den Block verlassen habe, deshalb die Fehlermeldung.

Jetzt funktioniert es, natürlich nur das Fundament des Programms!
Danke für die Hilfestellung:)

Beste Grüsse
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Themen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Shellskript - Fehler in Cron

wxPython Problem

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

Zurück
Oben