TI/Pierwsze kroki: Różnice pomiędzy wersjami

Z Brain-wiki
 
Linia 149: Linia 149:
 
Type "help", "copyright", "credits" or "license" for more information.
 
Type "help", "copyright", "credits" or "license" for more information.
 
>>> help(print)
 
>>> help(print)
...
+
...{tu się pojawi jakaś odpowiedź}
 
>>> help(if)
 
>>> help(if)
 
   File "<stdin>", line 1
 
   File "<stdin>", line 1
Linia 156: Linia 156:
 
SyntaxError: invalid syntax
 
SyntaxError: invalid syntax
 
>>> help('if')
 
>>> help('if')
...
+
...{znów się czegoś dowiemy}
 
</source>
 
</source>
  
Zauważ, że musimy użyć apostrofów i zapytać o <tt>'if'</tt>, bo <tt>if</tt> jest tzw. słowem kluczowym i nie może być użyte jako argument do wywołania funkcji <tt>help</tt>.  
+
Zauważ, że musimy użyć apostrofów i zapytać o <tt>'if'</tt>, bo <tt>if</tt> jest tzw. słowem kluczowym i nie może być użyte jako argument do wywołania funkcji <tt>help</tt>. Nie ma to miejsca w przypadku słowa <tt>print</tt>, gdyż jak już podkreślaliśmy jest ono nazwą funkcji. Więcej na temat tego rozróżnienia będzie później.
 
<!-- za wcześnie żeby wyjaśniać różnicę pomiędzy funkcją i słowem kluczowym -->
 
<!-- za wcześnie żeby wyjaśniać różnicę pomiędzy funkcją i słowem kluczowym -->
  

Aktualna wersja na dzień 16:24, 30 wrz 2015

W pierwszym kroku nauczymy się uruchamiać w Pythonie tradycyjny* program „Witaj świecie!". Dzięki temu nauczysz się pisać w języku Python, a także zapisywać i uruchamiać swoje pythonowe programy.

*Jest taka tradycja, że za każdym razem, kiedy uczysz się nowego języka programowania, pierwszym programem jest „Witaj świecie!” (w oryginale „Hello World”) — wszystko, co robi, to tylko wypisanie tekstu „Witaj świecie!”.


Są dwa sposoby uruchamiania programów pythonowych: użycie linii poleceń interpretera lub użycie pliku źródłowego. Zobaczmy, w jaki sposób korzystać z tych metod.


Praca z Pythonem

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

  • interaktywnie z linii poleceń,
  • zapisując polecenia w pliku tekstowym i wykonując je jako program.

Używanie linii poleceń interpretera

