Python 3.9 : Co nowego teraz? Fajne funkcje do kasy

Opublikowany: 2020-12-01

Python jest ulubionym i najczęściej wybieranym językiem wśród programistów. Według indeksu The Tiobe, który jest społecznością programistyczną, która klasyfikuje języki programowania według ich popularności, Python zajął drugie miejsce, wyprzedzając Javę. Python ma doskonałe wsparcie społeczności, a ze względu na swoją prostotę i łatwą w użyciu naturę, każdy początkujący ma ambicję opanowania przynajmniej tego języka.

Chociaż język ten przykuł wiele uwagi w ostatnich latach, znajdując jego zastosowanie w dziedzinie analizy danych, uczenia maszynowego, tworzenia stron internetowych, aplikacji komputerowych, IOT lub innych obszarów programistycznych, jego najnowsza wersja Python 3.9 stabilna została wydana i przynosi wiele zmian od parsera do dodatkowych funkcjonalności, aby zmienić oś czasu wydania funkcji. Przyjrzyjmy się szczegółowo tym zmianom:

Spis treści

Nowy operator

Mając do czynienia ze słownikami bardzo często musimy łączyć je lub aktualizować z wpisami z innych słowników. Wcześniej można było to zrobić za pomocą atrybutu aktualizacji obiektu słownika: first_dict.update(second_dict), ale problem z tym podejściem polega na tym, że zmiany są dokonywane na miejscu, a oryginalne wartości są modyfikowane.

Aby była to zmiana tymczasowa, wymagana jest inna zmienna do przechowywania poprzedniej wartości. Ta nowa wersja wprowadziła nowy operator znany jako operator scalania (|), który może być używany do scalania słowników. Oto przykład kodu, aby to zrozumieć:

A = { „imię” : „Autor”, „firma” : „upGrad”}

B = { „status” : „instruktor”}

druk (A|B)

Dane wyjściowe: { “nazwisko” : “Autor”, “firma” : “upGrad”, “status” : “instruktor”}

| jest jak operator konkatenacji, ale jeśli chcesz zaktualizować oryginalną wartość, możesz po prostu użyć operatora |=. Kontynuując poprzedni przykład, A |=B zaktualizuje wartość słownika A.

Przeczytaj także: Wynagrodzenie programisty Pythona w Indiach

Operacje na ciągach

Manipulacja tekstem stanowi główną część cyklu życia nauki o danych, zwłaszcza podczas NLP. Istnieją różne funkcje do wykonywania różnych typów operacji na ciągach, takich jak dzielenie, łączenie, zastępowanie i wiele innych. Dołączając do tego dziedzictwa, dodano dwie nowe operacje, którymi są removesuffix() i removeprefix().

Jak sama nazwa wskazuje, służą one do usuwania przedrostków i przyrostków z łańcucha. Są dostępne za pomocą obiektu string. To usunięcie można łatwo wykonać za pomocą wyrażeń regularnych i dzielenia ciągów, ale teraz mamy tę funkcjonalność we wbudowanych bibliotekach. Oto prosty przykład w celach ilustracyjnych:

'@coś_nowego'.removeprefix('@')

'coś_231'.removesufix('231')

Wyjście:

coś nowego

coś_

Zmodyfikowany moduł strefy czasowej

W tej wersji wprowadzono również nowy moduł o nazwie zone info wspierający bazę danych IANA w standardowej bibliotece. Możemy określić strefę czasową w obiekcie DateTime ze standardowej biblioteki, ale użytkownik może skończyć na tworzeniu złożonych reguł dla stref czasowych. Zgodnie z PEP 615 baza użytkowników jest bardziej nastawiona na główne strefy czasowe, takie jak UTC, IANA lub lokalna strefa czasowa systemu. Teraz możesz utworzyć obiekt informacji o strefie, określając ścieżkę wyszukiwania konfiguracji, która ma postać „kontynent/miasto”. Na przykład,

from zoneinfo import ZoneInfo

from datetime import datetime

dt = datetime(2020, 11, 15, 01, tzinfo=ZoneInfo(„Azja/Kolkata”))

dt.tzname()

Wyjście: „IST”

Dowiedz się więcej o: Najlepsze narzędzia Pythona

Nowe funkcje matematyczne

Moduł math składa się ze wszystkich operacji numerycznych używanych w matematyce ogólnej. Niezależnie od tego, czy jest to sinus, cosinus, zaokrąglanie liczb do określonych miejsc, czy uniwersalne stałe, takie jak pi lub wykładnicza, moduł math obejmuje prawie wszystkie typy funkcji.

Do tej listy dodano trzy nowe funkcje, a wśród nich math.lcm(), math.nextafter(), math.ulp(). Podczas gdy LCM (najmniejsza wspólna wielokrotność) jest bardzo często stosowaną funkcją, pozostałe dwie nie są używane tak często. Wcześniej musieliśmy jawnie utworzyć funkcję do obsługi LCM, ale teraz, rozpoczynając tę ​​nową wersję, mamy wbudowaną funkcjonalność w standardowej bibliotece. Aby skorzystać z tej funkcji wystarczy wywołać:

