Listen

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
StevenB99
User
Beiträge: 33
Registriert: Donnerstag 4. Juni 2020, 23:12

Code: Alles auswählen

# eine Liste mit 10 Elementen erstellen
liste = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
schleife = 0
summe = 0

# die Werte einlesen
while schleife < 10:
    liste[schleife] = int(input("Bitte geben Sie den " + str(schleife + 1) + " . Wert ein: "))   #Diesen Teil verstehe ich nicht
    schleife = schleife + 1

# die Werte mit einer for-Schleife verarbeiten
for wert in liste:
    summe = summe + wert

# das Ergebnis ausgeben
print(summe)
Kann mit einer diese Zeile erkläre?

Code: Alles auswählen

 liste[schleife] = int(input("Bitte geben Sie den " + str(schleife + 1) + " . Wert ein: "))
Warum kommen die plus zeichen vor und nach str(schleife+1) und warum muss ich (schleife +1) in ein str umwandeln? Man kann noch nur mit int rechnen , strings sind doch nur für zeichenketten da . Ich habe int(input.....) und str(schleife +1) .

Bei liste[schleife] wird hier schleife in liste eingefügt oder wie ist das zu verstehen?
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Zerleg den ganzen Kram doch mal in seine Einzelteile.

Das '=' zeigt, dass es eine Zuweisung an eine Variable gibt, die links von dem = steht. liste ist eine Liste mit einem schlechten Namen. schleife ist leider auch ein schlechter Name für eine Zahl, die hochgezäkt wird.
Elemente einer Liste kann man über deren Index ansprechen. Das ist, was hier passiert.

Zeichenketten kann man mit + zusammenfügen. Macht man aber nicht. Stattdessen nutzt man die Python eigenen String-Formatierungen. Schön und neu sind f-Strings.
str() wandelt etwas in eine Zeichenkette um, int() etwas in int.
Wenn man also, so wie du (und wie man es nicht macht) Zeichenketten mit + Zusammenstückelt muss man das Häppchen int zwichendurch in eine Zeichenkette wandeln.

Man estellt in Python keine Listen mit Dummy-Elementen.
Man zählt in Python keine Lauvariable selbst hoch.

Etwas hübscher sieht der Code dann so aus:

Code: Alles auswählen

VALUES_COUNT = 10

values = []

for count in range(1, VALUES_COUNT+1):
    value = int(input(f"Bitte geben Sie den {count}. Wert ein: "))
    values.append(value)

print(sum(values))
Sirius3
User
Beiträge: 18273
Registriert: Sonntag 21. Oktober 2012, 17:20

Das ist eigentlich ein Fall für Listcomprehension:

Code: Alles auswählen

VALUES_COUNT = 10

values = [
    int(input(f"Bitte geben Sie den {count}. Wert ein: "))
    for count in range(1, VALUES_COUNT+1):
]
print(sum(values))
Antworten