Werte aus Liste extrahieren

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.
Antworten
Manuel0791
User
Beiträge: 1
Registriert: Freitag 20. Oktober 2017, 22:22

Hey Leute!

Ich bin neu hier im Forum und noch ein ziemlicher Programmieranfänger, also verzeiht mir bitte, wenn ich manches nicht sofort verstehe...
Ich bräuchte bitte ein wenig Hilfestellung bei einer Hausaufgabe, die ich erledigen muss und wo ich momentan leider nicht weiterkomme.
Die Angabe ist Folgende:

"Volumen einer Pyramide:

Definieren Sie eine Liste, die 2 strings enthält: "Seitenlaenge = 7.2" und "Hoehe = 4.52". Seitenlaenge gibt die Länge der Seitenlänge der quadratischen Grundfläche und Hoehe die Höhe der Pyramide an.
Extrahieren Sie die Seitenlänge und die Höhe aus den Strings.
Berechnen Sie das Volumen der Pyramide..." Habe nur mal den Teil gepostet, wo ich hänge.


Zuallererst habe ich nun meine Liste erstellt:

Datenliste = ["Seitenlaenge = 7.2", "Hoehe = 4.52"]

Allerdings hänge ich schon beim nächsten Schritt.

Ich habe versucht mit Datenliste.pop() versucht die beiden aus Datenliste zu entfernen, das haut aber nicht hin. Wenn ich nun 0 oder 1 in die innere Klammer setze, meine ich, dass doch eines der beiden Elemente angesprochen wird, aber ich bekomme die Fehlermeldung: "TypeError: an integer is required". Wie kann ich Seitenlänge und Höhe aus Datenliste extrahieren und dann damit weiterarbeiten?

Würde mich über Hilfe sehr freuen.

Zur Info - ich verwende Python 2.7, da wir damit auch in der Uni arbeiten.

LG
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Ich habe versucht mit Datenliste.pop() versucht die beiden aus Datenliste zu entfernen, das haut aber nicht hin. Wenn ich nun 0 oder 1 in die innere Klammer setze, meine ich, dass doch eines der beiden Elemente angesprochen wird, aber ich bekomme die Fehlermeldung: "TypeError: an integer is required"

Korrekt. Die Fehlermeldung sagt ja auch schon, was du falsch machst: `pop()` erwartet als Argument ein Integer, du übergibst aber eine 1-elementige Liste (und das Element ist ein Integer).

Warum benutzt die eigentlich überhaupt `pop()`? Du weißt, dass deine Liste genau zwei Elemente hat, dann kannst du auch direkt per Index darauf zugreifen. Bzw. es dem gezeigten Teil der Aufgabe geht nicht hervor, dass man das Element entnehmen _und_ löschen soll. Dann wäre `pop()` ok.

Die Aufgabe ist übrigens extrem strage, weil man das im "real life" so nie machen würde. Als Datenstruktur würde man hier ein Dict (oder ggf. Named Tuple) nehmen. Aber vielicht (hoffentlich) hat sich der Aufgabensteller was dabei gedacht ;-)

Gruß, noisefloor
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

Manuel0791 hat geschrieben: Ich habe versucht mit Datenliste.pop() versucht die beiden aus Datenliste zu entfernen, das haut aber nicht hin. Wenn ich nun 0 oder 1 in die innere Klammer setze, meine ich, dass doch eines der beiden Elemente angesprochen wird, aber ich bekomme die Fehlermeldung: "TypeError: an integer is required". Wie kann ich Seitenlänge und Höhe aus Datenliste extrahieren und dann damit weiterarbeiten?

Mein Vorschlag wäre, dass du die Eingabe in ein Dictionary umwandelst, bei dem Länge/Höhe die Schlüssel sind und die Werte die Werte (als Float). Du brauchst dafür eine Schleife und die split() Methode; bei mir sind das 4 Zeilen. Dann kannst du später sowas schreiben: 1/3 * werte['Seitenlaenge']**2 * werte['Hoehe'].
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@noisefloor: ich denke, der Aufgabensteller möchte das Lesen aus einer Datei simulieren, ohne in der Aufgabenstellung schrieben zu müssen, dass man eine Datei mit dem Inhalt "..." erstellen soll, diese dann einlesen, usw.

@Manuel0791: Listoperationen sollten hoffentlich schon in Deiner Vorlesung vorgekommen sein. Was könnte man dazu benutzen, an den Inhalt der Liste heranzukommen?
Antworten