Definicja żywienia. Wprowadzenie do programowania w Pythonie. Język wysokiego poziomu ogólnego przeznaczenia

Definicja żywienia.  Wprowadzenie do programowania w Pythonie.  Język wysokiego poziomu ogólnego przeznaczenia
Definicja żywienia. Wprowadzenie do programowania w Pythonie. Język wysokiego poziomu ogólnego przeznaczenia

Pyton- potężny i łatwy do nauczenia język programowania. Zapewnia wygodne struktury danych wysokiego poziomu i proste, ale efektywne podejście do programowania obiektowego. Pyton tłumaczony język. Do uruchamiania pisanych programów wymagany jest interpreter CPython. Interpreter Pythona i duża standardowa biblioteka są swobodnie dostępne jako pliki źródłowe i binarne dla wszystkich głównych platform na oficjalnej stronie internetowej Pyton http://www.python.org i mogą być rozpowszechniane bez ograniczeń. Ponadto witryna zawiera dystrybucje i linki do licznych modułów stron trzecich oraz szczegółową dokumentację.
Język ma jasną i spójną składnię, przemyślaną modułowość i skalowalność, dzięki czemu kod źródłowy napisany w języku Pyton programy są łatwe do odczytania. Programiści językowi Pyton stosować się do pewnej filozofii programowania zwanej „Zen Pythona”. Jego tekst jest wyprowadzany przez interpreter za pomocą polecenia importuj to:

>>> importuj to The Zen of Python, Tim Peters Piękne jest lepsze niż brzydkie. Wyraźne jest lepsze niż niejawne. Proste jest lepsze niż złożone. Złożone jest lepsze niż złożone. Płaskie jest lepsze niż zagnieżdżone. Rzadki jest lepszy niż gęsty. Liczy się czytelność. Przypadki specjalne nie są na tyle wyjątkowe, aby łamać zasady. Chociaż praktyczność bije na głowę czystość. Błędy nigdy nie powinny przechodzić w ciszy. O ile nie zostaną wyraźnie uciszone. W obliczu niejasności odrzuć pokusę zgadywania. Powinna być jedna — a najlepiej tylko jedna — -oczywisty sposób na zrobienie tego. Chociaż na początku może to nie być oczywiste, chyba że „jesteś Holendrem”. Teraz jest lepiej niż nigdy. Chociaż nigdy nie jest często lepsze niż *w tej chwili*. Jeśli implementacja jest trudna do wytłumaczenia, to „zły pomysł. Jeśli implementacja jest łatwa do wytłumaczenia, może być dobrym pomysłem. Przestrzenie nazw to jeden świetny pomysł — róbmy ich więcej!

W tłumaczeniu brzmi to tak:

  • Piękne jest lepsze niż brzydkie.
  • Wyraźne jest lepsze niż niejawne.
  • Proste jest lepsze niż złożone.
  • Skomplikowane jest lepsze niż mylące.
  • Płaskie jest lepsze niż zagnieżdżone.
  • Rzadki jest lepszy niż gęsty.
  • Czytelność ma znaczenie.
  • Specjalne okazje nie są na tyle wyjątkowe, aby złamać zasady.
  • Jednocześnie praktyczność jest ważniejsza niż nieskazitelność.
  • Błędów nigdy nie należy ukrywać.
  • Jeśli nie są wyraźnie uciszone.
  • W obliczu niejasności oprzyj się pokusie zgadywania.
  • Powinien być jeden - a najlepiej tylko jeden - oczywisty sposób na zrobienie tego.
  • Chociaż na początku może to nie być oczywiste, jeśli nie jesteś Holendrem.
  • Teraz jest lepiej niż nigdy.
  • Chociaż nigdy nie jest często lepiej niż teraz.
  • Jeśli wdrożenie jest trudne do wytłumaczenia, pomysł jest zły.
  • Jeśli wdrożenie jest łatwe do wytłumaczenia, pomysł jest prawdopodobnie dobry.
  • Przestrzenie nazw są świetne! Zróbmy ich więcej!

Pyton- aktywnie rozwijający się język programowania, nowe wersje są wydawane mniej więcej co dwa i pół roku. W wyniku tego i kilku innych powodów Pyton nie ma ANSI, ISO ani innych oficjalnych standardów, CPython spełnia ich rolę.

Historia powstania języka

Rozwój języka Python rozpoczął pod koniec lat 80-tych pracownik holenderskiego Instytutu CWI. Rozproszony system operacyjny Amoeba potrzebował rozszerzalnego języka skryptowego, dla którego Guido van Rossum stworzył Pythona. Nowy język zapożyczył niektóre z osiągnięć języka ABC, który koncentrował się na nauczaniu programowania. W lutym 1991 Guido opublikował kod źródłowy na grupie dyskusyjnej alt.sources. Nazwa języka nie pochodziła od gatunku gada. Autor nazwał język na cześć popularnego brytyjskiego serialu komediowego z lat 70. Latający cyrk Monty Pythona. Niemniej jednak głowy węży stanowią emblemat języka. Po szeroko zakrojonych testach została wydana pierwsza wersja Pythona 3.0. Obecnie obsługiwane są obie gałęzie rozwoju (Python 3.xi 2.x).

Python powstał pod wpływem wielu języków programowania: Modula-3, C, C++, Smalltalk, Lisp, Fortran, Java, Miranda, Icon. Pomimo tego, że Python ma dość charakterystyczną składnię, jedną z zasad projektowania tego języka jest zasada najmniejszego zaskoczenia.

Biblioteka standardowa

Bogata biblioteka standardowa to jedna z atrakcji Pythona. Istnieją narzędzia do pracy z wieloma protokołami sieciowymi i formatami internetowymi. Dostępne są moduły do ​​pracy z wyrażeniami regularnymi, kodowaniami tekstu, formatami multimedialnymi, protokołami kryptograficznymi, archiwami. Oprócz standardowej biblioteki istnieje wiele bibliotek, które zapewniają interfejs do wszystkich wywołań systemowych na różnych platformach.
W przypadku Pythona przyjęto specyfikację interfejsu programowania bazy danych DB-API 2 i opracowano pakiety odpowiadające tej specyfikacji w celu uzyskania dostępu do różnych DBMS: Oracle, MySQL, PostgreSQL, Sybase, Firebird (Interbase), Informix, Microsoft SQL Server i SQLite.
Biblioteka NumPy do pracy z tablicami wielowymiarowymi pozwala osiągnąć wydajność obliczeń naukowych porównywalną ze specjalistycznymi pakietami. SciPy używa NumPy i zapewnia dostęp do szerokiej gamy algorytmów matematycznych. Numarray jest specjalnie zaprojektowany do operacji z dużą ilością danych naukowych.
Python zapewnia proste i wygodne API C do pisania własnych modułów w C i C++. Narzędzie takie jak SWIG pozwala prawie automatycznie uzyskać powiązania do korzystania z bibliotek C/C++ w kodzie Pythona. Narzędzie biblioteki standardowej ctypes umożliwia programom Pythona bezpośredni dostęp do bibliotek dynamicznych napisanych w języku C. Istnieją moduły, które pozwalają osadzić kod C/C++ bezpośrednio w plikach źródłowych Pythona, tworząc rozszerzenia w locie.
Python i zdecydowana większość jego bibliotek są bezpłatne i są dostarczane w kodzie źródłowym. Co więcej, w przeciwieństwie do wielu systemów otwartych, licencja w żaden sposób nie ogranicza wykorzystania Pythona w rozwoju komercyjnym i nie nakłada żadnych obowiązków poza przypisaniem praw autorskich.

