Jak zaimplementować funkcje zmiany wielkości liter w Pythonie? [2022]
Opublikowany: 2021-01-08Spis treści
Wstęp
Czy kiedykolwiek zastanawiałeś się, czy istnieje alternatywa dla pisania tych złożonych instrukcji If-else w Pythonie? Jeśli nie chcesz, aby wiele instrukcji „If” zaśmiecało kod, należy rozważyć użycie instrukcji Switch case, która zapewnia czystszy i szybszy sposób implementacji przepływu sterowania w kodzie. W przeciwieństwie do C++, Java, Ruby i innych języków programowania, Python nie zapewnia instrukcji switch case, ale oferuje kilka obejść, aby ta instrukcja działała.
Na przykład Python umożliwia tworzenie fragmentów kodu, które działają jak instrukcje case w języku Python Switch w innych językach programowania. Więcej o sposobach implementacji instrukcji switch-case dowiesz się w dalszej części tego bloga. Jeśli chcesz dowiedzieć się więcej o Pythonie, zapoznaj się z naszymi kursami nauki o danych.
Co to jest instrukcja Switch w Pythonie?
Ogólnie rzecz biorąc, przełącznik jest mechanizmem kontrolnym, który testuje wartość przechowywaną w zmiennej i wykonuje odpowiednie instrukcje case. Instrukcja Switch case wprowadza przepływ sterowania w programie i zapewnia, że kod nie jest zaśmiecony wieloma instrukcjami „if”.
Dlatego Twój kod wygląda na drobiazgowy i przejrzysty dla widzów. Jest to wspaniała funkcja programistyczna, której programiści używają do implementacji przepływu sterowania w swoim kodzie. Instrukcja Switch case działa poprzez porównanie wartości określonych w instrukcjach case ze zmiennymi w kodzie.
Jak zaimplementować instrukcję w języku Python Switch Case
Jeśli zawsze programowałeś w językach takich jak C++ lub Java, może wydać się dziwne, że Python nie ma instrukcji switch case. Zamiast tego Python oferuje liczne obejścia, takie jak słownik, klasy Pythona lub funkcje lambda Pythona do implementacji instrukcji switch-case.
Jeśli chcesz poznać dokładny powód braku instrukcji switch case w Pythonie, powinieneś sprawdzić PEP 3103 .
Zanim zagłębimy się w te alternatywy, przyjrzyjmy się najpierw, jak funkcja wielkości liter zwykle działa w innych językach programowania.
W poniższym przykładzie użyliśmy języka programowania C
przełącznik (miesiąc/rok) { przypadek 1: printf(„%s”, styczeń); zepsuć; przypadek 2: printf(„%s”, luty); zepsuć; przypadek 3: printf(„%s”, marzec); zepsuć; przypadek 4: printf(„%s”, kwiecień); zepsuć; przypadek 5: printf(„%s”, maj); zepsuć; przypadek 6: printf(„%s”, czerwiec); zepsuć; przypadek 7: printf(„%s”, lipiec); zepsuć; przypadek 8: printf(„%s”, sierpień); zepsuć; przypadek 9: printf(„%s”, wrzesień); zepsuć; przypadek 10: printf(„%s”, październik); zepsuć; przypadek 11: printf(„%s”, listopad); zepsuć; przypadek 12: printf(„%s”, grudzień); zepsuć; domyślna: printf("Nieprawidłowy miesiąc"); zepsuć; } |
Przejdźmy teraz do alternatywnych funkcji przełączania wielkości liter w Pythonie i zrozummy, jak te alternatywy działają za pomocą przykładów.
Przeczytaj: Możliwości kariery w Pythonie: wszystko, co musisz wiedzieć
Korzystanie z mapowania słownika
Jeśli znasz inne języki programowania, musisz wiedzieć, że słownik używa par klucz-wartość do przechowywania grupy obiektów w pamięci. Kiedy używasz słownika jako alternatywy dla instrukcji switch-case, klucze pary klucz-wartość działają jak wielkość liter.
Poniższy przykład przedstawia implementację instrukcji switch case przy użyciu słownika. Tutaj definiujemy funkcję month(), która wypisuje, który miesiąc, miesiąc w roku jest.
Najpierw zacznij od utworzenia instrukcji case i napisz osobne funkcje dla każdego przypadku. Upewnij się, że piszesz funkcję, która zajmuje się domyślnym przypadkiem.
def styczeń(): powrót „Styczeń” def luty(): powrót “luty” def mar(): powrót „masz” def kwiecień(): powrót „Kwiecień” def może(): powrót „maj” zdefiniuj czerwiec(): powrót „czerwiec” zdefiniuj lipiec(): powrót „lipiec” def sierpień(): powrót „sierpień” def wrzesień(): powrót „wrzesień” def październik(): powrót „Październik” def listopad(): powrót „Listopad” def grudzień(): powrót „Grudzień” zdefiniuj domyślnie(): powrót „Nieprawidłowy miesiąc” |
Następnie utwórz obiekt słownika w Pythonie i przechowuj wszystkie funkcje, które zdefiniowałeś w swoim programie.
przełącznik = { 0: „styczeń”, 1: „luty”, 2: „marsz”, 3: „kwiecień”, 4: „może”, 5: „czerwiec”, 6: „lipiec”, 7: „sierpień”, 8: „wrzesień”, 9: 'październik', 10: „listopad”, 11: „grudzień” } |
Na koniec utwórz w programie funkcję przełącznika, która powinna akceptować liczbę całkowitą jako dane wejściowe, przeszukiwać słownik i wywoływać odpowiednie funkcje.
def miesiąc(miesiącRok): return switcher.get(miesiącRok, domyślnie)() |
Cały kod będzie wyglądał tak
def styczeń(): powrót „Styczeń” def luty(): powrót “luty” def mar(): powrót „masz” def kwiecień(): powrót „Kwiecień” def może(): powrót „maj” zdefiniuj czerwiec(): powrót „czerwiec” zdefiniuj lipiec(): powrót „lipiec” def sierpień(): ![]() powrót „sierpień” def wrzesień(): powrót „wrzesień” def październik(): powrót „Październik” def listopad(): powrót „Listopad” def grudzień(): powrót „Grudzień” zdefiniuj domyślnie(): powrót „Nieprawidłowy miesiąc”
przełącznik = { 0: „styczeń”, 1: „luty”, 2: „marsz”, 3: „kwiecień”, 4: „może”, 5: „czerwiec”, 6: „lipiec”, 7: „sierpień”, 8: „wrzesień”, 9: 'październik', 10: „listopad”, 11: „grudzień” } def miesiąc(miesiącRok): return switcher.get(miesiącRok, domyślnie)() drukuj (przełącznik (1)) drukuj (przełącznik (0)) |
Powyższy kod wyświetla następujące dane wyjściowe
Luty Styczeń |
Przeczytaj także: 42 ekscytujące pomysły i tematy dotyczące projektów Pythona dla początkujących
Korzystanie z klas Pythona
Możesz również użyć klas Pythona jako alternatywy dla implementacji instrukcji switch-case. Klasa to konstruktor obiektów, który ma właściwości i metody. Zrozummy to dalej za pomocą tego samego powyższego przykładu. Tutaj zdefiniujemy metodę switch wewnątrz klasy switch w Pythonie.
Przykład
Najpierw zdefiniujemy metodę switch wewnątrz klasy switch w Pythonie, która jako argument przyjmuje miesiąc w roku i konwertuje wynik na łańcuch.
klasa PythonSwitch: def miesiąc(self, monthOf Year): domyślnie = „Nieprawidłowy miesiąc” return getattr(self, 'case_' + str(monthOf Year), lambda: default)() |
Uwaga: W powyższym przykładzie użyliśmy dwóch rzeczy: słowa kluczowego lambda i metody getattr().
- Używamy słowa kluczowego lambda, aby zdefiniować funkcję anonimową w Pythonie. Słowo kluczowe Lambda wywołuje funkcję domyślną, gdy użytkownik wprowadzi nieprawidłowe dane wejściowe.
- Metoda getattr() służy do wywołania funkcji w Pythonie.
Teraz stwórz indywidualne funkcje dla każdego przypadku.
def styczeń(własne): powrót „Styczeń”
def luty(własne): powrót “luty” def marsz(samo): powrót „Marzec”
def kwiecień(własny): powrót „Kwiecień”
def może (siebie): powrót „Maj”
def czerwiec(samo): powrót „czerwiec” def lipiec (siebie): powrót „lipiec”
def sierpień(self): powrót „Sierpień”
def wrzesień(własny): powrót „wrzesień” def październik (własny): powrót „Październik”
def listopad(siebie): powrót „Listopad”
def grudzień(self): powrót „Grudzień” |
Cały kod będzie wyglądał tak
klasa PythonSwitch: def miesiąc(self, monthOf Year): domyślnie = „Nieprawidłowy miesiąc” return getattr(self, 'case_' + str(monthOf Year), lambda: default)() def styczeń(własne): powrót „Styczeń”
def luty(własne): powrót “luty”
def marsz(samo): powrót „Marzec”
def kwiecień(własny): powrót „Kwiecień”
def może (siebie): powrót „Maj”
def czerwiec(samo): powrót „czerwiec” def lipiec (siebie): powrót „lipiec”
def sierpień(self): powrót „Sierpień”
def wrzesień(własny): powrót „wrzesień” def październik (własny): powrót „Październik”
def listopad(siebie): powrót „Listopad”
def grudzień(self): powrót „Grudzień” my_switch = PythonSwitch() drukuj (my_switch.miesiąc(1)) drukuj (my_switch.miesiąc(10)) |
Powyższy kod wyświetla następujące dane wyjściowe
Styczeń październik |
Sprawdź: Wynagrodzenie programisty Pythona w Indiach
Wniosek
W tym blogu dowiedziałeś się o instrukcjach switch-case, jakie są alternatywy dla instrukcji switch-case i jak ich używać. Jak wyjaśniono powyżej, Python nie ma wbudowanej funkcji wielkości liter, ale zawsze możesz użyć tych alternatyw, aby Twój kod wyglądał schludnie i czysto oraz aby uzyskać lepszą wydajność.
Jeśli jesteś zainteresowany nauką o danych, sprawdź program IIIT-B i upGrad Executive PG 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, 1 -on-1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.
Rozróżnij zwykły słownik od słownika Pythona.
Słownik Pythona lub „Dict” to wbudowana struktura danych Pythona, która służy do przechowywania nieuporządkowanej kolekcji elementów. W przeciwieństwie do innych struktur danych Pythona, które przechowują pojedyncze wartości, struktura danych słownika przechowuje pary klucz-wartość, w których każdy klucz jest unikalny. Nie zapamiętuje kolejności wstawiania par klucz-wartość i iteruje po kluczach. Z drugiej strony słownik uporządkowany lub słownik uporządkowany śledzi kolejność wstawiania par klucz-wartość. Zużywa również więcej pamięci niż zwykły słownik w Pythonie ze względu na implementację podwójnie połączonej listy. Jeśli usuniesz i ponownie włożysz ten sam klucz, zostanie on wstawiony w oryginalnej pozycji, ponieważ OrderedDict pamięta kolejność wstawiania.
Jakie operacje namedtuple sprawiają, że jest to wygodna opcja do użycia w przypadku przełączników?
namedtuple w Pythonie wykonuje różne operacje. Poniżej znajduje się lista niektórych z najczęstszych operacji wykonywanych przez namedtuple. Dostęp do elementów w namedtuple można uzyskać za pomocą ich indeksów, w przeciwieństwie do słownika. Alternatywnym sposobem dostępu do elementów jest ich nazwa klucza. Funkcja make() zwraca nazwaną krotkę. Funkcja _asadict() zwraca uporządkowany słownik utworzony z odwzorowanych wartości. Funkcja _replace() przyjmuje nazwę klucza jako swój argument i zmienia przypisane do niego wartości. Funkcja _fileds() zwraca wszystkie nazwy kluczy podanej namedtuple.
Kiedy wolimy listy do przechowywania danych?
Lista Pythona jest uważana za najlepszą strukturę danych do przechowywania danych w następujących scenariuszach — lista może służyć do przechowywania różnych wartości z różnymi typami danych i można do niej uzyskać dostęp tylko za pomocą ich odpowiednich indeksów. Gdy trzeba wykonać operacje matematyczne na elementach, można użyć listy, ponieważ umożliwia ona matematyczną obsługę elementów bezpośrednio. Ponieważ listę można zmieniać, można jej użyć do przechowywania danych, gdy nie masz pewności co do liczby elementów, które mają być przechowywane. Elementy listy są łatwo modyfikowalne i mogą również przechowywać zduplikowane elementy, w przeciwieństwie do zestawu i słownika.