Uruchom interpreter Pythona, wpisując python w powłoce {{ang|shell systemowej. Jeśli używasz Linuksa lub BSD, otwórz w tym celu program w rodzaju konsole czy terminal.

W przypadku Mac OS X otwórz Terminal (znajdziesz go w: Finder → Aplikacje → Użytki → Terminal), a jeśli używasz Windows, to uruchom (Start → Uruchom...) cmd lub (w przypadku starszych wersji Windows) command albo po prostu znajdź odpowiednią pozycję w menu.

Zauważ, że w przypadku Windows musisz zadbać o poprawnie ustawioną zmienną PATH.


Teraz wpisz print('Witaj świecie!') i wciśnij Enter. Na ekranie powinien pojawić się napis Witaj świecie!

$ python3
Python 3.4.3+ (default, Sep 23 2015, 17:53:22) 
[GCC 5.2.1 20150922] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Witaj świecie!')
Witaj świecie!
>>>

Uwaga:

Napis: >>> oznacza, że Python oczekuje na wprowadzenie polecenia. Z ang. nazywa się to prompt.

Zobacz, Python natychmiast zwraca wynik! To, co właśnie wprowadziłeś, to pojedyncze polecenie Pythona. Używamy print (ang. drukuj, wypisz), aby wypisać to, co mu podamy. W naszym przypadku podaliśmy tekst Witaj świecie! i został on natychmiast wyświetlony na ekranie. Nawiasy po słowie print oznaczają, że mamy do czynienia z nazwą funkcji, a to, co umieszczamy wewnątrz tych nawiasów, jest argumentem wywołania tej funkcji. Umieszczenie napisu 'Witaj świecie' w parze apostrofów oznacza, że słowa te nie mają być traktowane jako nazwy czegokolwiek, tylko całość ma być traktowana jako dosłowna treść. Argumentów w nawiasach wywołania funkcji może być więcej, wtedy są one oddzielone przecinkami.

Jak wyjść z interpretera?

  • Jeśli używasz powłoki systemowej Linuksa/BSD/Mac OS X, wciśnij po prostu Ctrl-D.
  • Jeśli używasz Pythona w linii poleceń Windows, naciśnij Ctrl-Z, a następnie Enter.
  • Możesz też napisać exit() - tak, jest to również wywołanie funkcji, tyle że lista jej argumentów jest pusta.

Pliki źródłowe

Wróćmy wreszcie do programowania.

Jak pisać programy w Pythonie?
Od tego momentu nasza standardowa procedura zapisu i uruchamianiu programów w Pythonie będzie wyglądała następująco:
  1. Otwórz swój ulubiony edytor tekstu
  2. Wprowadź/Skopiuj kod programu podany w przykładzie.
  3. Zapisz plik pod nazwą podaną w komentarzu. Przyjmijmy, że programy Pythona będziemy zapisywali z rozszerzeniem .py.
  4. Teraz możesz uruchomić program jedną z poniższych metod:
  • w powłoce systemowej za pomocą polecenia python3 nazwa.py, gdzie nazwa jest nazwą pliku
  • wpisz execfile('nazwa.py') w lini poleceń interpretera, aby uruchomić program.


Zadanie

Uruchom swój edytor, wpisz poniższy program i zapisz go pod nazwą witaj.py.

# Nazwa pliku: witaj.py
 
print('Witaj świecie!')

Uruchom program, otwierając powłokę, przechodząc do odpowiedniego katalogu i wykonując w nim polecenie python3 witaj.py.

Wynik powinien przypominać:

$ python witaj.py
Witaj świecie!


Gratuluję, jeśli wynik jest podobny powyższego! Właśnie uruchomiłeś swój pierwszy program w Pythonie.

Jeśli wystąpił błąd, przepisz program tak, żeby wyglądał dokładnie tak, jak powyższy i spróbuj uruchomić go jeszcze raz. Zwróć uwagę na to, że Python rozróżnia wielkość liter, np. print znaczy co innego, niż Print (zauważ wielkie P w drugim). Upewnij się także, że nie ma żadnych spacji ani też znaków tabulacji na początku jakiejkolwiek linii (za moment dowiesz się, dlaczego jest to takie jest istotne).

Jak to działa?

Zacznijmy od przeanalizowania pierwszej linii naszego programu. Jest to tak zwany komentarz. Wszystko, co znajduje się na prawo od znaku # jest pomijane w trakcie wykonywania programu i przydaje się przede wszystkim jako notatki pozostawione dla przyszłego czytelnika programu. Python nie interpretuje komentarzy.

Program w Pythonie możesz uruchomić wpisując polecenie, nazwę interpretera i pliku, czyli tak jak w naszym poprzednim przykładzie, python3 witaj.py.

Uwaga o komentarzach

Komentarze są ważne, ponieważ pomagają wprowadzać szczegółowe notatki związane z programem. Powinny one wyjaśniać, co program wykonuje, albo też informować o rzeczach, które czekają na poprawienie/dokończenie/zrobienie. Mogą się one okazać bardzo przydatne dla osób, które będą czytały Twój program. Również Tobie z pewnością się przydadzą, kiedy na przykład będziesz czytał swój program sześć miesięcy po jego napisaniu.

W naszym pierwszym programie po komentarzach następuje polecenie Pythona, które wypisuje na ekran słowa Witaj świecie!. print jest nazwą funkcji, a dostarczone przez nas w nawiasach 'Witaj świecie!' jest napisem (ang. string). Wyjaśnimy tę terminologię później.

Wcięcia

Przez znaki niewidoczne rozumiemy spację, tabulator itp. Rozpoczęcie od nich linii tekstu nazywamy wcięciem linii. Znaki niewidoczne znajdujące się na początku linii są w języku Python bardzo istotne. Spacje i znaki tabulacji na początku linii są brane pod uwagę przy określaniu stopnia wcięcia danej linii, co z kolei pozwala Pythonowi grupować polecenia. Polecenia, które są tak samo wcięte tworzą blok poleceń.

Powinieneś również zapamiętać, że nieprawidłowe wcięcia pociągają za sobą czasem trudne do znalezienia błędy. Spójrz na ten przykład:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Nazwa pliku: wciecia.py

i = 5
 print('Wartość zmiennej to', i) # Błąd! Zauważ spację na początku linii
print('Powtarzam, wartość zmiennej to', i)

Próbując uruchomić powyższy program, prawdopodobnie otrzymasz następujący błąd:

  File "wciecia.py", line 4
    print 'Wartość zmiennej to ', i # Błąd! Zauważ spację na początku linii
    ^
IndentationError: unexpected indent

Python podpowiada, że we wskazanej linii znajduje się nieoczekiwane wcięcie. Nie można dowolnie zaczynać nowych bloków poleceń. Sytuacje, w których możesz rozpoczynać nowe bloki, zostaną opisane w następnych rozdziałach.

Miłą konsekwencją stosowania wcięć jest to, że w ten sposób Python zmusza nas do pisania bardziej schludnego kodu, który jest bardziej przejrzysty dla czytelnika.

Jak używać wcięć?
Nie używaj mieszaniny tabulatorów i spacji do stosowania wcięć, ponieważ nie działa to prawidłowo na wszystkich platformach. Zdecydowanie polecam żebyś używał pojedynczego tabulatora lub czterech spacji na każdy jeden stopień wcięcia.

Wybierz jeden z powyższych sposobów stosowania wcięć i stale używaj tylko tego sposobu. ====Zadanie==== Proszę wypróbować samodzielnie powyższy przykład

Programy wykonywalne w Pythonie (na potem)

Można spowodować, by program w Pythonie zachowywał się jak każdy inny program, tzn. żeby można było go uruchomić podając jedynie jego nazwę. Zob. TI\Wykonywalne programy w Pythonie.

Uzyskiwanie pomocy

Jeśli szybko musisz znaleźć opis funkcji lub polecenia Pythona, możesz skorzystać z wbudowanej pomocy (ang. help). Przydaje się to szczególnie podczas używania wiersza poleceń interpretera. Dla przykładu możesz wykonać help('string'), a uzyskasz pomoc odnośnie napisów.

Uwaga
Aby zakończyć pomoc, wciśnij q.

W podobny sposób możesz uzyskać informacje na temat niemal wszystkiego, co dotyczy Pythona. By dowiedzieć się więcej o samej pomocy, użyj help().

$ python3
Python 3.4.3+ (default, Sep 23 2015, 17:53:22) 
[GCC 5.2.1 20150922] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help(print)
...{tu się pojawi jakaś odpowiedź}
>>> help(if)
  File "<stdin>", line 1
    help(if)
          ^
SyntaxError: invalid syntax
>>> help('if')
...{znów się czegoś dowiemy}

Zauważ, że musimy użyć apostrofów i zapytać o 'if', bo if jest tzw. słowem kluczowym i nie może być użyte jako argument do wywołania funkcji help. Nie ma to miejsca w przypadku słowa print, gdyż jak już podkreślaliśmy jest ono nazwą funkcji. Więcej na temat tego rozróżnienia będzie później.

Podsumowanie i ćwiczenia

Zadania

  1. Napisz program powitalny
  2. Wyświetl pomoc na temat int
  3. Wyświetl pomoc na temat 'print'