Aplikacje

Python to stabilny i szeroko rozpowszechniony język. Jest używany w wielu projektach i w różnych funkcjach: jako główny język programowania lub do tworzenia rozszerzeń i integracji aplikacji. Wiele projektów zostało zaimplementowanych w Pythonie i jest on również aktywnie wykorzystywany do tworzenia prototypów przyszłych programów. Python jest używany przez wiele dużych firm.
Python z pakietami NumPy, SciPy i MatPlotLib jest aktywnie wykorzystywany jako uniwersalne środowisko do obliczeń naukowych jako zamiennik wspólnych specjalistycznych pakietów komercyjnych Matlab, IDL itp.
Profesjonalne programy graficzne 3D, takie jak Houdini i Nuke, używają języka Python do rozszerzania standardowych funkcji programów.

Źródła

Prezentacje

Zadanie domowe

Przygotuj wiadomości:

  • Python jako narzędzie dla naukowców
  • Python i Ruby (porównanie)
  • Python i web
  • Tworzenie aplikacji okiennych za pomocą Pythona i bibliotek graficznych (wxPython, PyQt, PyGTK itp.)

Kiedyś na jednym zamkniętym forum próbowałem uczyć Pythona. Ogólnie rzecz biorąc, wszystko tam utknęło. Było mi żal pisemnych lekcji i postanowiłem opublikować je dla szerokiej publiczności. Chociaż pierwszy, najprostszy. Robi się ciekawiej, ale może nie będzie ciekawie. Generalnie ten post będzie balonem próbnym, jeśli Wam się spodoba to będę go dalej rozpowszechniał.

Python dla początkujących. Rozdział pierwszy. „O co nam chodzi”

Na wszelki wypadek trochę nudnej „ewangelizacji”. Kto jest tym zmęczony, możesz pominąć kilka akapitów.
Python (wymawiane „Python”, a nie „python”) to język skryptowy opracowany przez Guido van Rossuma jako prosty język, który jest łatwy do nauczenia dla początkujących.
Obecnie Python jest powszechnie używanym językiem, który jest używany w wielu obszarach:
- Tworzenie oprogramowania aplikacyjnego (np. narzędzia linux yum, pirut, system-config-*, klient Gajim IM i wiele innych)
- Tworzenie aplikacji webowych (najpotężniejszy serwer Zope Application oraz stworzony na jego podstawie CMS Plone, na podstawie którego działa np. strona CIA, oraz wiele frameworków do szybkiego rozwoju aplikacji Plones, Django, TurboGears i wiele innych)
- Używaj jako wbudowanego języka skryptowego w wielu grach i nie tylko (w pakiecie biurowym OpenOffice.org, edytorze Blender 3d, Postgre DBMS)
- Użyj w obliczeniach naukowych (z pakietami SciPy i numPy do obliczeń oraz PyPlot do kreślenia, Python staje się prawie porównywalny z pakietami takimi jak MatLab)

A to z pewnością nie jest pełna lista projektów wykorzystujących ten wspaniały język.

