Ćwiczenia w Pythonie. Język programowania Python – od czego zacząć? Jakie typy wbudowane istnieją w Pythonie

Okresowo jestem pytany o zadania testowe dotyczące Pythona. Postanowiłem podsumować pytania i zapisać je w jednym miejscu. Nie używam tych pytań i zadań na rozmowach kwalifikacyjnych, ale wykorzystuję je na szkoleniach.

Typy danych, podstawowe konstrukcje

  1. Jak uzyskać listę wszystkich atrybutów obiektu
  2. Jak uzyskać listę wszystkich publicznych atrybutów obiektu
  3. Jak uzyskać listę metod na obiekcie
  4. Jaka „magiczna” zmienna przechowuje treść pomocy?
  5. Istnieją dwie krotki, trzecia jest konkatenacją pierwszych dwóch
  6. Istnieją dwie krotki, trzecia jest sumą unikalnych elementów pierwszych dwóch krotek
  7. Dlaczego jest tak, że jeśli lista jest zmieniana w pętli, to używane jest for x w lst[:], co oznacza [:]?
  8. Istnieją dwie listy o tej samej długości, jedna zawiera klucze, druga zawiera wartości. Zrób słownik.
  9. Istnieją dwie listy o różnej długości, jedna zawiera klucze, druga zawiera wartości. Zrób słownik. W przypadku kluczy, które nie mają wartości, jako wartość użyj opcji Brak. Ignoruj ​​wartości, dla których nie ma kluczy.
  10. Jest słownik. Odwróć to. Te. pary klucz: zamiana wartości - wartość: klucz.
  11. W Unicode znajduje się ciąg znaków, pobierz 8-bitowy ciąg w kodowaniu utf-8 i cp1251
  12. W kodowaniu cp1251 znajduje się ciąg znaków, pobierz ciąg Unicode

Funkcje

    Napisz funkcję, do której można przekazywać argumenty w postaci listy/krotki lub pojedynczo. Funkcja sumuje wszystkie argumenty.

    >>> f(1, 2, 3) 6 >>> f() 6 >>> f((3, 5, 6)) 14 >>> f(3, (5, 6)) 14

    Napisz funkcję fabryczną, która zwróci funkcję dodawania z argumentem.

    >>> add5 = dodatek(5) # funkcja dodawania zwraca funkcję dodawania z 5 >>> add5(3) # zwraca 3 + 5 = 8 8 >>> add5(8) # zwraca 8 + 5 = 13 13 >>> add8 = dodatek(8) >>> add8(2) # zwróci 2 + 8 = 10 10 >>> add8(4) # zwróci 4 + 8 = 12 12

    Zapisz opcje za pomocą zwykłych „wewnętrznych” i anonimowych funkcji lambda.

    Napisz fabrykę podobną do kroku 2, ale zwracającą listę takich funkcji

    >>> dodatki = zakres_dodatków(0, 5) # lista funkcji dodawania od 0 do 5 włącznie

    te. podobny

    Napisz analogię mapy:

    • pierwszy argument jest funkcją lub listą funkcji
    • drugi argument to lista argumentów, które zostaną przekazane do funkcji
    • zakłada się, że funkcje te są funkcjami jednego argumentu
    >>> mojamapa(, ) [(1, 2, 3), (2, 3, 4), (3, 4, 5)]

    w tym przypadku wpisem „rozwiniętym” będzie: [(add0(1), add0(2), add0(3)), (add1(1), add1(2), add1(3)), (add2( 1), dodaj2(2), dodaj2(3))]

Iteratory

    Napisz cykl funkcji generatora, który zwróci cykliczny iterator.

    >>> i = iter() >>> c = cykl(i) >>> c.next() 1 >>> c.next() 2 >>> c.next() 3 >>> c.next () 1

    Napisz funkcję generatora łańcucha, która sekwencyjnie iteruje przekazane obiekty (dowolna liczba)

    >>> i1 = iter() >>> i2 = iter() >>> c = chain(i1, i2) >>> c.next() 1 >>> c.next() 2 >>> c. next() 3 >>> c.next() 4 >>> c.next() 5 >>> c.next() Traceback (ostatnie ostatnie wywołanie): ... StopIteration

