Die float-int-Wandlung in Python
»range« erwartet ganzzahlige Werte. Zahlen mit Nachkommstellen sind dort nicht gestattet. Eine Zahl mit Nachkommastellen muß daher mit »int« in eine ganze Zahl gewandelt werden, bevor sie in »range« verwendet werden kann.
- Zauberrolle
from itertools import *
from random import *
from time import *
from turtle import *
from winsound import *x = 3.9
print( x )
n = int( x )
print( n )
for i in range( n ):
print( '', i )- Ausgabe
3.9
3
0
1
2
Auch an manchen anderen Stellen, wie bei Vervielfachungen werden ganzzahlige Werte benötigt.
- Zauberrolle
from itertools import *
from random import *
from time import *
from turtle import *
from winsound import *x = 3.9
n = int( x )
print( n * 'abc' )
print( n *( 0, 1 ))
- Protokoll
abcabcabc
(0, 1, 0, 1, 0, 1)
Ein anderes Beispiel ist »Beep«.
- Zauberrolle
from itertools import *
from random import *
from time import *
from turtle import *
from winsound import *x = 1000/2
Beep( x, 100 )
- Protokoll
TypeError: integer argument expected, got float
- Zauberrolle
from itertools import *
from random import *
from time import *
from turtle import *
from winsound import *x = 1000/2
n = int( x )
Beep( n, 100 )
- Protokoll
- (keine Fehlermeldung mehr)
Die Liste »( 38.57142857142858, 50.0, 11.428571428571429 )« enthält die prozentualen Anteile von drei Parteien bei Wahlen. Durchlaufen Sie diese Liste in einer Zauberrolle und geben Sie entsprechend viel Sternchen in einer Zeile aus (eine Zeile mit 38 Sternchen, eine Zeile mit 50 Sternchen und eine Zeile mit 11 Sternchen).
(Falls die Liste in der Zauberrolle später durch eine andere Liste mit Kommazahlen ersetzt wird, sollten dann diese neuen Kommazahlen verwendet werden.)
zur Kontrolle Die Lösung sollte also mit der folgenden Zeile beginnen.
- Zeile
l =( 38.57142857142858, 50.0, 11.428571428571429 )
Danach sollten die Werte der Liste ›l‹ entnommen werden.
zur Kontrolle Falls die erste Zeile der Lösung später durch die folgende Zeile ersetzt wird, sollte die darunter gezeigte Ausgabe entstehen.
- Zeile
l =( 3.0, 3.0, 2.0, 2.0, 3.0, 1.0 )
- Ausgabe
***
***
**
**
***
*