1. Sam interpreter, możesz go pobrać tutaj (http://python.org/download/).
2. Środowisko programistyczne. Nie trzeba zaczynać, a IDLE zawarty w dystrybucji jest odpowiedni dla początkującego, ale do poważnych projektów potrzebujesz czegoś poważniejszego.
Dla Windows używam wspaniałego lekkiego PyScriptera (http://tinyurl.com/5jc63t), dla Linuksa używam IDE Komodo.

Chociaż na pierwszą lekcję wystarczy sama interaktywna powłoka Pythona.

Po prostu uruchom python.exe. Monit o wprowadzenie danych nie potrwa długo, wygląda tak:

Możesz także pisać programy do plików z rozszerzeniem py w swoim ulubionym edytorze tekstu, który nie dodaje swoich znaków znaczników do tekstu (żaden Word nie zrobi). Pożądane jest również, aby ten edytor mógł tworzyć „inteligentne tabulatory” i nie zastępować spacji znakiem tabulacji.
Aby uruchomić pliki do wykonania, możesz kliknąć je 2 razy. Jeśli okno konsoli zamyka się zbyt szybko, wstaw następujący wiersz na końcu programu:

Następnie interpreter będzie czekał na naciśnięcie klawisza Enter na końcu programu.

Lub skojarz pliki py w Far z Pythonem i otwórz, naciskając enter.

Wreszcie możesz użyć jednego z wielu przydatnych środowisk IDE Pythona, które zapewniają zarówno możliwości debugowania, jak i podświetlanie składni oraz wiele innych „udogodnień”.

Trochę teorii.

Na początek Python jest językiem silnie typowanym dynamicznie. Co to znaczy?

Są języki z silnym typowaniem (pascal, java, c itp.), w których typ zmiennej jest z góry określony i nie można jej zmienić, oraz są języki z typowaniem dynamicznym (python, ruby, vb ), w której interpretowany jest typ zmiennej w zależności od przypisanej wartości.
Języki pisane dynamicznie można dalej podzielić na 2 typy. Strict, które nie pozwalają na niejawną konwersję typu (Pyton) i non-strict, które wykonują niejawną konwersję typu (np. VB, w którym można łatwo dodać ciąg „123” i liczbę 456).
Po zapoznaniu się z klasyfikacją Pythona spróbujmy "pobawić się" interpreterem.

>>> a = b = 1 >>> a, b (1, 1) >>> b = 2 >>> a, b (1, 2) >>> a, b = b, a >>> a , b (2, 1)

Widzimy więc, że przypisanie odbywa się za pomocą znaku =. Możesz przypisać wartość do wielu zmiennych jednocześnie. Kiedy interaktywnie powiesz interpreterowi nazwę zmiennej, wypisuje on jej wartość.

Następną rzeczą, którą musisz wiedzieć, jest budowa podstawowych jednostek algorytmicznych - rozgałęzień i pętli. Aby zacząć, potrzebujemy małej pomocy. W Pythonie nie ma specjalnego ogranicznika bloku kodu, ich rolę odgrywa wcięcie. Oznacza to, że to, co jest napisane z tym samym wcięciem, to jeden blok poleceń. Na pierwszy rzut oka może się to wydawać dziwne, ale po krótkim przyzwyczajeniu się rozumiesz, że ten „wymuszony” środek pozwala uzyskać bardzo czytelny kod.
A więc warunki.

Warunek jest określany za pomocą instrukcji if, która kończy się na ":". Alternatywne warunki, które zostaną spełnione, jeśli pierwszy test zakończy się niepowodzeniem, są podane w instrukcji elif. Na koniec else określa gałąź, która zostanie wykonana, jeśli żaden z warunków nie będzie pasował.
Zwróć uwagę, że po wpisaniu if interpreter wskazuje monitem „...”, że czeka na kontynuację wprowadzania danych. Aby powiedzieć mu, że skończyliśmy, musisz wpisać pusty ciąg.

(Przykład z branchami z jakiegoś powodu psuje znaczniki na Habré, pomimo tańców z tagami pre i code. Przepraszam za niedogodności, wrzuciłem to tutaj pastebin.com/f66af97ba , jak ktoś mi powie co jest nie tak - będę bardzo wdzięczny)

cykle.

Najprostszym przypadkiem pętli jest pętla while. Przyjmuje warunek jako parametr i jest wykonywany tak długo, jak jest prawdziwy.
Oto mały przykład.

>>> x = 0 >>> podczas gdy x<=10: ... print x ... x += 1 ... 0 1 2 ........... 10

Zauważ, że skoro zarówno print x, jak i x+=1 są zapisywane z tym samym wcięciem, są uważane za ciało pętli (pamiętasz, co powiedziałem o blokach? ;-)).

Drugim typem pętli w Pythonie jest pętla for. Jest podobny do pętli foreach w innych językach. Jego składnia jest konwencjonalnie następująca.

Dla zmiennej na liście:
polecenia

Do zmiennej zostaną przypisane kolejno wszystkie wartości z listy (w rzeczywistości może być nie tylko lista, ale też dowolny inny iterator, ale na razie nie będziemy się tym zawracać).

Oto prosty przykład. Lista będzie ciągiem znaków, który jest niczym innym jak listą znaków.

>>> x = "Witaj, Pythonie!" >>> dla char w x: ... print char ... H e l ........... !

W ten sposób możemy rozłożyć ciąg na znaki.
Co zrobić, jeśli potrzebujemy pętli, która powtarza się określoną liczbę razy? Bardzo prosta funkcja zasięgu przyjdzie z pomocą.

Na wejściu pobiera od jednego do trzech parametrów, na wyjściu zwraca listę liczb, po których możemy „przejść” za pomocą instrukcji for.

Oto kilka przykładów użycia funkcji range, które wyjaśniają rolę jej parametrów.

>>> zakres(10) >>> zakres(2, 12) >>> zakres(2, 12, 3) >>> zakres(12, 2, -2)

I mały przykład z cyklem.

>>> dla x w zakresie(10): ... wypisz x ... 0 1 2 ..... 9

Wejście wyjście

Ostatnią rzeczą, którą musisz wiedzieć, zanim zaczniesz w pełni korzystać z Pythona, jest sposób obsługi operacji we/wy.

Dla danych wyjściowych używane jest polecenie print, które drukuje wszystkie swoje argumenty w formie czytelnej dla człowieka.

W przypadku danych wejściowych konsoli używana jest funkcja raw_input(prompt), która wyświetla monit i czeka na dane wejściowe użytkownika, zwracając to, co użytkownik wprowadził jako swoją wartość.

X = int(raw_input ("Wprowadź liczbę:")) print "Kwadrat tej liczby to ", x * x

Uwaga! Pomimo istnienia funkcji input() o podobnej akcji, nie zaleca się jej używania w programach, ponieważ interpreter próbuje wykonywać wprowadzone za jej pomocą wyrażenia składniowe, co stanowi poważną lukę w zabezpieczeniach programu.

To wszystko na pierwszą lekcję.

Zadanie domowe.

1. Napisz program do obliczania przeciwprostokątnej trójkąta prostokątnego. Długość nóg jest wymagana od użytkownika.
2. Napisz program do znajdowania pierwiastków równania kwadratowego w ujęciu ogólnym. Współczynniki są wymagane od użytkownika.
3. Napisz program wyświetlający tabliczkę mnożenia przez liczbę M. Tablica jest kompilowana od M * a do M * b, gdzie M, a, b są wymagane od użytkownika. Wynik powinien znajdować się w kolumnie, po jednym przykładzie w wierszu w następującej formie (na przykład):
5 x 4 = 20
5x5 = 25
Itp.

Wstęp


W związku z obserwowanym obecnie szybkim rozwojem komputerów osobistych następuje stopniowa zmiana wymagań dla języków programowania. Języki interpretowane zaczynają odgrywać coraz większą rolę, ponieważ rosnąca moc komputerów osobistych zaczyna zapewniać wystarczającą szybkość wykonywania interpretowanych programów. A jedyną istotną zaletą skompilowanych języków programowania jest szybki kod, który tworzą. Gdy szybkość wykonania programu nie jest krytyczna, najwłaściwszym wyborem jest język interpretowany, jako prostsze i bardziej elastyczne narzędzie programistyczne.

W związku z tym szczególnie interesujące jest rozważenie stosunkowo nowego języka programowania Python (python), który został stworzony przez jego autora Guido van Rossuma na początku lat 90-tych.

Ogólne informacje o Pythonie. Zalety i wady


Python to interpretowany, natywnie zorientowany obiektowo język programowania. Jest niezwykle prosty i zawiera niewielką liczbę słów kluczowych, a jednocześnie jest bardzo elastyczny i wyrazisty. Jest to język wyższego poziomu niż Pascal, C++ i oczywiście C, co osiąga się głównie dzięki wbudowanym strukturom danych wysokiego poziomu (listy, słowniki, krotki).

Zalety języka.
Niewątpliwą zaletą jest to, że interpreter Pythona jest zaimplementowany na prawie wszystkich platformach i systemach operacyjnych. Pierwszym takim językiem był C, ale jego typy danych mogły zajmować różne ilości pamięci na różnych komputerach, co stanowiło pewną przeszkodę w napisaniu naprawdę przenośnego programu. Python nie ma tej wady.

Następną ważną cechą jest rozszerzalność języka, która ma ogromne znaczenie, a jak pisze sam autor, język został pomyślany właśnie jako rozszerzalny. Oznacza to, że jest miejsce na doskonalenie języka przez wszystkich zainteresowanych programistów. Interpreter jest napisany w C, a kod źródłowy jest dostępny do dowolnej manipulacji. Jeśli to konieczne, możesz wstawić go do swojego programu i używać jako wbudowanej powłoki. Lub, pisząc swoje dodatki do Pythona w C i kompilując program, otrzymujesz „rozszerzony” interpreter z nowymi funkcjami.

Kolejną zaletą jest obecność dużej liczby modułów wtykowych, które zapewniają różne dodatkowe funkcje. Takie moduły są napisane w C oraz w samym Pythonie i mogą być rozwijane przez wszystkich odpowiednio wykwalifikowanych programistów. Poniższe moduły są przykładami:

  • Python numeryczny — zaawansowane możliwości matematyczne, takie jak manipulacja wektorami całkowitymi i macierzami;
  • Tkinter - budowanie aplikacji z wykorzystaniem graficznego interfejsu użytkownika (GUI) opartego na szeroko stosowanym interfejsie Tk w X-Windows;
  • OpenGL - wykorzystanie rozbudowanej biblioteki graficznego modelowania obiektów dwu- i trójwymiarowych Open Graphics Library firmy Silicon Graphics Inc. Ten standard jest obsługiwany m.in. w tak popularnych systemach operacyjnych jak Microsoft Windows 95 OSR 2, 98 oraz Windows NT 4.0.
Wady językowe.
Jedyną wadą zauważoną przez autora jest stosunkowo niska szybkość wykonywania programu w Pythonie, co wynika z jego możliwości interpretacji. Jednak naszym zdaniem jest to więcej niż opłacane przez zalety języka podczas pisania programów, które nie są bardzo krytyczne dla szybkości wykonania.

Przegląd funkcji


1. Python w przeciwieństwie do wielu języków (Pascal, C++, Java itp.) nie wymaga deklaracji zmiennych. Tworzone są w miejscu ich inicjalizacji, czyli przy pierwszym przypisaniu zmiennej wartości. Oznacza to, że o typie zmiennej decyduje typ przypisywanej wartości. Pod tym względem Python przypomina Basica.
Typ zmiennej nie jest niezmienny. Każde przypisanie do niej jest poprawne, a to prowadzi tylko do tego, że typ zmiennej staje się typem nowej wartości przypisanej.

2. W takich językach jak Pascal, C, C++ organizacja list przedstawiała pewne trudności. Aby je wdrożyć, trzeba było dobrze przestudiować zasady pracy ze wskaźnikami i pamięcią dynamiczną. I nawet z dobrymi kwalifikacjami programista, za każdym razem na nowo wdrażając mechanizmy tworzenia, pracy i niszczenia list, może łatwo popełnić subtelne błędy. W związku z tym powstało kilka narzędzi do pracy z listami. Na przykład Delphi Pascal ma klasę TList, która implementuje listy; STL (Standardowa Biblioteka Szablonów) została opracowana dla C++ i zawiera takie struktury jak wektory, listy, zestawy, słowniki, stosy i kolejki. Jednak takie udogodnienia nie są dostępne we wszystkich językach i ich implementacjach.

Jedną z wyróżniających cech Pythona jest obecność takich struktur wbudowanych w sam język jak krotki(krotka) listy(lista) i słowniki(słownik), które są czasami nazywane karty(mapa). Rozważmy je bardziej szczegółowo.

  1. Krotka . Przypomina nieco tablicę: składa się z elementów i ma ściśle określoną długość. Elementy mogą mieć dowolną wartość - proste stałe lub obiekty. W przeciwieństwie do tablicy elementy krotki niekoniecznie są jednorodne. A tym, co odróżnia krotkę od listy, jest to, że krotki nie można modyfikować, tj. nie możemy przypisać czegoś nowego do i-tego elementu krotki i nie możemy dodawać nowych elementów. Tak więc krotkę można nazwać stałą listą. Składnia krotka jest określona przez listę wszystkich elementów oddzielonych przecinkami, wszystkie zawarte w nawiasach:

  2. (1, 2, 5, 8)
    (3.14, ' ciąg ', -4)
    Wszystkie elementy są indeksowane od podstaw. Aby uzyskać i-ty element, musisz podać nazwę krotki, po której następuje indeks i w nawiasach kwadratowych. Przykład:
    t = (0, 1, 2, 3, 4)
    drukuj t, t[-1], t[-3]
    Wynik: 0 4 2
    Tak więc krotkę można nazwać wektorem stałym, jeśli jej elementy są zawsze jednorodne.
  3. Lista . Dobrym, konkretnym przykładem listy jest łańcuch Turbo Pascal. Elementy ciągu są pojedynczymi znakami, ich długość nie jest stała, można usuwać elementy lub przeciwnie wstawiać je w dowolnym miejscu ciągu. Elementy listy mogą być dowolnymi obiektami, niekoniecznie tego samego typu. Aby utworzyć listę, wystarczy wymienić jej elementy oddzielone przecinkami, ujmując to wszystko w nawiasy kwadratowe:


  4. ['ciąg', (0,1,8), ]
    W przeciwieństwie do krotki listy można dowolnie modyfikować. Dostęp do elementów jest taki sam, jak w przypadku krotek. Przykład:
    l = ]
    drukuj l, l, l[-2], l[-1]
    Wynik: 1 s (2,8) 0
  5. Słownictwo . Przypomina typ rekord (rekord) w Pascalu lub struktury (struktura) w C. Jednak zamiast schematu "pole rekordu" - "wartość" stosuje się tutaj "klucz" - "wartość". Słownik to zestaw par „klucz”-„wartość”. Tutaj "klucz" jest stałą dowolnego typu (ale głównie używa się łańcuchów), służy do nazwania (indeksowania) jakiejś odpowiadającej mu wartości (którą można zmienić).

  6. Słownik jest tworzony przez wymienienie jego elementów (par klucz-wartość rozdzielonych dwukropkami), oddzielonych przecinkami i ujętych w nawiasy klamrowe. Aby uzyskać dostęp do określonej wartości, konieczne jest wpisanie odpowiedniego klucza w nawiasach kwadratowych po nazwie słownika. Przykład:
    d = ("a": 1, "b": 3, 5: 3,14, "imię": "Jan")
    d["b"] = d
    print d["a"], d["b"], d, d["nazwa"]
    Wynik: 1 3,14 3,14 Jana
    Aby dodać nową parę "klucz"-"wartość", wystarczy przypisać odpowiednią wartość do elementu z nowym kluczem:
    d["nowa"] = "nowa wartość"
    drukuj d
    Wynik: ("a":1, "b":3, 5:3.14, "name":"Jan", "new":"nowa wartość")

