Tutorial zu mathematischen Berechnungen

PythonPythonIntermediate
Jetzt üben

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

Einführung

In diesem Abschnitt werden mathematische Berechnungen behandelt.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Fortgeschrittener mit einer Abschlussquote von 66% ist. Es hat eine positive Bewertungsrate von 91% von den Lernenden erhalten.

Arten von Zahlen

Python hat 4 Arten von Zahlen:

  • Booleans
  • Ganzzahlen
  • Gleitkommazahlen
  • Komplexe (imaginäre Zahlen)

Booleans (bool)

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.

Ganzzahlen (int)

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

Gleitkommazahlen (float)

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)

Vergleiche

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')

Umwandeln von Zahlen

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.

Übung 1.7: Daves Hypothek

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.

Übung 1.8: Zusätzliche Zahlungen

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.

✨ Lösung prüfen und üben

Übung 1.9: Erstellung eines Kalkulators für zusätzliche Zahlungen

Ä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?

✨ Lösung prüfen und üben

Übung 1.10: Erstellen einer Tabelle

Ä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
✨ Lösung prüfen und üben

Übung 1.11: Bonus

Während du dabei bist, repariere das Programm, um die überzahlung zu berichtigen, die im letzten Monat auftritt.

✨ Lösung prüfen und üben

Übung 1.12: Ein Geheimnis

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
>>>

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Zahlenlabor abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.