Napisz dokumenty dla funkcji i iteratorów

Moduły

  1. Mamy zaimportowany moduł foo, jak możemy znaleźć fizyczną ścieżkę pliku, z którego jest on importowany?
  2. Z modułu foo importujesz moduł Feedparser. Wersja X Feedparsera znajduje się w ogólnosystemowym katalogu pakietów witryny, wersja Y znajduje się obok modułu foo. Zdefiniowana jest zmienna środowiskowa PYTHONPATH i tam również znajduje się Feedparser, wersja Z. Która wersja zostanie użyta?
  3. Jak mogę zobaczyć listę katalogów, w których Python szuka modułów?
  4. Masz moduł foo, wewnątrz niego importowany jest pasek modułu. Obok modułu foo znajdują się pliki bar.py i bar/__init__.py Który moduł będzie używany.
  5. Co oznacza konstrukcja __name__ == "__main__" i do czego jest używana?

Zajęcia

    Napisz podstawową klasę Observable, która umożliwiłaby potomkom:

    1. przekazując **kwargs, wprowadź odpowiednie wartości jako atrybuty
    2. upewnij się, że podczas drukowania wyświetlane są wszystkie atrybuty publiczne
    >>> klasa X(Obserwowalne): ... pass >>> x = X(foo=1, bar=5, _bazz=12, name="Amok", props=("Jeden", "dwa")) >>> print x X(bar=5, foo=1, name="Amok", props=("Jeden", "dwa")) >>> x.foo 1 >>> x.name "Amok" > >> x._bazz 12
  1. Napisz klasę, która na pozór byłaby słownikiem, ale umożliwiałaby dostęp do kluczy jako atrybutów.

    >>> x = DictAttr([("jeden", 1), ("dwa", 2), ("trzy", 3)]) >>> x ( "jeden": 1, "trzy": 3, "dwa": 2) >>> x["trzy"] 3 >>> x.get("jeden") 1 >>> x.get("pięć", "brak") "brak" >>> x .one 1 >>> x.five Traceback (ostatnie wywołanie ostatnie): ... AttributeError

    Punkt 2 z komplikacją: napisz klasę nadrzędną XDictAttr tak, aby klucz następcy był dynamicznie wyznaczany przez obecność metody get_ .

    >>> klasa X(XDictAttr): ... def get_foo(self): ... return 5 ... def get_bar(self): ... return 12 >>> x = X(("jeden": 1 , "dwa": 2, "trzy": 3)) >>> x X: ( "jeden": 1, "trzy": 3, "dwa": 2) >>> x["jeden"] 1 > >> x.three 3 >>> x.bar 12 >>> x["foo"] 5 >>> x.get("foo", "brak") 5 >>> x.get("bzz", „brak”) „brak”

    Napisz klasę, która rejestruje jej instancje i udostępnia dla nich interfejs iteratora

    >>> x = Reg() >>> x >>> y = Reg() >>> y >>> z = Reg() >>> dla i w Reg: ... drukuj i

Napisz testy jednostkowe w oparciu o powyższe testy, ale nie ograniczając się do nich.