3. W przeciwieństwie do Pascala, C, C++, Python nie obsługuje wskaźników, pamięci dynamicznej i arytmetyki adresów. Pod tym względem jest podobny do Javy. Jak wiadomo, wskaźniki są źródłem subtelnych błędów i praca z nimi jest bardziej związana z programowaniem na niskim poziomie. Dla większej niezawodności i prostoty nie zostały one uwzględnione w Pythonie.

4. Jedną z cech Pythona jest to, jak jedna zmienna jest przypisywana do drugiej, tj. gdy po obu stronach operatora ” = " są zmiennymi.

Podążając za Timothy Budd (), zadzwonimy semantyka wskaźnika przypadek, gdy przypisanie prowadzi tylko do przypisania referencji (wskaźnika), tj. nowa zmienna staje się po prostu inną nazwą oznaczającą tę samą lokalizację w pamięci, co stara zmienna. W takim przypadku zmiana wartości desygnowanej przez nową zmienną doprowadzi do zmiany wartości starej, ponieważ w rzeczywistości oznaczają to samo.

Gdy przypisanie prowadzi do utworzenia nowego obiektu (tu obiekt w sensie kawałka pamięci do przechowywania wartości jakiegoś typu) i skopiowania do niego zawartości przypisanej zmiennej, nazwiemy ten przypadek kopiuj semantykę. Tak więc, jeśli obowiązuje semantyka kopiowania, to zmienne po obu stronach znaku „=” będą oznaczać dwa niezależne obiekty o tej samej treści. I tutaj kolejna zmiana jednej zmiennej w żaden sposób nie wpłynie na drugą.

Przypisanie w Pythonie działa tak: if przypisywalny obiekt jest instancją takich typów jak liczby lub łańcuchy, stosuje się semantykę kopiowania, ale jeśli prawa strona jest instancją klasy, listy, słownika lub krotki, stosuje się semantykę wskaźnika. Przykład:
a = 2; b = a; b = 3
drukuj " kopiuj semantykę: a=", a, "b=", b
a = ; b = a; b = 3
print " semantyka wskaźnika: a=", a, "b=", b
Wynik:
kopiuj semantykę: a= 2 b= 3
semantyka wskaźnika: a= b=

