PPy3/PierwszeKroki: Różnice pomiędzy wersjami
m (→Pierwsze kroki) |
|||
Linia 1: | Linia 1: | ||
== Pierwsze kroki == | == 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. | *Program w Pythonie to tekst, stanowiący ciąg instrukcji; są one wykonywane przez ''interpreter'' (zasadniczo) kolejno jedna po drugiej. | ||
Linia 75: | Linia 77: | ||
print(powitanie) | print(powitanie) | ||
</source> | </source> | ||
+ | |||
+ | ===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 | ||
+ | |||
+ | <source lang=bash> | ||
+ | $ ipython3 | ||
+ | </source> | ||
+ | |||
+ | w najprostszych zastosowaniach niewiele się on różni od "zwykłego" interpretera, wywoływanego przez <tt>python3</tt>, ale posiada pewne dodatkowe możliwości, które niedługo się nam przydadzą. | ||
+ | |||
+ | <blockquote> | ||
+ | '''UWAGA:''' polecenie <tt>ipython</tt> (bez 3) wywoła starszą wersję Pythona. I odpowiednio - <tt>python</tt> wywołuje starszą wersję "zwykłego" interpretera, a <tt>python3</tt> - wersję aktualną. | ||
+ | </blockquote> | ||
+ | |||
+ | ====Wykonywanie rachunków==== | ||
+ | |||
+ | <source lang=python> | ||
+ | $ 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) | ||
+ | </source> | ||
+ | |||
+ | 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 <tt>//</tt> dzielenia całkowitego | ||
+ | *gdy chcemy zakończyć "rozmowę" z interpreterem, piszemy <tt>exit()</tt> | ||
+ | |||
+ | |||
---- | ---- |
Wersja z 12:40, 15 cze 2016
Spis treści
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.
- 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 > 0:
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 (bez ogonków), 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 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()