Cześć, przed Tobą trzeci z dziesięcioelementowej serii „Kurs Python 3 by MR”. Jest to też pierwszy wpis, który piszę z drugiego końca świata! Praca zdalna w takim kraju jak Tajlandia to niebywałe doświadczenie.

Dziś też wejdziemy na kolejny poziom, jeżeli chodzi o umiejętności pisania kodu z użyciem języka Python. Poruszymy następujące kwestie:

  • W jaki sposób formatowany jest kod?
  • Czym jest operator przypisania?
  • Jak wyglądają operację na tekście?
  • Czym są instrukcje warunkowe?
  • Jak i do czego używać rzutowania?

Jak widzisz, mamy przed sobą kolejny, bardzo ciekawy zestaw pytań.

Zaczynajmy!

Wprowadzenie

Na wstępie trzeciego artykułu z serii „Kurs Python 3 by MR” chciałbym poruszyć coś, co już na tym etapie będzie nam bardzo potrzebne. Chodzi mianowicie o formatowanie kodu. Wiele osób narzeka na ten element języka Python, ponieważ przy dużym „spaghetti code” może być problem z odnalezieniem błędu. 

Zaufaj mi, że z czasem docenia się piękno formatowania w Python! Programowanie w wielu językach kojarzone jest z zakończeniem linii przez, chociażby znak ; (średnik). W Python również możemy kończyć linię średnikiem. Nie jest to jednak konieczne, bo wystarczy, że zrobimy Enter i piszemy dalej kod. 

Na przykładzie poniżej deklarujemy zmienne a i b, następnie w linii trzeciej deklarujemy trzeciej zmiennej i od razu sumujemy dwie pierwsze zmienne.

Użycie średnika w IDLE w Python 3
Rysunek 1. Użycie średnika w IDLE w Python 3.

Średnik w programowaniu traktujemy jako znak zakończenia instrukcji. W poprzednich artykułach oraz powyższym przykładzie znakiem zakończenia jest również Enter, który w Python jest równoważny ze średnikiem.

O wcięciach w kodzie pomówimy przy okazji instrukcji warunkowych i pętli.

Operatory przypisania

W poprzedniej części opowiadaliśmy sobie o operatorach arytmetycznych. Wróćmy jeszcze do tematu podobnego, a mianowicie wspomnę kilka zdań na temat operatorów przypisania. Jak wiadomo, w programowaniu jest nim znak = (równość). Zobacz na przykład zapis poniżej.

x = 12
x = x + 5

Mówimy tu interpreterowi, że do zmiennej x, która wynosi 12, dodaj jeszcze wartość 5 i zapisz całość raz jeszcze do zmiennej x. Wydaje się to konstrukcja dość dziwna, ale daje wiele dobrego. Ale co gdybyśmy zapisali to tak.

x += 5

Jest to skrócony zapis działania matematycznego powyżej. Prawda, że przyjemnie?

Tak samo możemy zrobić z odejmowaniem, mnożeniem, dzieleniem, modulo, dzieleniem z zaokrągleniem i potęgowaniem. Zupełnie jak w omawianych wcześniej operatorach arytmetycznych.

x = 12

x += 5
print(x)

x -= 14
print(x)

x *= 3
print(x)

x /= 2
print(x)

x //= 2
print(x)

x **= 3
print(x)

x %= 3
print(x)


Przedstawienie operatorów przypisania i skróconych działań arytmetycznych.
Rysunek 2. Przedstawienie operatorów przypisania i skróconych działań arytmetycznych.

String

Wchodzimy na poziom wyżej. Typ String wymaga osobnego akapitu, by go omówić. W przypadku typów int czy bool mamy konkretnie jedną wartość — będzie to liczba lub prawda albo fałsz. Nazywamy je typami prostymi.

W przypadku napisu jest jednak inaczej. String to typ złożony (inaczej nazywany sekwencyjnym). Oznacza to tyle, że obiekt ten składa się z więcej niż jednej wartości. W przypadku tekstu każdy znak jest traktowany jako osobna wartość. Daje to kilka ciekawych możliwości. Zobaczmy na przykład poniżej.

thisIsText = 'Programowanie z pasją'

Pierwszą z ciekawych opcji jest użycie funkcji do zmierzenia ilości znaków w tekście. Służy do tego funkcja len.

Kolejną ciekawą opcją jest odczytanie pojedynczego znaku z tekstu. Wystarczy użyć nawiasów klamrowych.

print(thisIsText[3])

Warto mieć na uwadze, że numeracja w programowaniu zaczyna się od zera. Podając trzy w nawiasie, oczekujemy uzyskania czwartej litery, czyli G. Można jednak wyszukiwać litery od końca, wystarczy, że podamy ujemną liczbę (w tym przypadku -1 to ostatnia litera, a nie przedostatnia — zero nie jest uwzględniane). W przypadku później dostaniemy literę S.

print(thisIsText[-3])

Gdy spróbujemy dostać się do wartości z poza zakresu tekstu, to otrzymamy błąd. Na przykład thisIsText[100] spowoduje wyświetlenie komunikatu IndexError: string index out of range.