Dla tych z was, którzy chcą wiedzieć, o co w tym wszystkim chodzi, przedstawię inne podejście do zadań w Pythonie. Jeśli w takich językach jak Basic, Pascal, C/C++ mieliśmy do czynienia ze zmiennymi „pojemnościowymi” i zapisanymi w nich stałymi (liczbowymi, znakowymi, łańcuchowymi – nie ma to znaczenia), a operacja przypisania oznaczała „wpisanie” do przypisanej zmiennej, to w Pythonie musimy już pracować ze zmiennymi-"nazwy" i nazwanymi przez nie obiektami. (Zwróć uwagę na pewną analogię z Prologiem?) Czym jest obiekt w Pythonie? To wszystko, co można nazwać: liczby, łańcuchy, listy, słowniki, instancje klas (w Object Pascal nazywane obiektami), same klasy (!), funkcje, moduły itp. Tak więc przypisując obiekt do zmiennej, zmienna staje się jego „nazwą”, a obiekt może mieć dowolną liczbę takich „nazw” i wszystkie one nie są od siebie zależne.

Teraz obiekty są podzielone na modyfikowalne (mutable) i niemutowalne. Mutable - te, które mogą zmieniać swoją „wewnętrzną zawartość”, np. listy, słowniki, instancje klas. I niezmienne - takie jak liczby, krotki, stringi (tak, stringi też; możesz przypisać zmiennej nowy string uzyskany ze starego, ale samego starego string nie można modyfikować).

