PPy3/PierwszeKroki: Różnice pomiędzy wersjami

Z Brain-wiki
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

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()



poprzednia | Strona główna | dalej

--RobertJB (dyskusja) 13:53, 15 cze 2016 (CEST)