Metaklasy i deskryptory

  1. Do czego służą, jakie argumenty otrzymują, co mają zwracać: metody __new__ i klasy __init__
  2. Jakie argumenty otrzymują __new__ i __init__ dla metaklasy?

    Zaimplementuj deskryptory, które przechwytują typ atrybutu

    >>> klasa Obraz(obiekt): ... wysokość = Właściwość(0) ... szerokość = Właściwość(0) ... ścieżka = Właściwość("/tmp/") ... rozmiar = Właściwość(0) > >> img = Image() >>> img.height = 340 >>> img.height 340 >>> img.path = "/tmp/x00.jpeg" >>> img.path "/tmp/x00.jpeg " >>>

    Zaimplementuj klasę bazową (używając metaklasy), która przechwytuje typ atrybutu

    >>> klasa Image(Object): ... wysokość = 0 ... szerokość = 0 ... ścieżka = "/tmp" ... rozmiar = 0 >>> img = Image() >>> img.height = 340 >>> img.height 340 >>> img.path = "/tmp/x00.jpeg" >>> img.path "/tmp/x00.jpeg" >>> img.path = 320 Traceback (najnowsze zadzwoń jako ostatni): ... TypeError

    Zaimplementuj klasę bazową (używając metaklasy) i deskryptory, które utworzą schemat SQL (ANSI SQL) dla modelu opartego na klasie:

    >>> klasa Obraz(Tabela): ... wysokość = Integer() ... szerokość = Integer() ... ścieżka = Str(128) >>> print Image.sql() UTWÓRZ TABELĘ obraz (wysokość liczba całkowita, szerokość całkowita, ścieżka varchar(128))

    Nie ma potrzeby implementowania wartości NULL, KLUCZ PODSTAWOWY, KLUCZ OBCY, OGRANICZENIA. Wystarczy zaimplementować dwa typy: Integer i Str.

  • Cel 1- pomoc z linkami, materiałami dla tych, którzy planują uczyć się programowania i przyjąć Python jako swój pierwszy język. Pokaż, że to nie jest takie trudne, jak się wydaje.
  • Cel 2- zbieraj w komentarzach linki do przydatnych i ciekawych materiałów na ten temat.

0. Czy mi się uda?

Od samego początku wątpiłem, czy uda mi się zrobić coś więcej niż Hello World. Wydawało mi się, że programowanie jest niezwykle trudne i niezwykle magiczne. Do tego dochodzi praca, hobby, rodzina, które odrywają od pełnej nauki.

Nie powinnam się bać i nie polecam Ci tego. Programowanie prawdopodobnie nigdy nie stanie się moim głównym zawodem, ale jest to świetny sposób na kreatywność. To szachy i cywilizacja w jednej butelce.

Wszystko jest prostsze niż się wydaje i znacznie ciekawsze.

1. Literatura

Mark Lutz „Programowanie w Pythonie”- zaleca się przeczytanie go na wielu forach i kursach. Wydawało mi się to zbyt szczegółowe i obciążone dla początkującego. Dużo czytaj, trochę programuj. O wiele bardziej przydatne jest przeczytanie go przynajmniej po opanowaniu Pythona.

Mark Summerfield „Programowanie w Pythonie 3”- dynamicznie, z doskonałymi przykładami i zadaniami. Bez zbędnego zagłębiania się, co tylko na początku wszystko komplikuje. Polecam zacząć od tej książki, pomoże ci to szybko zrozumieć, nie zastraszając cię trudnościami.

Wszystkie inne książki okazały się mniej przydatne i pouczające. Generalnie ciężko jest po prostu sięgnąć i kupić dobrą literaturę na ten temat w sklepie czy w wersji cyfrowej.

2. Co czytać w Internecie

http://pythonworld.ru/ - opowiada o podstawach języka prostym i zrozumiałym językiem, często używanym jako ściągawka.

Po kolejnych dwóch miesiącach udało mi się stworzyć moją pierwszą aplikację Django. Ale najważniejsze jest to, że teraz mam wystarczającą wiedzę do samodzielnego rozwoju i nauki. Najtrudniej jest dojść do tego punktu.

Kolejny miesiąc później dołączyłem do dwóch projektów na GitHubie i biorę w nich udział. Oczywiście nadal rozwiązuję proste problemy, ale w zamian otrzymuję porady i szkolenia.

Tagi: szkolenie w Pythonie, szkolenie z programowania

Bardziej popularny niż kiedykolwiek, jest używany wszędzie, gdzie to możliwe, od serwerów zaplecza po tworzenie gier frontendowych i tak dalej. Python jest słusznie uważany za język ogólnego przeznaczenia i szybko staje się narzędziem niezbędnym w arsenale każdego szanującego się programisty.

Ale Python nie jest popularny tylko dlatego, że jest popularny. Jest łatwy do nauczenia, czyta się jak pseudokod i jest bardzo dynamiczny. Jednak nauka nowego języka może być nie lada wyzwaniem, znalezienie odpowiedniego miejsca do nauki i osób, od których można się nauczyć nowych informacji, rozwiąże połowę problemu. Nasz poradnik Ci w tym pomoże. To będzie Twój niezawodny plan, który sprawi, że nauka Pythona stanie się łatwiejsza i sprawi, że nauka będzie przyjemna i interesująca.

Zadanie 1: Zacznij od podstaw

W chwili pisania tego tekstu istnieją dwie główne wersje Pythona: Python 2.7 i Python 3.2. Którą wersję wybierzesz do nauki, nie jest tak ważne, ponieważ różnice będą minimalne, szczególnie dla początkującego. Powinieneś jednak wiedzieć, że Python 2 obsługuje więcej bibliotek innych firm, podczas gdy Python 3 skupia się głównie na programistach pracujących nad ulepszaniem języka. Wybór należy do Ciebie. Jeśli kod z dowolnego samouczka nie działa zgodnie z oczekiwaniami, upewnij się, że używasz odpowiedniej wersji Pythona z tego samouczka.

Wikibooks zawsze były niezawodnym źródłem wiedzy, a Python nie jest wyjątkiem. Tutaj znajdziesz świetną serię samouczków, które pomogą Ci lepiej poznać Pythona. Nie będzie zbyt wiele żargonu technologicznego i możesz dość szybko zacząć pisać kod, co z pewnością będzie satysfakcjonującym doświadczeniem. Dlatego polecam tę stronę jako dobre miejsce na rozpoczęcie swojej przygody z Pythonem.

Nie znajdziesz lepszego źródła informacji niż oficjalna dokumentacja na python.org. Jeśli jednak chcesz zacząć od razu, może to nie być dobry pomysł.

Treść tutaj jest bardziej techniczna niż wikibooki, co z kolei będzie przydatne później w miarę postępów w nauce języka. Dla początkującego treść może wydawać się skomplikowana i będzie to przeszkodą w nauce tego prostego i pięknego języka.

Dla początkujących najbardziej zauważalną różnicą między Pythonem 2 i Pythonem 3 będzie prawdopodobnie możliwość używania w Pythonie 2 funkcji drukowania bez nawiasów. Nawiasy są wymagane w Pythonie 3 i to wszystko.

Zadanie 2: tutoriale i screencasty

Playlista NewBoston jest zawsze świetna i można się tam nauczyć wielu języków. „Bucky” to doskonały instruktor, ciekawie się go słucha, ponieważ znalazł równowagę między zabawą a pouczaniem, a to, co stara się przekazać, jest zawsze łatwe do zrozumienia. Polecam sprawdzić dowolną jego playlistę – zwłaszcza playlistę Pythona. Nie musisz posiadać żadnej wiedzy programistycznej, po obejrzeniu jego samouczków wideo będziesz mieć solidną wiedzę na temat języka.

Nettuts+ Python od zera

Dobrym wprowadzeniem do Pythona jest kurs Gilesa Lavelle’a. Podobnie jak w przypadku serii TheNewBoston, Lavelle zakłada, że ​​nie masz doświadczenia w programowaniu.

Jeśli chcesz zobaczyć aplikacje w świecie rzeczywistym lub chcesz zrozumieć tworzenie stron internetowych w języku Python, ta seria jest idealna.

W tym screencastie utworzysz od podstaw dynamiczną stronę internetową przy użyciu frameworka Django Python.

Zrzut ekranu Pythona z ShowMeDo

StackOverflow jest znany nie tylko z nowicjuszy, błędów i problemów.

ShowMeDo ma ogromny katalog filmów związanych z Pythonem. Chociaż witryna może nie wydawać się najlepszym interfejsem użytkownika, zawiera ogromną gamę przydatnych filmów, od informacji dla początkujących po zaawansowane techniki używania języka Python. Zdecydowanie powinieneś sprawdzić tę stronę.

Utwórz bota w Pythonie, który będzie mógł grać w gry internetowe

W tym tutorialu zapoznasz się z konkretnym materiałem, nie polecam go absolutnie początkującym. Myślę jednak, że warto o tym wspomnieć. W tym samouczku Chris Kiehl pokaże Ci, jak stworzyć bardzo interesującego bota w Pythonie, który zagra za Ciebie w prostą grę. Samouczek pokaże Ci potęgę Pythona; może być przydatny do rozwiązywania codziennych zadań, które można wykorzystać do zarządzania komputerem.

Zadanie 3: Darmowe eBooki

Dobra książka jest wielką pomocą w uczeniu się czegoś nowego, a Python ma niesamowitą i przyjazną społeczność, czego efektem jest duży wybór bezpłatnych e-booków. Poniżej zobaczysz małą listę najlepszych książek. Możesz pobrać bezpłatną wersję elektroniczną każdego z nich lub kupić wydanie drukowane (lub przekazać darowiznę), jeśli chcesz wesprzeć autora, jestem pewien, że to doceni.

Naucz się Pythona na własnej skórze

Pomimo tytułu książki „Niełatwe podejście do nauki języka Python” nauka języka Python nadal jest prosta — i tak powinno być! W tej książce Zed A. Shaw przedstawia kompletny i szczegółowy przewodnik zawierający problemy i przykłady sprawdzające Twoje umiejętności programowania. Książka napisana jest nieformalnym językiem, ale opisuje wiele szczegółów szczegółowo, więc nie będziesz miał trudności z jej przeczytaniem, a na efekt nie będziesz musiał długo czekać.

Myśl w Pythonie: jak myśleć jak informatyk

Nie znajdziesz lepszego źródła informacji niż oficjalna dokumentacja python.org.

Jak głosi podtytuł: „Myśląc jak programista”, znajdziesz tutaj wiele materiałów teoretycznych. Początkujący mogą czuć się sfrustrowani i uznać tę książkę za trudną, ale zaufaj mi, warto ją przeczytać, ponieważ znajdziesz w niej informacje o teorii algorytmów i koncepcjach wysokiego poziomu.

Wymyśl z Pythonem

Jeśli bardziej interesuje Cię część praktyczna, tworzenie własnej gry będzie naprawdę satysfakcjonującym doświadczeniem! W tej książce Al Sweigart zakłada, że ​​nie czujesz się komfortowo w Pythonie i pomaga Ci stworzyć grę. Chociaż ta książka dotyczy tworzenia gier, jest również odpowiednia dla zupełnie początkujących. W dalszej części tego artykułu wspomniałem o podobnej książce, ale wymaga ona dobrej znajomości języka Python. Jeżeli czujesz, że dobrze znasz ten język, to inna książka będzie dla Ciebie bardziej pouczającym źródłem informacji.

Książka Django

Jeśli chcesz nauczyć się tworzenia stron internetowych w Pythonie, najprawdopodobniej będziesz korzystać z frameworka Django. Być może nie znasz frameworku Django, ale aby przeczytać tę książkę, powinieneś dobrze znać język Python. Informacje w nim zawarte są niezbędne dla każdego początkującego twórcy stron internetowych.

Książki o Pythonie

Jeśli wszystkie powyższe książki nie wystarczą lub interesuje Cię konkretny temat, kliknij ten link. Chłopaki z python.org stworzyli obszerną listę książek, sortując je według złożoności i tematu.

Zadanie 4: Poznaj StackOverflow

Tysiące programistów doświadczyło tych samych problemów, z którymi będziesz musiał się zmierzyć. StackOverflow to świetne źródło informacji, w którym każdy programista może znaleźć rozwiązanie swojego problemu. Gdy napotkasz kolejny błąd i nie masz pojęcia, jak go naprawić, poszukaj odpowiedzi na StackOverflow. Najprawdopodobniej są tam już informacje, jak inne osoby rozwiązują podobny problem.

Ale StackOverflow jest znany nie tylko z nowicjuszy, błędów i problemów; Ta strona jest pełna mądrych ludzi, którzy chcą pomóc - ucz się od nich!

Większość trików i porad, które tu znajdziesz, nie znajduje się w żadnym z tutoriali i będą bardzo przydatne dla zaawansowanych i średnio zaawansowanych użytkowników Pythona.

Zadanie 5: Projekt Euler


