Zahlen und Rechnen
In Python 3 ergibt 7 / 2 den Wert 3.5, 7 // 2 ergibt 3 und 7 % 2 ergibt den Rest 1.
Vier Divisionen zum Vorhersagen, bevor du weiterliest
Decke die Ausgabe unten ab und schreibe auf, was jede Zeile deiner Erwartung nach ausgibt. Die meisten haben die erste richtig und mindestens eine der anderen falsch, und dieser falsche Tipp ist der Ausgangspunkt dieser Einheit.
print(7 / 2)
print(8 / 2)
print(7 // 2)
print(7 % 2)3.5
4.0
3
1Die zweite Zeile überrascht. 8 / 2 ist genau 4, doch Python gibt 4.0 aus. Der Grund ist, dass / immer einen float ergibt, eine Zahl mit Dezimalpunkt, auch wenn die Division aufgeht. Willst du eine Division mit ganzer Zahl, hat Python einen eigenen Operator, //, die ganzzahlige Division. Sie teilt und rundet dann auf die ganze Zahl darunter ab. Der Partner-Operator % gibt den Rest, der übrig bleibt. Zusammen beantworten sie die Grundschulfrage „7 geteilt durch 2 ist 3, Rest 1“.
% taucht an mehr Stellen auf, als du erwartest. Eine Zahl ist gerade, wenn n % 2 gleich 0 ist. Die letzte Ziffer einer Zahl ist n % 10. 135 Minuten in Stunden und Minuten umzurechnen ist 135 // 60 Stunden und 135 % 60 Minuten.
minutes = 135
print(minutes // 60, "h", minutes % 60, "min")
print(2026 % 2, 2027 % 2)
print(4589 % 10)2 h 15 min
0 1
9Die anderen Operatoren und die Reihenfolge, die Python nutzt
| Operator | Bedeutung | Beispiel | Ergebnis |
|---|---|---|---|
| + | addieren | 7 + 2 | 9 |
| - | subtrahieren | 7 - 2 | 5 |
| * | multiplizieren | 7 * 2 | 14 |
| / | dividieren (float) | 7 / 2 | 3.5 |
| // | ganzzahlige Division | 7 // 2 | 3 |
| % | Rest | 7 % 2 | 1 |
| ** | Potenz | 7 ** 2 | 49 |
Python folgt derselben Reihenfolge wie der Matheunterricht: zuerst **, dann *, /, // und %, dann + und -, innerhalb jeder Gruppe von links nach rechts. Klammern gehen allem vor, setze sie im Zweifel also. Sie kosten nichts und machen die Absicht für die nächste Leserin klar.
print(2 + 3 * 4)
print((2 + 3) * 4)
print(2 ** 10)
print(10_000 * 3)14
20
1024
30000Die letzte Zeile zeigt eine kleine Hilfe: Python erlaubt Unterstriche in langen Zahlen, 10_000 ist also leichter zu lesen als 10000. Sie werden beim Berechnen ignoriert und erscheinen nicht in der Ausgabe. Kommas lassen sich so nicht nutzen, weil ein Komma schon „nächster Wert“ bedeutet.
Dezimalzahlen werden binär gespeichert, deshalb weichen manche Antworten minimal ab
Probiere 0.1 + 0.2. Das Python-Tutorial widmet ein ganzes Kapitel der Frage, warum die Antwort 0.30000000000000004 statt 0.3 lautet. Floats werden binär gespeichert, und 0.1 hat keine genaue Binärform, so wie 1/3 keine genaue Dezimalform hat. Der Fehler ist winzig, und round() verbirgt ihn beim Ausgeben. Beachte, dass round() einen Wert genau in der Mitte zum geraden Nachbarn rundet: Die Seite zu den eingebauten Funktionen nennt round(0.5) als 0 und round(1.5) als 2. Für Geld in ganzen Won oder ganzen Cent halte Beträge als int und vermeide das Problem ganz.
print(0.1 + 0.2)
print(round(0.1 + 0.2, 2))
print(round(0.5), round(1.5), round(2.5))
print(int(3.99), float(7))0.30000000000000004
0.3
0 2 2
3 7.0input() gibt dir immer einen String
input() zeigt eine Eingabeaufforderung, wartet, bis der Nutzer etwas tippt und Enter drückt, und gibt das Getippte als String zurück. Auch wenn jemand 15 tippt, erhältst du "15", Text. Um damit zu rechnen, wandle ihn mit int() oder float() um. int() schneidet bei einem float den Nachkommaanteil ab, statt zu runden, int(3.99) ist also 3.
age = input("How old are you? ")
next_year = int(age) + 1
print("Next year you will be", next_year)How old are you? 14
Next year you will be 15| / | Division, die immer einen float ergibt: 8 / 2 ist 4.0 |
| // | Ganzzahlige Division: 7 // 2 ist 3 |
| % | Rest: 7 % 2 ist 1 |
| ** | Potenz: 2 ** 3 ist 8 |
| int() | Macht aus "15" oder 3.9 eine ganze Zahl (15, 3) |
| input() | Liest eine vom Nutzer getippte Zeile als String |
| round(x, n) | Rundet auf n Dezimalstellen; bei exakter Mitte wird zur geraden Nachbarzahl gerundet |
- Was gibt das aus?
print(9 / 3) - Was gibt das aus?
print(17 // 5, 17 % 5) - Was gibt das aus?
print(2 + 3 * 4 ** 2) - Was gibt das aus?
print(2 ** 3) - Was gibt das aus?
print(2 ^ 3)861Ein Fehler
- Was gibt das aus?
print(int("20") + 5) - Was gibt das aus?
print("20" + "5") - Was gibt das aus?
print(int(7.9)) - Was gibt das aus?
print(round(2.5)) - Ein Brötchen kostet 3500 Won, und du hast 10 000 Won. Was gibt das aus?
won = 10000 price = 3500 print(won // price, won % price) - Welcher Ausdruck sagt dir, ob n gerade ist?
- n / 2 == 0
- n // 2 == 0
- n % 2 == 0
- n ** 2 == 0
- „2 ^ 3 ist 8.“ In Python ist ^ ein bitweiser Operator, und 2 ^ 3 ist 1. Potenzen nutzen **, also ist 2 ** 3 gleich 8. Das Programm läuft ohne Fehler, was diesen Irrtum schwer erkennbar macht.
- „input() gibt mir eine Zahl, wenn ich eine Zahl tippe.“ Es gibt immer einen String. "14" + 1 bricht mit TypeError: can only concatenate str (not "int") to str ab. Wandle zuerst mit int(input(...)) um.
- „0.1 + 0.2 == 0.3 ist True.“ Es ist False, weil 0.1 + 0.2 gleich 0.30000000000000004 ist. Vergleiche gerundete Werte, etwa round(0.1 + 0.2, 2) == 0.3, oder zähle in ganzen Einheiten (Won, Cent) mit int.
- / ergibt immer einen float; // ergibt den ganzzahligen Quotienten; % ergibt den Rest.
- ** ist die Potenz; ^ nicht.
- Reihenfolge: Klammern, **, dann * / // %, dann + -.
- 0.1 + 0.2 ist 0.30000000000000004; halte Geld als int.
- input() gibt einen String zurück; wandle mit int() oder float() um.
Quellen zu diesem Kurs (6)
- Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
- Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
- Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
- General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
- Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
- Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)
Abgerufen: 2026-10-19