Więc jeśli napiszemy a = ; b = a; b = 3 Python interpretuje to jako:

  • nadaj obiektowi "listę" " nazwać a ;
  • nadaj temu obiektowi inną nazwę - b ;
  • zmodyfikować pusty element obiektu.

  • To jest „pseudo” semantyka wskaźników.

    I ostatnia rzecz do powiedzenia na ten temat: chociaż nie można zmienić struktury krotki, zawarte w niej komponenty mutowalne są nadal dostępne do modyfikacji:

    T = (1, 2, , "string") t = 6 # niedozwolone del t # również błąd t = 0 # poprawny, teraz trzeci składnik to lista t = "S" # błąd: łańcuchy nie są modyfikowalne

    5. Dość oryginalny jest sposób grupowania operatorów w Pythonie. Pascal używa do tego nawiasów. początek-koniec, w C, C++, Java - nawiasy klamrowe (), w Basicu używane są zamykające zakończenia konstrukcji językowych (NEXT, WEND, END IF, END SUB).
    W języku Python wszystko jest znacznie prostsze: wybór bloku instrukcji odbywa się poprzez przesunięcie wybranej grupy o jedną lub więcej spacji lub znaków tabulacji w prawo względem nagłówka struktury, do której ten blok będzie się odnosić. Na przykład:

    if x > 0: wypisz ‘ x > 0 ’ x = x - 8 else: wypisz ‘ x<= 0 ’ x = 0 Tak więc dobry styl pisania programów, do którego nawołują nauczyciele Pascala, C++, Javy itp., jest tu przyswajany od samego początku, bo zwyczajnie inaczej się nie sprawdza.

    Opis języka. Struktury kontrolne



    Wyjątki dotyczące obsługi


    próbować:
    <оператор1>
    [oprócz[<исключение> [, <переменная>] ]:
    <оператор2>]
    [w przeciwnym razie <оператор3>]
    Wykonywane<оператор1>jeśli wystąpi wyjątek<исключение>, następnie<оператор2>. Jeśli<исключение>ma wartość, jest przypisana<переменной>.
    W przypadku pomyślnego zakończenia<оператора1>, wykonywane<оператор3>.
    próbować:
    <оператор1>
    wreszcie:
    <оператор2>
    Wykonywane<оператор1>. Jeśli nie zgłoszono żadnych wyjątków, to<оператор2>. Inaczej,<оператор2>a wyjątek jest zgłaszany natychmiast.
    podnieść <исключение> [<значение>] Zgłasza wyjątek<исключение>z parametrem<значение>.

    Wyjątki to tylko ciągi. Przykład:

    My_ex = 'zły indeks' try: if bad: podnieś my_ex, bad z wyjątkiem my_ex, value: print ' Error ', value

    Deklaracja funkcji



    Deklaracja klasy



    Klasa cMyClass: def __init__(self, val): self.value = val # def printVal (self): print ' value = ', self.value # # end cMyClass obj = cMyClass (3.14) obj.printVal() obj.value = "(!LANG: ciąg teraz" obj.printVal () !} Wynik:
    wartość = 3,14
    wartość = ciąg teraz

    Operatory dla wszystkich typów sekwencji (listy, krotki, łańcuchy)


    Operatory dla list (lista)


    s[i] = x i-ty element s zostaje zastąpiony przez x.
    s = t część elementów s od i do j-1 jest zastępowana przez t (t może być również listą).
    del s usuwa część s (tak samo jak s = ).
    s.append(x) dodaje element x na końcu s.
    s.count(x) zwraca liczbę elementów s równą x.
    indeks(x) zwraca najmniejsze i takie, że s[i]==x.
    s.wstaw(i,j) część s, zaczynając od i-tego elementu, jest przesuwana w prawo, a s[i] jest przypisane do x.
    s.usuń(x) to samo co del s[ s.index(x) ] - usuwa pierwszy element s równy x.
    s.reverse() zapisuje ciąg w odwrotnej kolejności
    sortować() sortuje listę w porządku rosnącym.

    Operatory słowników


    Obiekty plików


    Utworzony przez wbudowaną funkcję otwarty()(patrz opis poniżej). Na przykład: f = otwórz('mojdan.dat','r').
    Metody:

    Inne elementy językowe i wbudowane funkcje


    = zadanie.
    wydrukować [ < c1 > [, < c2 >]* [, ] ] wartości wyjściowe< c1 >, < c2 >na standardowe wyjście. Umieszcza spację między argumentami. Jeśli na końcu listy argumentów nie ma przecinka, przeskakuje do nowej linii.
    abs(x) zwraca wartość bezwzględną x.
    stosować( f , <аргументы>) wywołuje funkcję (lub metodę) f with< аргументами >.
    chr(i) zwraca pojedynczy ciąg znaków z kodem ASCII i.
    cmp(x, y) zwraca wartość ujemną, zerową lub dodatnią, jeśli odpowiednio x<, ==, или >niż r.
    divmod(a,b) zwraca krotkę (a/b, a%b), gdzie a/b to div b (całkowita część wyniku dzielenia), a%b to mod b (reszta z dzielenia).
    ocena(-y)
    zwraca obiekt podany w s jako ciąg. S może zawierać dowolną strukturę językową. S może być również obiektem kodu, na przykład: x = 1 ; incr_x = eval("x+1") .
    pływak(x) zwraca wartość rzeczywistą równą liczbie x.
    szesnastkowy(x) zwraca ciąg znaków zawierający szesnastkową reprezentację liczby x.
    Wejście(<строка>) wyświetlacze<строку>, odczytuje i zwraca wartość ze standardowego wejścia.
    int(x) zwraca wartość całkowitą x.
    obiektyw) zwraca długość (liczbę elementów) obiektu.
    długi(x) zwraca wartość typu long integer x.
    maks., min(y) zwraca największy i najmniejszy z elementów sekwencji s (tj. s jest łańcuchem, listą lub krotką).
    ok(x) zwraca ciąg znaków zawierający reprezentację liczby x.
    otwarty(<имя файла>, <режим>='r' ) zwraca obiekt pliku otwarty do odczytu.<режим>= 'w' - otwarte do pisania.
    porządek (c) zwraca kod znaku ASCII (ciąg o długości 1) c.
    pow (x, y) zwraca x do potęgi y.
    zakres (<начало>, <конец>, <шаг>) zwraca listę liczb całkowitych większych lub równych<начало>i mniejsze niż<конец>wygenerowane z podanym<шагом>.
    surowe_dane wejściowe( [ <текст> ] ) wyświetlacze<текст>na standardowe wyjście i odczytuje ciąg ze standardowego wejścia.
    okrągły (x, n=0) zwraca rzeczywisty x zaokrąglony do n-tego miejsca po przecinku.
    str (<объект>) zwraca reprezentację ciągu<объекта>.
    rodzaj(<объект>) zwraca typ obiektu.
    Na przykład: if type(x) == type(''): print ' to jest ciąg '
    xzakres (<начало>, <конец>, <шаг>) podobny do zakresu, ale tylko symuluje listę bez jej tworzenia. Używany w pętli for.

    Specjalne funkcje do pracy z listami


    filtr(<функция>, <список>) zwraca listę tych elementów<спиcка>, dla którego<функция>przyjmuje wartość „prawda”.
    mapa(<функция>, <список>) dotyczy<функцию>do każdego elementu<списка>i zwraca listę wyników.
    redukować( f , <список>,
    [, <начальное значение> ] )
    zwraca wartość uzyskaną przez „zmniejszanie”<списка>funkcja fa. Oznacza to, że istnieje jakaś wewnętrzna zmienna p, która jest inicjowana<начальным значением>, to dla każdego elementu<списка>, funkcja f jest wywoływana z dwoma parametrami: p i element<списка>. Wynik zwracany przez f jest przypisany do p. Po iteracji po wszystkim<списка>zmniejszyć zwroty s.
    Korzystając z tej funkcji możesz na przykład obliczyć sumę elementów listy: def func (red, el): return red+el sum = reduction (func, , 0) # now sum == 15
    lambda [<список параметров>] : <выражение> Funkcja „anonimowa”, która nie ma własnej nazwy i jest zapisana w miejscu jej wywołania. Akceptuje parametry określone w<списке параметров>i zwraca wartość<выражения>. Używany do filtrowania, zmniejszania, mapowania. Na przykład: >>>print filter (lambda x: x>3, ) >>>print map (lambda x: x*2, ) >>>p=reduce (lambda r, x: r*x, , 1) >>> drukuj s 24

    Importowanie modułów



    Standardowy moduł matematyczny


    Zmienne: Liczba Pi, mi.
    Funkcje(podobne do funkcji w języku C):

    acos(x) gotówka(x) ldexp(x,y) sqrt(x)
    asin(x) exp(x) log(x) opalenizna(x)
    atan(x) bajki(x) sinus(x) frexp(x)
    atan2(x,y) piętro(x) pow(x,y) modf(x)
    sufit (x) fmod(x,y) grzech(x)
    cos(x) log10(x) tanh(x)

    moduł strunowy


    Funkcje:

    Wniosek


    Ze względu na prostotę i elastyczność języka Python można go polecić użytkownikom (matematykom, fizykom, ekonomistom itp.), którzy nie są programistami, ale wykorzystują w swojej pracy technologię komputerową i programowanie.
    Programy w Pythonie powstają średnio półtora do dwóch (a czasem dwa do trzech) razy szybciej niż w językach kompilowanych (C, C++, Pascal). Dlatego język ten może być interesujący dla profesjonalnych programistów, którzy tworzą aplikacje, które nie są krytyczne dla szybkości wykonania, a także programów wykorzystujących złożone struktury danych. W szczególności Python sprawdził się dobrze w tworzeniu programów do pracy z wykresami, generowania drzew.

    Literatura


    1. Budd T. Programowanie obiektowe. - Petersburg: Piotr, 1997.
    2. Guido van Rossum. Samouczek Pythona. (www.python.org)
    3. Chris Hoffman. Krótkie odniesienie do Pythona. (www.python.org)
    4. Guido van Rossum. Odniesienie do biblioteki Pythona. (www.python.org)
    5. Guido van Rossum. Podręcznik referencyjny Pythona. (www.python.org)
    6. Guido van Rossum. Warsztaty z programowania w Pythonie. (http://sultan.da.ru)

    (Tłumaczenie)

    Na stronie internetowej Poromenos „Stuff” ukazał się artykuł, w którym w zwięzłej formie mówią o podstawach języka Python. Proponuję Ci tłumaczenie tego artykułu. Tłumaczenie nie jest dosłowne. Próbowałem wyjaśnić w więcej wyszczególnij niektóre punkty, które mogą nie być jasne.

    Jeśli myślisz o nauce Pythona, ale nie możesz znaleźć odpowiedniego samouczka, ten artykuł będzie dla Ciebie bardzo pomocny! W krótkim czasie będziesz mógł zapoznać się z podstawami języka Python. Chociaż ten artykuł często opiera się na fakcie, że masz już doświadczenie w programowaniu, ale mam nadzieję, że nawet początkujący uznają ten materiał za przydatny. Przeczytaj uważnie każdy akapit. Ze względu na zwięzłość materiału niektóre tematy traktowane są powierzchownie, ale zawierają cały niezbędny materiał.

    Podstawowe właściwości

    Python nie wymaga jawnej deklaracji zmiennych, jest wrażliwy na wielkość liter (zmienna var nie jest odpowiednikiem Var lub VAR to trzy różne zmienne) język obiektowy.

    Składnia

    Po pierwsze, warto zwrócić uwagę na interesującą cechę Pythona. Nie zawiera nawiasów operatorskich (begin..end w pascal lub (..) w C), zamiast tego bloki są wcięte: spacje lub tabulatory, a wpis do bloku instrukcji odbywa się za pomocą dwukropka. Komentarze jednowierszowe rozpoczynają się znakiem krzyżyka „#”, komentarze wielowierszowe zaczynają się i kończą trzema podwójnymi cudzysłowami „””” .

    Do przypisania wartości do zmiennej używany jest znak „=”, a dla porównania — „==”. Aby zwiększyć wartość zmiennej lub dodać do ciągu, używany jest operator "+=", a do zmniejszania - "-=". Wszystkie te operacje mogą wchodzić w interakcje z większością typów, w tym ciągami. na przykład

    >>>myvar=3

    >>> mywar += 2

    >>> myvar -= 1

    """To jest komentarz wielowierszowy

    Ciągi ujęte w trzy podwójne cudzysłowy są ignorowane"""

    >>> moja struna = "Cześć"

    >>> mystring += "świat".

    >>> Drukuj mystring

    Witaj świecie.

    # Następna linia się zmienia

    Wartości zmiennych w miejscach. (Tylko jedna linijka!)

    >>> myvar, mystring = myvar

    Struktury danych

    Python zawiera struktury danych, takie jak listy (listy), krotki (krotki) i słowniki (słowniki)). Listy są podobne do tablic jednowymiarowych (ale można użyć listy zawierającej listy — tablicy wielowymiarowej), krotki są listami niezmiennymi, słowniki również są listami, ale indeksy mogą być dowolnego typu, nie tylko liczbowe. „Tablice” w Pythonie mogą zawierać dane dowolnego typu, to znaczy jedna tablica może zawierać dane liczbowe, łańcuchowe i inne typy danych. Tablice zaczynają się od indeksu 0, a ostatni element jest dostępny pod indeksem 1. Możesz przypisać funkcje do zmiennych i odpowiednio ich używać.

    >>> sample = , ("a", "krotka")] #Lista składa się z liczby całkowitej, innej listy i krotki

    >>> mylist = ["Pozycja listy 1", 2, 3.14] #Ta lista zawiera łańcuch, liczbę całkowitą i ułamek

    >>> mylist = "Ponownie na liście element 1" #Zmień pierwszy (zero) element listy mylist

    >>> mojalista[-1] = 3.14 #Zmień ostatni element listy

    >>> mydict = ("Klucz 1": "Wartość 1", 2: 3, "pi": 3,14) #Utwórz słownik z indeksami liczbowymi i całkowitymi

    >>> mydict["pi"] = 3.15 #Zmień pozycję słownika w indeksie "pi".

    >>> mytuple = (1, 2, 3) #Ustaw krotkę

    >>> mojafunkcja = len #Python pozwala w ten sposób deklarować synonimy funkcji

    >>> drukuj mojafunkcja(mojalista)

    Możesz użyć części tablicy, określając pierwszy i ostatni indeks rozdzielone dwukropkiem ":". W takim przypadku otrzymasz część tablicy, od pierwszego indeksu do drugiego włącznie. Jeśli pierwszy element nie jest określony, to liczenie rozpoczyna się od początku tablicy, a jeśli ostatni element nie jest określony, to tablica jest odczytywana do ostatniego elementu. Wartości ujemne określają pozycję elementu od końca. Na przykład:

    >>> mojalista = ["Pozycja listy 1", 2, 3.14]

    >>> print mylist[:] #Odczytaj wszystkie elementy tablicy

    ["Pozycja listy 1", 2, 3.140000000000001]

    >>> print mylist #Odczytaj zero i pierwszy element tablicy.

    ["Pozycja listy 1", 2]

    >>> print mylist[-3:-1] #Czytanie elementów od zera (-3) do sekundy (-1) (brak w zestawie)

    ["Pozycja listy 1", 2]

    >>> print mylist #Czytanie elementów od pierwszego do ostatniego

    Smyczki

    Ciągi znaków w Pythonie oddzielone podwójnymi cudzysłowami „”” lub pojedynczymi cudzysłowami „””. Pojedyncze cudzysłowy mogą występować w cudzysłowach podwójnych lub odwrotnie. Na przykład wiersz „Powiedział „cześć”!” zostanie wyświetlony jako „Powiedział cześć!”. Jeśli chcesz użyć ciągu składającego się z kilku wierszy, ciąg ten musi zaczynać się i kończyć trzema podwójnymi cudzysłowami „”””. Możesz podstawić elementy z krotki lub słownika do szablonu ciągu. Znak procentu „%” między znakami ciąg i krotka zastępuje znaki w ciągu „%s” na element krotki. Słowniki pozwalają wstawić element o podanym indeksie do ciągu. Aby to zrobić, użyj konstrukcji „%(index)s” w W takim przypadku zamiast „%(index)s” wartość słownika pod danym indeksem zostanie zastąpiona indeksem.

    >>>print "Nazwa: %s\nNumer: %s\nCiąg: %s" % (myclass.name, 3, 3 * "-")

    Nazwa: Poromenos

    Numer 3

    strunowy: ---

    strString = """Ten tekst jest zlokalizowany

    na wielu liniach

    >>> print "To %(czasownik) to %(rzeczownik)s." %("noun": "test", "verb": "is")

    To jest test.

    Operatorzy

    Instrukcje while, if, for tworzą instrukcje move. Nie ma odpowiednika instrukcji select, więc musisz ominąć if . Oświadczenie for porównuje zmienna i lista. Aby uzyskać listę cyfr przed liczbą - użyj zakresu ( ). Oto przykład z użyciem operatorów

    rangelist = range(10) #Pobierz listę dziesięciu cyfr (od 0 do 9)

    >>> drukuj listę asortymentową

    for number in rangelist: #Dopóki numer zmiennej (która za każdym razem wzrasta o jeden) znajduje się na liście...

    # Sprawdź, czy zmienna jest uwzględniona

    # liczb w krotkę liczb (3, 4, 7, 9)

    Jeśli liczba w (3, 4, 7, 9): #Jeśli liczba jest w (3, 4, 7, 9)...

    # Operacja "przerwania" zapewnia

    # wyjdź z pętli w dowolnym momencie

    Złamać

    w przeciwnym razie:

    # "kontynuuj" "zwoje"

    # pętla. Nie jest to tutaj wymagane, ponieważ po tej operacji

    # w każdym razie program wraca do przetwarzania pętli

    Kontyntynuj

    w przeciwnym razie:

    # "else" jest opcjonalne. Warunek spełniony

    # chyba że pętla została przerwana przez "break".

    Przekaż # Nic nie rób

    jeśli lista zakresów == 2:

    Drukuj "Druga pozycja (listy są oparte na 0) to 2"

    lista zasięgu elif == 3:

    Drukuj "Druga pozycja (listy są oparte na 0) to 3"

    w przeciwnym razie:

    Drukuj "Nie wiem"

    podczas gdy lista zasięgu == 1:

    Przechodzić

    Funkcje

    Używany do deklarowania funkcji słowo kluczowe „def”. Argumenty funkcji są podane w nawiasach po nazwie funkcji. Możesz określić opcjonalne argumenty, nadając im wartość domyślną. Funkcje mogą zwracać krotki, w takim przypadku zwracane wartości muszą być oddzielone przecinkami. Słowo kluczowe lambda służy do deklarowania funkcji elementarnych.

    # arg2 i arg3 są argumentami opcjonalnymi, przyjmują domyślnie zadeklarowaną wartość,

    # chyba, że ​​podczas wywoływania funkcji podasz im inną wartość.

    def mojafunkcja(arg1, arg2 = 100, arg3 = "test"):

    Zwróć arg3, arg2, arg1

    #Funkcja jest wywoływana z wartością pierwszego argumentu - "Argument 1", drugiego - domyślnie, a trzeciego - "Nazwany argument".

    >>>ret1, ret2, ret3 = mojafunkcja("Argument 1", arg3 = "Nazwany argument")

    # ret1, ret2 i ret3 przyjmują odpowiednio wartości „Nazwany argument”, 100, „Argument 1”

    >>> print ret1, ret2, ret3

    Nazwany argument 100 Argument 1

    # Poniższe jest równoważne z def f(x): return x + 1

    zmienna funkcji = lambda x: x + 1

    >>> funkcja drukowania zmienna(1)

    Klasy

    Język Python jest ograniczony w dziedziczeniu wielokrotnym w klasach. Zmienne wewnętrzne i metody klas wewnętrznych zaczynają się od dwóch znaków podkreślenia „__” (np. „__myprivatevar”). Możemy również przypisać wartość do zmiennej klasy z zewnątrz. Przykład:

    klasaMojaklasa:

    Wspólne = 10

    Def __init__(self):

    Własna.mojazmienna = 3

    Def mojafunkcja(self, arg1, arg2):

    Zwróć self.myvariable

    # Tutaj zadeklarowaliśmy klasę Myclass. Funkcja __init__ jest wywoływana automatycznie podczas inicjowania klas.

    >>> classinstance = Myclass() # Zainicjowaliśmy klasę, a myvariable jest ustawiona na 3 zgodnie z deklaracją w metodzie inicjującej

    >>> classinstance.myfunction(1, 2) #Metoda mojafunkcja klasy Mojaklasa zwraca wartość zmiennej mojazmienna

    # Wspólna zmienna jest zadeklarowana we wszystkich klasach

    >>> klasainstancja2 = Mojaklasa()

    >>> classinstance.common

    >>> klasainstancja2.wspólny

    # Dlatego jeśli zmienimy jego wartość w klasie Myclass się zmieni

    # i jego wartości w obiektach zainicjowanych przez klasę Myclass

    >>>Mojaklasa.wspólne = 30

    >>> classinstance.common

    >>> klasainstancja2.wspólny

    # Tutaj nie zmieniamy zmiennej klasy. Zamiast tego

    # deklarujemy to w obiekcie i przypisujemy mu nową wartość

    >>> klasainstancja.wspólny = 10

    >>> classinstance.common

    >>> klasainstancja2.wspólny

    >>>Mojaklasa.wspólne = 50

    # Teraz zmiana zmiennej klasy nie wpłynie

    # zmienne obiekty tej klasy

    >>> classinstance.common

    >>> klasainstancja2.wspólny

    # Następująca klasa jest podklasą Myclass

    # dziedziczenie jego właściwości i metod, niezależnie od tego, kto potrafi

    # być dziedziczone z kilku klas, w tym przypadku wpis

    # w ten sposób: class Inna klasa(Mojaklasa1, Mojaklasa2, MojaklasaN)

    klasa Inna klasa (moja klasa):

    Def __init__(self, arg1):

    Własna.mojazmienna = 3

    Wydrukuj arg1

    >>> classinstance = Otherclass("cześć")

    Witam

    >>> classinstance.myfunction(1, 2)

    # Ta klasa nie ma właściwości test, ale możemy

    # zadeklaruj taką zmienną dla obiektu. I

    # ta zmienna będzie tylko członkiem klasy.

    >>> klasainstancja.test = 10

    >>>classinstance.test

    Wyjątki

    Wyjątki w Pythonie mają strukturę try -oprócz struktury:

    defsomefunction():

    próbować:

    # Dzielenie przez zero powoduje błąd

    10 / 0

    Z wyjątkiem ZeroDivisionError:

    # Ale program nie "Wykonuje nielegalnej operacji"

    # A obsługuje blok wyjątków odpowiadający błędowi „ZeroDivisionError”

    Drukuj „Ups, nieprawidłowy”.

    >>> fnwyjątek()

    Ups, nieprawidłowe.

    Import

    Biblioteki zewnętrzne można dołączyć za pomocą procedury importu, gdzie jest nazwą dołączonej biblioteki. Możesz również użyć polecenia „z importu”, aby skorzystać z funkcji z biblioteki:

    import random #Importuj "losową" bibliotekę

    od czasu import zegara #I w tym samym czasie funkcja "zegar" z biblioteki "czas"

    randomint = random.randint(1, 100)

    >>> drukuj losowo

    Praca z systemem plików

    Python ma wiele wbudowanych bibliotek. W tym przykładzie spróbujemy przechowywać strukturę listy w pliku binarnym, odczytać ją i zapisać ciąg w pliku tekstowym. Do przekształcenia struktury danych użyjemy standardowej biblioteki „pickle”:

    importuj marynatę

    mojalista = ["To", "jest", 4, 13327]

    # Otwórz plik C:\binary.dat do zapisu. Symbol „r”

    # zapobiega zastępowaniu znaków specjalnych (takich jak \n, \t, \b itp.).

    mojplik = plik(r"C:\binary.dat", "w")

    pickle.dump(mojalista,mojplik)

    mójplik.zamknij()

    mojplik = plik(r"C:\text.txt", "w")

    myfile.write("To jest przykładowy ciąg")

    mójplik.zamknij()

    mojplik = plik(r"C:\tekst.txt")

    >>> drukuj mójplik.odczyt()

    „To jest przykładowy ciąg”

    mójplik.zamknij()

    # Otwórz plik do czytania

    mojplik = plik(r"C:\binary.dat")

    loadlist = pickle.load(myfile)

    mójplik.zamknij()

    >>>drukuj załadowaną listę

    ["To", "jest", 4, 13327]

    Osobliwości

    • Warunki można łączyć. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
    • Użyj operacji „del”, aby wyczyść zmienne lub elementy tablicy.
    • Python oferuje ogromne możliwości dla praca z listami. Możesz użyć instrukcji deklaracji struktury listy. Instrukcja for pozwala ustawić elementy listy w określonej kolejności, a if - pozwala na wybór elementów według warunku.

    >>> lst1 =

    >>> lst2=

    >>> drukuj

    >>> drukuj

    # Operator "any" zwraca prawdę, jeśli chociaż

    # jeśli spełniony jest jeden z zawartych w nim warunków.

    >>> dowolna(i % 3 dla i w )

    Prawdziwe

    # Poniższa procedura liczy liczbę

    # pasujące pozycje na liście

    >>> suma(1 dla i w jeśli i == 3)

    >>> del lst1

    >>> drukuj lst1

    >>> del lst1

    • Zmienne globalne są zadeklarowane poza funkcjami i mogą być odczytywane bez żadnych deklaracji. Ale jeśli potrzebujesz zmienić wartość zmiennej globalnej z funkcji, to musisz ją zadeklarować na początku funkcji słowem kluczowym "global", jeśli nie, to Python zadeklaruje zmienną dostępną tylko dla tego funkcjonować.

    liczba = 5

    def mojafunkcja():

    # Wyjścia 5

    drukuj numer

    zdefiniuj innąfunkcję():

    # Zgłasza wyjątek, ponieważ globalna zmienna

    # nie zostało wywołane z funkcji. Python w tym przypadku tworzy

    # zmienna o tej samej nazwie wewnątrz tej funkcji i dostępna

    # tylko dla operatorów tej funkcji.

    drukuj numer

    Liczba = 3

    def jeszczeinnafunkcja():

    numer globalny

    # I tylko z tej funkcji zmienia się wartość zmiennej.

    Liczba = 3

    Epilog

    Oczywiście ten artykuł nie obejmuje wszystkich funkcji Pythona. Mam nadzieję, że ten artykuł pomoże ci, jeśli chcesz kontynuować naukę tego języka programowania.

    Zalety Pythona

    • Szybkość wykonywania programów napisanych w Pythonie jest bardzo wysoka. Dzieje się tak, ponieważ główne biblioteki Pythona
      są napisane w C++, a ich wykonanie zajmuje mniej czasu niż w innych językach wysokiego poziomu.
    • W związku z tym możesz pisać własne moduły dla Pythona w C lub C++
    • W standardowych bibliotekach Pythona można znaleźć narzędzia do pracy z e-mailem, protokoły
      Internet, FTP, HTTP, bazy danych itp.
    • Skrypty napisane w Pythonie działają w większości nowoczesnych systemów operacyjnych. Ta przenośność pozwala na używanie Pythona w wielu różnych aplikacjach.
    • Python jest odpowiedni dla każdego rozwiązania programistycznego, czy to programów biurowych, aplikacji internetowych, aplikacji GUI itp.
    • Nad rozwojem Pythona pracowały tysiące entuzjastów z całego świata. Wsparcie nowoczesnych technologii w standardowych bibliotekach możemy zawdzięczać właśnie temu, że Python był otwarty dla wszystkich.