Frage zu Funktionen/Module

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
jens.ulrich2
User
Beiträge: 2
Registriert: Dienstag 1. Oktober 2024, 11:03

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 :)
Sirius3
User
Beiträge: 18253
Registriert: Sonntag 21. Oktober 2012, 17:20

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
jens.ulrich2
User
Beiträge: 2
Registriert: Dienstag 1. Oktober 2024, 11:03

Um ganz ehrlich zu sein versteh ich das einfach nicht. Kannst du mir die Lösung aufzeigen damit ich es verstehe?
Benutzeravatar
Dennis89
User
Beiträge: 1518
Registriert: Freitag 11. Dezember 2020, 15:13

Was genau verstehst du denn nicht?

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
snafu
User
Beiträge: 6850
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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?
narpfel
User
Beiträge: 690
Registriert: Freitag 20. Oktober 2017, 16:10

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
Benutzeravatar
grubenfox
User
Beiträge: 602
Registriert: Freitag 2. Dezember 2022, 15:49

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... ;)
Sirius3
User
Beiträge: 18253
Registriert: Sonntag 21. Oktober 2012, 17:20

@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.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1224
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

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....
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten