W tym poście przyjrzymy się zawiłości problemu „przepełnionego”. Maksymalny limit dla każdego typu danych jest ustawiony w Python. Wartość musi znajdować się w granicy typu danych przed wykonaniem jakichkolwiek obliczeń matematycznych. Jeśli wartość jest zbyt duża, typ danych nie pomieści jej. Python generuje błąd w tym scenariuszu, zauważając, że wartość przekracza dozwolony limit. W tych okolicznościach deweloper powinien podjąć odpowiednie działania w odpowiedzi na interes. Przyjrzymy się, jak radzić sobie z takimi sytuacjami w tym artykule. Przechodzą wszystkie różne rozwiązania tego problemu. Python używa operandów podczas wykonywania obliczeń matematycznych. Operands to każda ze zmiennych typów danych Pythona. Zdefiniowane typy danych można przechowywać do maksymalnego limitu w zmiennej. Jeśli aplikacja próbuje przechowywać wartość przekraczającą maksymalny limit typu danych, Python może rzucić błąd deklarując, że dopuszczalny limit został przekroczony. Przyjrzymy się różnym przypadkom, które powodują matematykę
Przykład 1:
Problem ten można odtworzyć za pomocą operacji matematycznej Exp Python. Maksymalna liczba typów danych, których można użyć, wynosi 709.78271. Program Python wyświetli błąd, jeśli program symuluje wartość przekraczającą dopuszczalny limit.
Importuj matematykaPowyższe podniosło błąd, jak widać.
Przykład 2:
W kodzie tego programu widzimy, że deklarujemy moduł matematyki, używając go do generowania liczb wykładniczych, takich jak Exp (1000), gdzie x wynosi 1000, a E to 2.7, a kiedy próbujemy to obliczyć, dostarcza nam wartość, w wyniku czego jest podwójna i nie może wydrukować wyniku. Jak widać w poniższym programie, występuje błąd przepełnienia, wskazując, że wartość jest poza zasięgiem, ponieważ dana wartość wynosi 1000, a wynik jest poza zasięgiem.
Drukuj („Program Python, który generuje błąd przepełnienia”)Jak widać, powyższy kod spowodował błąd zakresu matematyki.
Przykład 3:
Wyrażenie „wynik zbyt duży” nie odnosi się do liczby znaków w dziesiętnej reprezentacji liczby; oznacza to raczej, że liczba wytworzona przez twoją funkcję wykładniczą jest wystarczająco duża, aby opanować wszelki typ Python do przechowywania wartości zmiennoprzecinkowych. Pływaki w Pythonie nie są ani dowolną precyzją, ani nieograniczoną wielkością. x = x ** 2 jest zdecydowanie za ogromne, gdy i = 10. Albo użyj alternatywnego typu dla obliczeń zmiennoprzecinkowych, takich jak moduł dziesiętny: D = dziesiętny.Dziesiętne (x ** 2) lub zmodyfikuj swój kod, tak że e ** (x) nie przepełniło ani nie podlega.
a = 2.0Poniżej znajduje się przykład przepełnienia.
Rozwiązanie 1:
Jak wspomniano wcześniej, wartość nie powinna przekraczać maksymalnego limitu typu danych. Trudność można rozwiązać poprzez obliczenie wartości wykładniczej za mniej. Przed wykonaniem wykładniczego operacji stosuje się warunek IF do weryfikacji wartości wejściowej. Dzwoniący odbędzie właściwy komunikat o błędzie, jeśli wartość wejściowa jest wyższa niż 0. Poniższy kod pokazuje, jak korzystać z funkcji wykładniczej bez powodowania błędu programu.
Importuj matematykaPowyższy kod jest pomyślnie wykonywany bez powodowania błędów, jak pokazano poniżej.
Rozwiązanie 2:
Jeśli wartość wejściowa jest niewiarygodna, błąd można obsłużyć za pomocą konstruktu TRY-ZAKREDU. Dodaj odpowiedni kod do wykonania programu do bloku próbowania. Jeśli wystąpi błąd, rozpoznaj go i wybierz alternatywny sposób działania. W tej metodzie kod obsługuje wyjątek przepełnienia. Poniższy kod pokazuje, jak używać prób i oprócz obsługi błędu przepełnienia w programie Python.
Importuj matematykaPoniżej znajduje się wynik.
Wniosek:
Błąd przepełnienia występuje, gdy obecna wartość czasu wykonywania pobrana przez aplikację Python przekroczy wartość limitu, jak omówiono w tym artykule. Ten problem powstaje, gdy stosujemy operacje arytmetyczne w programie, a wynik przekracza maksymalną wartość zakresu, jak widzieliśmy w tym poście. Podczas konwersji z jednego typu danych na inny błąd występuje, gdy wartość przekracza zakres przechowywania wybranego typu danych. Na koniec pokazaliśmy, jak poradzić sobie z tym problemem za pomocą trybu i oprócz bloków do zarządzania wyjątkami.