Seite 1 von 1
Frage zu Funktionen/Module
Verfasst: Dienstag 1. Oktober 2024, 11:07
von jens.ulrich2
Hallo Zusammen.
Ich habe folgende Aufgabe und stehe völlig auf dem Schlauch. Kann mir jemand weiterhelfen?
was muss in den Abschnitt "?" geschrieben werden, um die letzte Zahl im Array zu quadrieren?
def func():
numbers = [2, 4, 8, 64]
squares = [number**2 for number in numbers]
print(squares[?????]) # ?????????
func()
Als Hinweis habe ich bekommen "Beginnen die Indexwerte bei 0 oder 1?"
Danke vorab

Re: Frage zu Funktionen/Module
Verfasst: Dienstag 1. Oktober 2024, 15:10
von Sirius3
Wie man quadriert, siehst Du ja schon in der Zeile davor. Dazu musst Du auch etwas hinter ] schreiben.
Wichtig ist, dass Du keine Arrays hast, sondern Listen.
Wie man mit Listen arbeitet, steht im Tutorial:
https://docs.python.org/3/tutorial/intr ... html#lists
Re: Frage zu Funktionen/Module
Verfasst: Dienstag 1. Oktober 2024, 16:56
von jens.ulrich2
Um ganz ehrlich zu sein versteh ich das einfach nicht. Kannst du mir die Lösung aufzeigen damit ich es verstehe?
Re: Frage zu Funktionen/Module
Verfasst: Dienstag 1. Oktober 2024, 17:32
von Dennis89
Was genau verstehst du denn nicht?
Grüße
Dennis
Re: Frage zu Funktionen/Module
Verfasst: Dienstag 1. Oktober 2024, 17:39
von snafu
jens.ulrich2 hat geschrieben: Dienstag 1. Oktober 2024, 16:56
Um ganz ehrlich zu sein versteh ich das einfach nicht. Kannst du mir die Lösung aufzeigen damit ich es verstehe?
So wird das auf Dauer nix. Du belegst ja offensichtlich einen Kurs. In welchem Zusammenhang denn? Schule, Studium oder was genau?
Re: Frage zu Funktionen/Module
Verfasst: Dienstag 1. Oktober 2024, 17:42
von narpfel
Um wortwörtlich die gegebene Aufgabe zu lösen, würde ich das hier vorschlagen:
Code: Alles auswählen
def func():
numbers = [2, 4, 8, 64]
squares = [number**2 for number in numbers]
print(squares[(squares.__setitem__(-1, squares[-1] ** 2), -1)[-1]])
SCNR
Re: Frage zu Funktionen/Module
Verfasst: Dienstag 1. Oktober 2024, 19:41
von grubenfox
Huch, das geht wirklich? Aber ich hatte schon befürchtet, dass die Lösung (wenn es denn eine gibt) für mich nicht wirklich offensichtlich sein wird.... Faszinierend! Gruselig...

Re: Frage zu Funktionen/Module
Verfasst: Dienstag 1. Oktober 2024, 20:30
von Sirius3
@narpfel: Ich vermisse ja bei der Lösung das Array. Ich denke, das muß man erst noch erzeugen.
Code: Alles auswählen
print(squares[(a:=array.array("i", [1, 3, 4])).append(a.pop() ** 2) or ...]) # letzte Zahl im Array quadrieren
@jens.ulrich2: natürlich sind das alles nicht die von Deinem Lehrer erwarteten Lösungen, sondern die, wenn man den Aufgabentext wörtlich liest.
Hast Du den von mir verlinkten Teil des Tutorials gelesen? Da steht die Lösung, sogar mit den selben Variablennamen.
Re: Frage zu Funktionen/Module
Verfasst: Dienstag 1. Oktober 2024, 21:08
von DeaD_EyE
jens.ulrich2 hat geschrieben: Dienstag 1. Oktober 2024, 11:07
was muss in den Abschnitt "?" geschrieben werden, um die letzte Zahl im Array zu quadrieren?
Wieso denn? Es sind doch bereits alle Zahlen in squares quadriert.
Wenn es darum geht etwas mit dem letzten Element einer Liste etwas zu machen:
Code: Alles auswählen
msg = ["Hello", "World"]
# z.B. das letzte Element addressieren und in GROßBUCHSTABEN umwandeln:
print(msg[-1].upper())
# Zuweisung geht auch
msg[-1] = 42
# und das geht auch
msg[-1] **= 2
Das erste Element einer Liste hat immer den Index 0 und das letzte Element einer Liste bekommt man mit dem Index -1. Das Vorletzte mit -2 usw....