Zapisz jako PDF

Transkrypt

Zapisz jako PDF
Spis treści
1 Pierwsze kroki
1.1 Podstawowe cegiełki
1.2 Używanie linii poleceń interpretera
1.2.1 Wykonywanie rachunków
1.3 Jak uzyskać pomoc
1.4 Najprostszy program
1.5 Ćwiczenia
1.5.1 Rachunki w linii poleceń
Pierwsze kroki
Podstawowe cegiełki
Program w Pythonie to tekst, stanowiący ciąg instrukcji; są one wykonywane przez interpreter
(zasadniczo) kolejno jedna po drugiej.
Prosta instrukcja to (zasadniczo) jedna linijka, kończy się wraz z przejściem do kolejnej linii.
Instrukcja złożona, to linijka otwierająca zawsze zakończona dwukropkiem, a po niej - blok
wcięty, tj. ciąg instrukcji (prostych i/lub złożonych) pisanych z dodatkowym wcięciem w
stosunku do linijki otwierającej; mogą to być dodatkowe (np. dwie lub cztery) spacje, lub kod
tabulacji, na początku każdej linijki. Koniec instrukcji złożonej następuje wraz z powrotem do
poprzedniego poziomu wcięcia.
W tekście programu można umieszczać komentarze; komentarz zaczyna się od znaku #, a
kończy się wraz z końcem bieżącej linii. Komentarze nie są częścią programu, tzn. są
ignorowane przy jego wykonaniu.
Wyjątki od podanych reguł, istnienie których sygnalizuje słowo zasadniczo, będą
przedstawione później.
Należy się raz zdecydować, jak dokładnie będziemy tworzyć poziomy wcięcia, i
konsekwentnie się tego trzymać. Najlepiej po dwie lub cztery spacje (wg.
upodobań), i ustawić w opcjach edytora kodu, żeby wciśnięcie klawisza Tab
skutkowało odpowiednią liczbą spacji. Mieszanie w tekście kodu spacji i tabulacji
zawsze prowadzi do kłopotów.
Przykłady instrukcji prostych:
x = 1 + 2
y = 2 * x
x = x + 1
print(x, y)
Przykłady instrukcji złożonych:
if x > :
print(x)
def dodaj1(x):
return x + 1
Ważnym elementem są komentarze:
# a teraz, powiększę x o 1
x = x + 1
Instrukcje budowane są z wyrażeń, a wyrażenia - z nazw, stałych i operatorów.
Nazwa może składać się z liter, cyfr i znaku podkreślenia (_). Nie może zaczynać się od cyfry.
Litery małe i wielkie są rozróżniane.
Przykładem stałych są liczby - całkowite i ułamki dziesiętne. Zamiast przecinkiem, część
ułamkową oddziela się kropką.
Inny rodzaj stałych to napisy. Można je budować na kilka sposobów:
'to jest napis'
"to jest drugi napis"
'''a to jest...
jeszcze jeden napis'''
Ostatni przypadek to wyjątek od zasady że koniec linii kończy instrukcję. Napis podany w
pierwszych dwóch postaciach nie może zawierać przejścia do nowej linii.
Nazwy są po to, aby oznaczać nimi wartości. Wartościami mogą być np. liczby i napisy:
pi = 3.14159
komunikat = 'Uwaga!!!'
UWAGA: znak równości to nie porównanie, a operator przypisania. Powoduje on, że nazwa po jego
lewej stronie będzie odtąd oznaczać wartość zapisaną po prawej.
Więcej o stałych i nazwach na następnej stronie, na razie tyle nam wystarczy.
Inne operatory, to w szczególności arytmetyka:
+ - * /
// % **
'*' to mnożenie, '//' to dzielenie całkowitoliczbowe, '%' to reszta z dzielenia (liczb całkowitych), '**' to
potęgowanie.
Napisy też można "dodawać":
imie = 'Jacek'
powitanie = 'witaj ' + imie
print(powitanie)
Używanie linii poleceń interpretera
Interpreter to aplikacja, która potrafi czytać tekst kodu w języku Python i wykonać zapisane w nim
polecenia. Może on być używany jako samodzielne polecenie, wywoływane w oknie terminala, lub
zintegrowany z środowiskiem programistycznym w rodzaju Spyder.
Zanim zaczniemy pisać "poważne" programy, nauczymy się korzystać z trybu interaktywnego
interpretera, który pozwala na wpisywanie po jednym poleceniu i natychmiastowe uzyskanie wyniku
jego wykonania. Można go używać do podręcznych rachunków - zamiast kalkulatora -- i do
eksperymentowania z kodem w Pythonie. Do pracy interaktywnej warto używać "wzbogaconej"
wersji interpretera, wywoływanej poleceniem
$ ipython3
w najprostszych zastosowaniach niewiele się on różni od "zwykłego" interpretera, wywoływanego
przez python3, ale posiada pewne dodatkowe możliwości, które niedługo się nam przydadzą.
UWAGA: polecenie ipython (bez 3) wywoła starszą wersję Pythona. I odpowiednio python wywołuje starszą wersję "zwykłego" interpretera, a python3 - wersję aktualną.
Wykonywanie rachunków
$ ipython3
Python 3.5.1+ (default, Mar 30 2016, 22:46:26)
Type "copyright", "credits" or "license" for more information.
IPython 2.4.1 -- An enhanced Interactive Python.
?
-> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help
-> Python's own help system.
object?
-> Details about 'object', use 'object??' for extra details.
In [1]: 7 * (3 + 5)
Out[1]: 56
In [2]: 2.81 / (1.25 - .33)
Out[2]: 3.054347826086957
In [3]: 2**128
Out[3]: 340282366920938463463374607431768211456
In [4]: 1/9
Out[4]: 0.1111111111111111
In [5]: 11//9, 11%9
Out[5]: (1, 2)
Zapis wyrażeń arytmetycznych raczej nie zaskakuje. Drobne uwagi:
spacje w zapisie wyrażenia, pomiędzy liczbami a operatorami (lub ich brak), nie mają
znaczenia
reguły pierwszeństwa operatorów (najpierw potęgowanie, potem mnożenie i dzielenie, potem
odejmowanie i dodawanie,...) są w zasadzie takie, jak należy się spodziewać; kolejność operacji
możemy narzucić nawiasami - ale tylko okrągłymi, które można wielokrotnie zagnieżdżać
pisząc ułamek dziesiętny (liczbę z kropką), można pominąć część całkowitą lub ułamkową, o ile
ma ona być zero (nie można jednak pominąć obu);
liczby całkowite mogą być dowolnie duże (w ramach fizycznych ograniczeń komputera)
operacje na ułamkach należy zawsze traktować jako przybliżone - komputer może ogarnąć
tylko skończoną liczbę cyfr
zwykłe dzielenie da zawsze wynik ułamkowy; istnieje jednak operator // dzielenia całkowitego
gdy chcemy zakończyć "rozmowę" z interpreterem, piszemy exit(); jeżeli pracujemy w
Linuxie, zadziała również dwukrotne Ctrl-D (tzn. trzymając naciśnięty klawisz Ctrl stukamy
dwukrotnie w klawisz D)
Jak uzyskać pomoc
W programie IPython mamy w każdej chwili dostęp do pomocy na temat poleceń, funkcji itd.
Pythona:
In [8]: print?
Type:
builtin_function_or_method
String form: <built-in function print>
Namespace:
Python builtin
Docstring:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep:
string inserted between values, default a space.
end:
string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
W tym przykładzie uzyskaliśmy szczegółowy opis zastosowania funkcji wbudowanej print.
Wprawdzie po angielsku, ale mam nadzieję, że nie jest to przeszkoda nie do przeskoczenia. Już
niedługo będziemy dokładnie rozumieli to, co jest tu napisane.
Jeżeli tekst pomocy jest dłuższy, to będzie wyświetlany w trybie pozwalającym m. in. na
jego przewijanie z użyciem klawiszy strzałek czy PgUp, PgDn. Aby wyjść z tego trybu i
powrócić do interpretera, wystarczy nacisnąć q.
Najprostszy program
Za pomocą ulubionego edytora tekstowego stwórzmy plik o nazwie hello.py i następującej treści:
#! /usr/bin/python3
print('Witaj świecie!')
Zgodnie z tradycją, będzie to program wykonujący jedno banalne zadanie: wypisanie komunikatu o
ustalonej treści. Zgodnie z zasadą, że programowanie w Pythonie ma być maksymalnie proste jedynym niezbędnym elementem tego programu jest linijka wywołująca funkcję print. W tym
przykładzie, uzupełniłem treść programu o pierwszą linijkę, zaczynającą się od znaku kratki (#) istotne jest, aby była to dokładnie pierwsza linijka w pliku, i by zaczynała się od pierwszej pozycji w
wierszu. Czyli, aby #! były dokładnie dwoma pierwszymi znakami w treści pliku. Z punktu widzenia
Pythona, linijka ta jest komentarzem, i przy uruchamianiu pliku jest ignorowana. Pozwala ona
jednak, by plik ten był automatycznie rozpoznawany przez system operacyjny (Linux) jako
zawierający program w języku Python. Jaki z tego pożytek, dowiemy się za chwilę.
Aby ten program uruchomić, jest parę sposobów. Najprościej:
$ python3 hello.py
powyższe polecenie wpisujemy w terminalu, w trybie powłoki systemowej (nie w programie
IPython!). Tutaj musieliśmy jawnie wywołać interpreter Pythona i wskazać mu plik hello.py jako
zawierający kod do uruchomienia.
Zamiast tego, możemy nadać plikowi hello.py atrybut pliku wykonywalnego, czyli programu, i
uruchomić go bezpośrednio:
$ chmod +x hello.py
$ ./hello.py
Polecenie z pierwszej linijki wystarczy wykonać raz dla danego pliku
Zamiast z linii poleceń, można w okienku Właściwości pliku znaleźć odpowiednie pole do
kliknięcia
Postać drugiej linijki tłumaczy się tym, że nasz program hello.py nie jest zainstalowany w
systemie i nie zostanie odnaleziony przez przeszukanie standardowych lokalizacji programów
na dysku. Należy wyraźnie wskazać, że chodzi o plik znajdujący się w bieżącym folderze - i to
tu robimy.
Plik z kodem w Pythonie nie musi mieć nazwy kończącej się na .py - jest to jednak wygodne,
bo np. edytory tekstu traktują to jako sugestię co do zawartości pliku, i mogą dostosować do
tego swoje działanie (np. gedit)
Ćwiczenia
Rachunki w linii poleceń
1. Ile wynosi reszta z dzielenia 2999 przez 7?
2. Która z tych liczb mniej się różni od pierwiastka kwadratowego z 2: 721/510 czy 722/510?
3. Oblicz pierwiastek kwadratowy z 2, a następnie - podnieś go do kwadratu; ile wynosi względny
błąd wyniku?
CDN
poprzednia | Strona główna | dalej
--RobertJB (dyskusja) 13:53, 15 cze 2016 (CEST)