Ostatnim z ciekawych sposobów na wyświetlanie wybranych znaków z tekstu jest zakres od do. Wystarczy podać zakres rozdzielony dwukropkiem.

print(thisIsText[2:7])

Wszystkie zaprezentowane przykłady widoczne są w interpreterze na Rysunku 3.

Metody dostępne w oparciu o String

Zobaczmy teraz kilka metod, które są bardzo pomocne i wykonują pewne operacje na naszym łańcuchu znaków. Aby taką metodę wywołać, wystarczy po zmiennej lub tekście użyć kropki.

Popularne metody to:

  • upper – zamiana wszystkich małych znaków w tekście na duże
  • lower – analogicznie jak powyżej, tylko że zamienia wielkie litery na małe
  • swapcase – dopełnienie dwóch powyżej wymienionych metod. Robi zamianę wielkich liter na małe i odwrotnie
  • capitalize – jak sama nazwa wskazuje, pierwszą literę w tekście zamienia na wielką
  • lstrip/rstrip – usuwa białe znaki po lewej lub prawej stronie napisu
  • min(S)/max(S) – zwraca z łańcucha S najbliżej lub najdalej odległy znak od początku alfabetu
  • split – dzieli tekst na podciągu. Jeżeli nie podamy nic w parametrze funkcji, to domyślnie podzieli tekst na osobne wyrazy. Jeżeli podamy parametr pierwszy jako znak, po którym ma dzielić, a jako drugi parametr ilość podciągów to uzyskamy tablicę podciągów

Zobacz przykłady poniżej.

Jest to tylko kilka podstawowych operacji na łańcuchach. Po więcej odsyłam do specyfikacji podanej w źródłach, ponieważ żaden kurs Python nie powinien omawiać 100% dostępnych metod. I w tym miejscu mała uwaga. Nie polecam uczyć się tego typu rzeczy na pamięć, tylko w razie problemów zerknąć do specyfikacji. Ważne jest, by mieć świadomość istnienia tego typu operacji.

thisIsText = 'Programowanie z pasją'

print('Len: ' + str(len(thisIsText)))

print('4 litera tekstu: ' + thisIsText[3])
print('3 litera od końca: ' + thisIsText[-3])
print('Od 3 do 7 litery: ' + thisIsText[2:7])

print('upper: ' + thisIsText.upper())
print('lower: ' + thisIsText.lower())
print('swapcase: ' + thisIsText.swapcase())
print('capitalize: ' + thisIsText.capitalize())
print('min: ' + min(thisIsText))
print('max: ' + max(thisIsText))
print('split: ' + str(thisIsText.split()))

thisIsText = '   Programowanie z pasją'
print('lstrip: ' + thisIsText.lstrip())
Operacje na łańcuchach znaków.
Rysunek 3. Operacje na łańcuchach znaków.

Rzutowanie

W przykładzie powyżej użyłem w dwóch miejscach tak zwanego rzutowania. Polega to na zamianie typu, zazwyczaj z tekstowego na liczbowy lub odwrotnie. Na przykład mamy liczbę zapisaną jako wartość tekstową i chcemy do niej dodać inną liczbę będącą typu int. Aby to zrobić musimy zamienić typ. Zobacz na poniższy przykład.

x = '123'

y = int(x) + 200

print(y)

Podsumowanie

Poczyniliśmy kolejny krok do tego, by nauczyć się podstaw języka Python! Jak widzisz, wcale nie jest to takie trudne a mi tworzenie „Kurs Python 3 by MR” sprawia wiele frajdy. Oczywiście schody zaczną się w kolejnych częściach, ale liczę, że się nie poddasz. Czwarta część będzie już tą częścią, gdzie zaczniemy dużo pisać kodu. Poznamy też wiele ciekawych operacji i nie będziemy poruszać tak podstawowych i oczywistych aspektów programowania jak do tej pory.

Dla mnie jest to też wyjątkowy artykuł, bo w pełni napisany zdalnie, w podróży. Podczas lotów do Dubaju i Bangkoku oraz w czasie nocnej podróży do Chiang Mai. Praca zdalna to świetna sprawa jest tylko jeden warunek — trzeba być turbo zdeterminowanym!

A już za tydzień kolejne podsumowanie miesiąca, nie może Cię tam zabraknąć. Sprawdź przy okazji, jak wyglądał poprzedni miesiąc

PS. Będę wdzięczny za komentarze pod tym postem!

PS2. Czeka też na Ciebie prezent. Wystarczy, że zapiszesz się na Newsletter poniżej!

PS3. Dołącz do naszej grupy na Facebook!


Zapisz się na Newsletter, odbierz NAGRODĘ w postaci 10 omówionych algorytmów pojawiających się w pytaniach podczas REKRUTACJI.

Dodatkowo otrzymuj co niedzielę informacje na temat nowych wpisów, wiadomości ze świata IT i matematyki oraz ciekawych wydarzeniach. Nie przegap i dołącz już dziś do 599 osób!.

Źródła

 https://docs.python.org/3/ 
Autor

👨‍💻 .NET and Python programming passionate 🏦 Digtial Banking Solutions 🎓 Student 📊 Psychology 📚 Bookworm 🏠 Warsaw

3 komentarze

Napisz komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.