Projekt Euler (wymawiane „Naftowiec”, pamiętaj o tym, aby nie stracić twarzy w przyszłości) to jedna z moich ulubionych stron internetowych. Po utworzeniu konta możesz wziąć udział i rozwiązać około 400 wyzwań na tej stronie. Każde zadanie jest 50 procent matematyki, 50 procent programowania, moim zdaniem najwłaściwsze podejście do nauki każdego z tych przedmiotów.

Zadania zaczynają się od prostych, sprawdzających poziom znajomości języka, po czym złożoność będzie rosła, aż w końcu pojawią się problemy, których nawet doświadczony programista nie będzie w stanie rozwiązać. Na koniec będziesz musiał znaleźć najskuteczniejszy algorytm - jeśli nie masz czasu, poczekaj kilka godzin, aby obliczyć poprawną odpowiedź.

Nic nie sprawi, że staniesz się lepszym programistą szybciej niż znalezienie najskuteczniejszego rozwiązania problemów Projektu Euler.

Kiedy uda ci się znaleźć rozwiązanie innego problemu, otworzy się dla ciebie strona forum, na której ludzie omawiają między sobą rozwiązania i pomysły dotyczące tego problemu. Większość z tych rozwiązań będzie w Pythonie. To jest właśnie klucz, który pomoże Ci znacznie poprawić swoje umiejętności programowania. Jeśli ktoś znalazł szybsze rozwiązanie, nie bój się poświęcić czasu na jego analizę, abyś mógł zrozumieć, które punkty wymagają przeróbki. Z biegiem czasu zaczniesz rozumieć wszystkie sztuczki, a Twoje umiejętności posługiwania się językiem Python poprawią się, a na rezultaty nie będziesz musiał długo czekać.

Oprócz tego istnieje kilka blogów informacyjnych, na których można znaleźć rozwiązania problemów związanych z językiem Python w ramach projektu Euler. Jeśli utkniesz na jakimś problemie, nie ma problemu, jeśli spojrzysz na rozwiązania innych programistów, najważniejsze jest, aby nauczyć się od nich czegoś nowego. Oto dwa moje ulubione blogi:

Zadanie 6: Stwórz grę

Oprócz tworzenia własnej gry, jest tylko kilka rzeczy, które mogą sprawić przyjemność.

Oprócz tworzenia własnej gry, jest tylko kilka rzeczy, które mogą sprawić przyjemność. Może to być dość stroma nauka, ale zdecydowanie warto. PyGame to najsłynniejsza biblioteka do tworzenia gier w Pythonie i nie będzie trudno znaleźć darmowe tutoriale na jej temat. Poniżej najlepsze z nich.

Oficjalna dokumentacja PyGame

Podobnie jak w przypadku tutoriali Pythona, programiści PyGame udostępnili dokumentację - wprowadzenie. Materiał jest pełen terminologii technicznej, na wypadek gdybyś chciał od razu zacząć tworzyć gry. Jednak jak zawsze najlepszym źródłem informacji będzie dokumentacja deweloperska; dlatego polecam tę stronę.

Wymyślaj za pomocą Pythona (z PyGame)

Darmowy e-book od AI Sweigart wprowadza czytelnika w bibliotekę PyGame, nawet jeśli nie wiesz nic o tej bibliotece, po jej przeczytaniu będziesz mógł stworzyć kilka gier. Proste gry będą doskonałą podstawą do stworzenia własnego projektu, jeśli tylko będziesz mieć na to ochotę. Sweigart udostępnia szczegółowe komentarze na temat swojego kodu, aby pomóc w procesie uczenia się.

To kolejna playlista od TheNewBoston. Doskonałe wprowadzenie do PyGame. Powtórzę: możesz nie być zaznajomiony z tą biblioteką; czytając książkę, zaczniesz rozumieć PyGame, ale w przeciwieństwie do InventWithPython nie stworzysz pełnoprawnej gry.

Zadanie 7: Przeglądaj popularne biblioteki i narzędzia

Python to język ogólnego przeznaczenia, za pomocą którego można zrobić prawie wszystko; Mamy do dyspozycji nieskończoną gamę bibliotek i narzędzi. Poniżej znajduje się lista najpopularniejszych.

PyPy

