Seite 1 von 1

Listen

Verfasst: Sonntag 18. Oktober 2020, 17:59
von StevenB99

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?

Re: Listen

Verfasst: Sonntag 18. Oktober 2020, 18:08
von sparrow
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))

Re: Listen

Verfasst: Sonntag 18. Oktober 2020, 18:16
von Sirius3
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))