for in range

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
Benutzeravatar
michi-monster
User
Beiträge: 48
Registriert: Donnerstag 7. Dezember 2017, 18:30
Kontaktdaten:

Halli, ich bin ein Python - Neuling.
Habe gerade versucht eine Aufgabe aus einem Buch zu machen. Leider funktioniert es nicht. Allerdings kommt kein Fehler.
Es soll eine Liste von inch-Werten mit Umrechnung in cm erstellt werden. Mit 5 Inch Abstand.
So:
15 inch = 38.1 cm
20 inch = 50.8 cm
etc,

Meine bisherige Datei:

Code: Alles auswählen

a=15
b=a*2,54
for a in range (15,5,5):
        print(b)
Wo liegt der Fehler?
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du hast diverse Fehler.

Zum einen definierst du den Umrechnungsfaktor als Tupel (2, 54) Weile du ein Komma verwendest. Benutze einen Punkt.

Zum anderen musst du die Berechnung schon IN der Schleife machen. Nicht nur einmal davor.
Benutzeravatar
michi-monster
User
Beiträge: 48
Registriert: Donnerstag 7. Dezember 2017, 18:30
Kontaktdaten:

ok, danke. Da bin ich schonmal weiter. Leider zeigt er jetzt nur das Ergebnis für die erste Zahl an. So wie ich es verstanden habe, sollten doch die Zahlen von 15 - 45 zur Berechnung genonmmen werden, oder? Wo hängt es jetzt?

Code: Alles auswählen

a=15
b=a*2.54
for a in range (15,45,5):
        print(b)
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Habe ich dir schon geschrieben. Du musst schon meine ganze Antwort lesen.
nono191
User
Beiträge: 38
Registriert: Dienstag 6. Oktober 2015, 13:01

Wieso erwartest du dass das in der for Schleife irgendetwas berechnet?

Code: Alles auswählen

a = 15                      # a == 15
b = a * 2.54                # b == 15 * 2.54 == 38.1
# Du überschreibst die Variable a:
for a in range(15, 45, 5):  # Jedes fünfte Element 
        print(b)            # Du gibst b aus.

Code: Alles auswählen

>>> a = 15
>>> b = a * 2.54
>>> print(b) == print(38.1)
38.1
38.1
True

Code: Alles auswählen

>>> list(range(15, 45, 5))
[15, 20, 25, 30, 35, 40]
>>> for i in range(15, 45, 5):
...     print(i)
15
20
25
30
35
40
Python Dokumentation zu Range
Python Dokumentation zu Funktionen

Hoffe du kommst damit weiter und viel Erfolg. :)
nono
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

@nono191:

Code: Alles auswählen

>>> print(42) == print(27)
42
27
True
nono191
User
Beiträge: 38
Registriert: Dienstag 6. Oktober 2015, 13:01

@narpfel
Oops hab mich schon gefreut dass es ging...
Jedoch

Code: Alles auswählen

>>> a = 15
>>> b = a * 2.54
>>> for i in range(15, 45, 5):
...     print("for a in range(15, 45, 5):   # a == ", i,
...         "\n\tprint(b)                 # b == ", b)
# Die verschiedenen Durchläufe der for Schleife 
for a in range(15, 45, 5):   # a ==  15 
	print(b)                 # b ==  38.1
for a in range(15, 45, 5):   # a ==  20 
	print(b)                 # b ==  38.1
for a in range(15, 45, 5):   # a ==  25 
	print(b)                 # b ==  38.1
for a in range(15, 45, 5):   # a ==  30 
	print(b)                 # b ==  38.1
for a in range(15, 45, 5):   # a ==  35 
	print(b)                 # b ==  38.1
for a in range(15, 45, 5):   # a ==  40 
	print(b)                 # b ==  38.1
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte gaaaanz schnell vergessen, das es den python-kurs.eu gibt. Der ist Mist. So hat "id" etwa genau *GARNIX* mit der Art einer Variablen zu tun. Das waere eher "type". Und dein Problem hat was mit der verwandten Python-Version zu tun, du benutzt 3, und da ist print eine Funktion, und nicht mehr ein statement. "print irgendwas" muss also umgewandelt werden zu "print(irgendwas)".
Benutzeravatar
michi-monster
User
Beiträge: 48
Registriert: Donnerstag 7. Dezember 2017, 18:30
Kontaktdaten:

ok - dank dir. Mit der Seite bin ich jetzt auch ein wenig durcheinander geworden. Werd nochmal genauer in mein Buch schauen. Hast du denn nen Tipp für ne gute Seite?
Antworten