Jeśli chcesz zbierać informacje ze stron HTML... BeautifulSoup zrobi wszystko, czego potrzebujesz i zaoszczędzi ogromną ilość czasu.

Kiedy robisz rzeczy wymagające dużych zasobów procesora i czujesz, że Python je zużywa, na ratunek przyjdzie PyPy. PyPy to alternatywny kompilator dla Pythona, który może przyspieszyć obliczenia.

NumPy + SciPy

Biblioteki te są zwykle używane razem (SciPy zależy od NumPy). Jeśli musisz wykonać pracę związaną z obliczeniami matematycznymi lub badaniami naukowymi, biblioteki te będą doskonałym pomocnikiem. NumPy i SciPy rozszerzają funkcje matematyczne i możliwości Pythona, w efekcie czego znacznie przyspieszą rozwiązywanie zadań.

Piękna Zupa

BeautifulSoup jest absolutnie niesamowita. Analizowanie informacji ze stron HTML może być dość żmudne i frustrujące. BeautifulSoup zrobi wszystko za Ciebie i zaoszczędzi Ci mnóstwo czasu. Gorąco polecam tę bibliotekę, praca z nią to czysta przyjemność.

Biblioteka obrazów Pythona

Biblioteka przetwarzania obrazu (PIL) doskonale nadaje się do każdego zadania przetwarzania obrazu. Jeśli zajdzie potrzeba jakiejkolwiek interakcji z obrazem, PIL najprawdopodobniej pomoże w realizacji tego zadania.

Django

Jak wspomniałem w tym artykule, jeśli interesuje Cię tworzenie stron internetowych, Twoim wyborem jest framework Django. Jest to najpopularniejszy framework Pythona i istnieje na jego temat ogromna liczba zasobów szkoleniowych.

Wyzwanie 8: Weź udział w projektach open source

Przy przyzwoitej znajomości języka umiejętność czytania i poruszania się po kodzie innych osób jest niezbędną umiejętnością, która okaże się również świetnym sposobem na naukę.

Dlatego projekty open source są tak popularne. Witryny Github i Bitbucket to miejsca, od których powinieneś zacząć. Nie martw się, jeśli ludzie krytykują Twój kod, nie powinieneś od razu brać udziału w tych projektach. Zawsze możesz popracować nad oddzielną gałęzią tego projektu, dowiedzieć się, jak to działa i zrobić z nim, co chcesz. Jeśli nagle znajdziesz rzeczy, które wymagają poprawy, świetnie! Zrób to i prześlij swoje ulepszenia. Właśnie po to są projekty open source.

Wniosek

Mam nadzieję, że udało mi się zapewnić solidne podstawy do nauki języka Python. Na wypadek, gdybym zapomniał wspomnieć o jakichkolwiek zasobach, daj mi znać w komentarzach poniżej, aby pomóc innym użytkownikom!

  • Cel 1- pomoc z linkami, materiałami dla tych, którzy planują uczyć się programowania i przyjąć Python jako swój pierwszy język. Pokaż, że to nie jest takie trudne, jak się wydaje.
  • Cel 2- zbieraj w komentarzach linki do przydatnych i ciekawych materiałów na ten temat.

0. Czy mi się uda?

Od samego początku wątpiłem, czy uda mi się zrobić coś więcej niż Hello World. Wydawało mi się, że programowanie jest niezwykle trudne i niezwykle magiczne. Do tego dochodzi praca, hobby, rodzina, które odrywają od pełnej nauki.

Nie powinnam się bać i nie polecam Ci tego. Programowanie prawdopodobnie nigdy nie stanie się moim głównym zawodem, ale jest to świetny sposób na kreatywność. To szachy i cywilizacja w jednej butelce.

Wszystko jest prostsze niż się wydaje i znacznie ciekawsze.

1. Literatura

Mark Lutz „Programowanie w Pythonie”- zaleca się przeczytanie go na wielu forach i kursach. Wydawało mi się to zbyt szczegółowe i obciążone dla początkującego. Dużo czytaj, trochę programuj. O wiele bardziej przydatne jest przeczytanie go przynajmniej po opanowaniu Pythona.