importuj matematykę

matematyka.lcm(2,3)

Wyjście: 6

Jeśli w tej funkcji nie przekazano żadnych argumentów, zwraca 1, a jeśli jeden z nich ma wartość zero, zwraca 0.

Parser o wysokiej wydajności

Oprócz wszystkich nowych dodatków na poziomie funkcji, parser języka Python został również zaktualizowany do nowej, szybszej technologii znanej jako parser PEG. Ten efekt nie zostanie odzwierciedlony w tej wersji, ale w nadchodzącym Pythonie 3.10. Od dnia powstania Pythona używa on parsera LL(1), który analizuje kod od góry do dołu i od lewej do prawej. Ten parser jest oparty na gramatyce bezkontekstowej i dlatego niejednoznaczne jest to, że ciągi mogą mieć więcej niż jedno drzewo analizowania i zwiększać liczbę kroków pośrednich. Nowy parser PEG generuje tylko jeden prawidłowy AST (drzewa składni abstrakcyjnej), usuwając niejednoznaczność poprzedniego parsera.

Nowa funkcja losowa i zmiana w cyklu wydawniczym

W module random.random została dodana nowa metoda randbytes(n), która zwraca losowe n bajtów. Jest bardzo podobny do innych funkcji losowych. Również wcześniej Python wypuszcza nową wersję co 18 miesięcy, która została skrócona do 12 miesięcy.

Uzyskaj certyfikat data science od najlepszych światowych uniwersytetów. Naucz się programów Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

Za każdym razem, gdy pojawia się nowa wersja oprogramowania, towarzyszy wiele nowych zmian. Tutaj omówiliśmy niektóre z głównych i wyróżnionych zmian w Pythonie, które obejmują nowy operator, dodane funkcje i ulepszony parser.

Wprowadzono wiele nowych zmian w innych modułach również takich jak ast, asyncio, concurrent.futures, multiprocessing, XML. Niektóre funkcje zostały zdeprecjonowane i lista jest długa. Możesz sprawdzić oficjalną dokumentację, aby uzyskać pełną listę aktualizacji w nowym Pythonie 3.9.

Jeśli chcesz dowiedzieć się czegoś o Pythonie, nauce o danych, sprawdź dyplom PG IIIT-B i upGrad w dziedzinie Data Science, który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży, Indywidualnie z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.

Dlaczego Python jest preferowany w stosunku do innych języków kodowania?

Istnieje wiele powodów, dla których Python jest preferowany nad innymi językami. Po pierwsze, kody Pythona są czytelne i zrozumiałe nawet dla programistów, którzy nigdy wcześniej ich nie pisali. Python jest powszechny w społeczności naukowej, a wśród użytkowników Pythona znajdują się liczni badacze i profesorowie. Kody stworzone w Pythonie mogą być udostępniane, kopiowane i zmieniane przez programistów. Ponadto Python ma silną społeczność i szybko się rozwija, ponieważ jest darmowym i otwartym językiem programowania. Python jest kompatybilny z szeroką gamą systemów. Pomaga programistom, ponieważ nie mają do czynienia z trudnościami, które są powszechne w innych językach.

Jakie jest zastosowanie math.nextafter() i math.ulp() w Pythonie?

Nextafter() i ulp() to dwie nowe funkcje dodane do biblioteki matematycznej w Pythonie 3.9.0. Funkcja nextafter() zwraca następną wartość zmiennoprzecinkową po x w kierunku y. Jeśli x równa się y, zwracana jest wartość y. Jego składnia to math.nextafter(x, y), gdzie x i y to dwie liczby całkowite/zmiennoprzecinkowe. ULP to skrót oznaczający Jednostka na ostatnim miejscu. ULP to przestrzeń między wartościami zmiennoprzecinkowymi w analizie numerycznej i informatyce. Funkcja math.ulp() zwraca wartość najmniej znaczącego bitu zmiennej float x. Jego składnia to matematyczna ulp(x), a argument, który ma zostać wprowadzony, x, musi być liczbą zmiennoprzecinkową, której ulp musi zostać zwrócony.

Co to jest Parser w Pythonie?

Na etapie analizy składni kompilator sprawdza, czy tokeny utworzone przez analizator leksykalny są zorganizowane zgodnie z regułami składniowymi języka. Odpowiada za to parser. Parser pobiera ciąg tokenów z analizatora leksykalnego i sprawdza, czy ciąg odpowiada gramatyce języka źródłowego. Wszelkie problemy ze składnią są wykrywane i zgłaszane, a tworzone jest drzewo analizy, z którego programiści mogą generować kod pośredni. Ponadto moduł parser komunikuje się z wewnętrznym parserem Pythona i kompilatorem kodu bajtowego. Głównym celem tego interfejsu jest umożliwienie kodom Pythona zmiany drzew analizy wyrażeń Pythona i generowania z niego działających kodów.