Einführung
In diesem Abschnitt werden mathematische Berechnungen behandelt.
This tutorial is from open-source community. Access the source code
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
In diesem Abschnitt werden mathematische Berechnungen behandelt.
Python hat 4 Arten von Zahlen:
Booleans haben zwei Werte: True
und False
.
a = True
b = False
Numerisch werden sie als Ganzzahlen mit den Werten 1
und 0
ausgewertet.
c = 4 + True ## 5
d = False
if d == 0:
print('d ist False')
Aber schreiben Sie keinen Code so. Das wäre seltsam.
Vorzeichenbehaftete Werte beliebiger Größe und Basis:
a = 37
b = -299392993727716627377128481812241231
c = 0x7fa8 ## Hexadezimal
d = 0o253 ## Oktal
e = 0b10001111 ## Binär
Häufige Operationen:
x + y Addieren
x - y Subtrahieren
x * y Multiplizieren
x / y Teilen (ergibt einen Float)
x // y Ganzzahldivision (ergibt eine Ganzzahl)
x % y Modulo (Rest)
x ** y Potenzieren
x << n Bitverschiebung nach links
x >> n Bitverschiebung nach rechts
x & y Bitweises AND
x | y Bitweises OR
x ^ y Bitweises XOR
~x Bitweises NOT
abs(x) Betrag
Verwenden Sie eine Dezimal- oder Exponentialnotation, um einen Gleitkomma-Wert anzugeben:
a = 37.45
b = 4e5 ## 4 x 10**5 oder 400.000
c = -1.345e-10
Gleitkommazahlen werden als Doppeltgenauigkeit mit der nativen CPU-Darstellung IEEE 754 dargestellt. Dies entspricht dem double
-Typ in der Programmiersprache C.
17 Stellen Genauigkeit
Exponent von -308 bis 308
Bedenken Sie, dass Gleitkommazahlen bei der Darstellung von Dezimalzahlen ungenau sind.
>>> a = 2.1 + 4.2
>>> a == 6.3
False
>>> a
6.300000000000001
>>>
Dies ist kein Python-Problem, sondern die zugrunde liegende Gleitkomma-Hardware auf der CPU.
Häufige Operationen:
x + y Addieren
x - y Subtrahieren
x * y Multiplizieren
x / y Teilen
x // y Ganzzahldivision
x % y Modulo
x ** y Potenzieren
abs(x) Betrag
Dies sind die gleichen Operatoren wie bei Ganzzahlen, mit Ausnahme der bitweisen Operatoren. Weitere mathematische Funktionen finden Sie im math
-Modul.
import math
a = math.sqrt(x)
b = math.sin(x)
c = math.cos(x)
d = math.tan(x)
e = math.log(x)
Die folgenden Vergleichs-/Relationsoperatoren funktionieren mit Zahlen:
x < y Kleiner als
x <= y Kleiner als oder gleich
x > y Größer als
x >= y Größer als oder gleich
x == y Gleich
x!= y Ungleich
Sie können komplexere boolesche Ausdrücke bilden, indem Sie
and
, or
, not
Verwenden. Hier sind ein paar Beispiele:
if b >= a and b <= c:
print('b ist zwischen a und c')
if not (b < a or b > c):
print('b ist immer noch zwischen a und c')
Der Typname kann verwendet werden, um Werte zu konvertieren:
a = int(x) ## Konvertiere x in eine Ganzzahl
b = float(x) ## Konvertiere x in eine Gleitkommazahl
Versuchen Sie es.
>>> a = 3.14159
>>> int(a)
3
>>> b = '3.14159' ## Es funktioniert auch mit Zeichenketten, die Zahlen enthalten
>>> float(b)
3.14159
>>>
Hinweis: Diese Übungen gehen davon aus, dass Sie im Verzeichnis ~/project
arbeiten. Suchen Sie nach der Datei mortgage.py
.
Dave hat sich entschieden, eine 30-jährige Festzins-Hypothek von 500.000 US-Dollar bei der Hypotheken-, Aktienanlage- und Bitcoin-Handelskörperschaft von Guido zu nehmen. Der Zinssatz beträgt 5% und die monatliche Rate ist 2684,11 US-Dollar.
Hier ist ein Programm, das den Gesamtbetrag berechnet, den Dave während der Laufzeit der Hypothek zahlen muss:
## mortgage.py
principal = 500000.0
rate = 0.05
payment = 2684.11
total_paid = 0.0
while principal > 0:
principal = principal * (1+rate/12) - payment
total_paid = total_paid + payment
print('Total paid', total_paid)
Geben Sie dieses Programm ein und führen Sie es aus. Sie sollten eine Antwort von 966279.5999999957
erhalten.
Angenommen, Dave zahlt im ersten Jahr der Hypothek zusätzlich 1000 US-Dollar pro Monat?
Ändern Sie das Programm, um diese zusätzliche Zahlung zu berücksichtigen, und lassen Sie es die Gesamtzahlung sowie die Anzahl der erforderlichen Monate ausgeben.
Wenn Sie das neue Programm ausführen, sollte es eine Gesamtzahlung von 929965.6199999959
über 342 Monate melden.
Ändern Sie das Programm, sodass zusätzliche Zahlungsinformationen allgemeiner behandelt werden können. Konfigurieren Sie es so, dass der Benutzer diese Variablen einstellen kann:
extra_payment_start_month = 61
extra_payment_end_month = 108
extra_payment = 1000
Lassen Sie das Programm diese Variablen prüfen und die Gesamtzahlung entsprechend berechnen.
Wie viel wird Dave zahlen, wenn er 4 Jahre lang 1000 US-Dollar pro Monat zusätzlich zahlt, nachdem die ersten fünf Jahre bereits abbezahlt sind?
Ändern Sie das Programm, um eine Tabelle auszugeben, die die Monatnummer, die bisher gezahlte Gesamtzahlung und den verbleibenden Kreditbetrag zeigt. Die Ausgabe sollte ungefähr so aussehen:
1 2684.11 499399.22
2 5368.22 498795.94
3 8052.33 498190.15
4 10736.44 497581.83
5 13420.55 496970.98
...
308 874705.88 3478.83
309 877389.99 809.21
310 880074.10 -1871.53
Total paid 880074.10
Months 310
Während du dabei bist, repariere das Programm, um die überzahlung zu berichtigen, die im letzten Monat auftritt.
int()
und float()
können verwendet werden, um Zahlen zu konvertieren. Beispielsweise:
>>> int("123")
123
>>> float("1.23")
1.23
>>>
Im Licht dessen, können Sie dieses Verhalten erklären?
>>> bool("False")
True
>>>
Herzlichen Glückwunsch! Sie haben das Zahlenlabor abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.