Mark Summerfield „Programowanie w Pythonie 3”- dynamicznie, z doskonałymi przykładami i zadaniami. Bez zbędnego zagłębiania się, co tylko na początku wszystko komplikuje. Polecam zacząć od tej książki, pomoże ci to szybko zrozumieć, nie zastraszając cię trudnościami.

Wszystkie inne książki okazały się mniej przydatne i pouczające. Generalnie ciężko jest po prostu sięgnąć i kupić dobrą literaturę na ten temat w sklepie czy w wersji cyfrowej.

2. Co czytać w Internecie

http://pythonworld.ru/ - opowiada o podstawach języka prostym i zrozumiałym językiem, często używanym jako ściągawka.

Po kolejnych dwóch miesiącach udało mi się stworzyć moją pierwszą aplikację Django. Ale najważniejsze jest to, że teraz mam wystarczającą wiedzę do samodzielnego rozwoju i nauki. Najtrudniej jest dojść do tego punktu.

Kolejny miesiąc później dołączyłem do dwóch projektów na GitHubie i biorę w nich udział. Oczywiście nadal rozwiązuję proste problemy, ale w zamian otrzymuję porady i szkolenia.

Tagi: szkolenie w Pythonie, szkolenie z programowania

Każdy uczeń Pythona musi pisać trwały kod. Przedstawiamy Państwu kilka zadań do wykonania (niezbyt prostych (poza pierwszym) i niezbyt skomplikowanych).

Jest też repozytorium tych zadań z testami i moimi rozwiązaniami (do samodzielnego przetestowania).

Aby uruchomić testy swojej funkcji, najłatwiej jest dodać kod z folderu testów na końcu pliku funkcji.

A teraz właściwie zadania:

Proste operacje arytmetyczne (1)

Napisz funkcję arytmetyczną, która przyjmuje 3 argumenty: pierwsze 2 to liczby, trzeci to operacja, jaką należy na nich wykonać. Jeśli trzecim argumentem jest + , dodaj je; jeśli - , odejmij; * - pomnóż; / - dzielenie (pierwsza przez sekundę). W przeciwnym razie zwróć ciąg „Nieznana operacja”.

Rok przestępny (2)

Napisz funkcję is_year_leap, która przyjmuje 1 argument – ​​rok i zwraca True, jeśli rok jest rokiem przestępnym, lub False w przeciwnym razie.

Kwadrat (3)

Napisz funkcję kwadrat, która przyjmuje 1 argument - bok kwadratu i zwraca 3 wartości (za pomocą ): obwód kwadratu, pole kwadratu i przekątną kwadratu.

Pory roku (4)

Napisz funkcję sezon, która przyjmuje 1 argument - numer miesiąca (od 1 do 12) i zwraca sezon, do którego ten miesiąc należy (zima, wiosna, lato lub jesień).

Lokata bankowa (5)

Użytkownik dokonuje depozytu rubla na okres lat ze stawką 10% rocznie (co roku wielkość jego depozytu wzrasta o 10%. Pieniądze te są dodawane do kwoty depozytu i w przyszłym roku będą od niego oprocentowane) ).

Napisz bank funkcji, który pobiera argumenty a i lata i zwraca kwotę, która będzie na koncie użytkownika.

Liczby pierwsze (6)

Napisz funkcję is_prime, która przyjmuje 1 argument - liczbę od 0 do 1000 i zwraca True, jeśli jest liczbą pierwszą, lub False w przeciwnym razie.

Prawidłowa data (7)

Napisz funkcję daty, która przyjmuje 3 argumenty - dzień, miesiąc i rok. Zwróć True jeśli taka data jest w naszym kalendarzu, a False w przeciwnym razie.

Szyfrowanie XOR (8)

Napisz funkcję XOR_cipher, która przyjmuje 2 argumenty: ciąg znaków do zaszyfrowania i klucz szyfrowania, który zwraca ciąg zaszyfrowany poprzez XORowanie znaków łańcucha z kluczem. Napisz także funkcję XOR_uncipher, która za pomocą zaszyfrowanego ciągu znaków i klucza przywraca oryginalny ciąg.