Troman - tworzenie gier
Logo serwisu Troman.pl
Panel Logowania

Python - język programowania

napisał : Michalek
21
grudnia
2012
Oto kilka podstawowych zagadnień które trzeba znać aby rozpocząć pisanie w jakimkolwiek języku programowania.
tagi : programowanie python kod skrypt zmienne pętla instrukcja warunkowa if while for przewodnik tutorial jak napisać zrobić funkcja wywołanie konsola

Python

Python – język programowania wysokiego poziomu ogólnego przeznaczenia i rozbudowanym pakiecie bibliotek standardowych, którego ideą przewodnią jest czytelność i klarowność kodu źródłowego. Jego składnia cechuje się przejrzystością i zwięzłością.

Pythona wraz z IDE można pobrać ze strony głównej pythona : http://www.python.org/

Podstawy - wcięcia

Każdy język programowania posiada specyficzną dla siebie budowę. Także polecenia wykonujące tą samą czynność, dla różnych języków nie są takie same. W języku programowania C++ do określenia zakresu funkcji, instrukcji warunkowej czy pętli służą klamry - otwierająca "{" oraz zamykająca "}". Python aby określić zasięg funkcji czy pętli wykorzystuje tak zwane "wcięcia". Najlepiej będzie widać to na poniższym przykładzie:

a=5
if a>2:
    print("warunek spelniony")
    print("a jest wieksze od 2")
    print("jestem poprzedzony wcieciem")
print("ja nie naleze do instrukcji warunkowej")

#Przyklad tego samego polecenia w C++:

if (a>2) {
cout << "warunek spelniony";
cout << "a jest wieksze od 2";
cout << "tu nie ma zadnych wciec";
}

Jak widać python nie potrzebuje klamr. Po napisaniu instrukcji warunkowej czy pętli przechodząc do następnej linijki python sam pamięta o wcięciach i je dodaje. Możemy także samemu je zrobić za pomocą klawisza "tab". Nigdy nie rób wcięć SPACJĄ!!!. Linijka kodu która nie będzie poprzedzona tabulatorem (wcięciem) nie będzie należała do zakresu funkcji, instrukcji warunkowej czy pętli.

Przypisania (zmienne)

Przypisanie to zapisanie pod wybranym identyfikatorem (zmienną) obiektu. Obiektem w pythonie jest np. tekst, liczba, funkcja. Zmienne są nieodłączną częścią każdego języka programowania. Ułatwiają nam pracę ponieważ w łatwy sposób możemy odwoływać się do ich zawartości. Deklaracja zmiennej i kilka słów o składni:

a = "moja zmienna tekstowa"
b = 100

Jak widzicie - błahostka. Nazwa zmiennej nie musi być pojedynczą literą. Wskazane nawet jest aby nazywać je adekwatnie do zawartości. Nazywając zmienną "a" przy dużej ilości przypisań nie będziemy wiedzieli co zawiera w sobie nasza zmienna. Gdy nazwiemy ją np. "tekst", na pewno nie pomylimy jej z inną zmienną która zawiera w sobie np. liczbę.

Jeżeli chcemy zapisać tekst w naszej zmiennej to robimy to po znaku równości w cudzysłowie. Spacje po nazwie zmiennej i znaku równości nie mają znaczenia.
Liczbę zapisujemy do zmiennej wpisując ją po prostu po znaku równości.

a = "2"
b = tekst

W pierwszej linii kodu zawartość zmiennej "a" zinterpretowana zostanie jako tekst. W drugiej linii python nie rozpozna typu zmiennej, wyświetli błąd w konsoli.



Typy zmiennych


Python różni się od innych języków programowania między innymi tym, że nie posiada z góry narzuconego typu zmiennej jak np. w C++ czy Javie. Typ zmiennej w pythonie określany jest na podstawie obiektu przypisanego do zmiennej. Jeżeli obiektem tym będzie liczba to zmienna będzie typu liczbowego (całkowitego lub zmiennoprzecinkowego, zależnie od liczby), jeżeli tekst - zmienna typu tekstowego.



Komentarze


Pisząc skrypt warto sobie notować za co dokładnie odpowiada dana zmienna lub funkcja. Na szczęście nie musimy robić notatek na kartce, służą do tego komentarze. Dzielą się na dwa rodzaje: jednowierszowe i wielowierszowe. Możemy także za pomocą komentarzy rozdzielić kod na dwie części. A oto jak je definiujemy:

#moj komentarz jednowierszowy
##################################
""" komentarz 
ktory sklada sie 
z kilku wierszy"""
##################################

Komentarze nie są interpretowane przez pythona, to znaczy że je pomija. Nie wpływają więc na działanie kodu.



Instrukcje warunkowe


Nieodłącznym elementem pisania skryptów, programów są instrukcje warunkowe. Umożliwiają nam ustalenie pewnych kryteriów (warunków) po których spełnieniu wykonane zostaną jakieś działania (fragment kodu). Jeżeli warunek nie zostanie spełniony python pominie ten kod. Instrukcja warunkowa zbudowana jest ze słowa "if" (ang. jeżeli), warunku podanego po spacji oraz dwukropka. Kod który ma być wykonany po spełnieniu warunku podajemy w kolejnych linijkach poprzedzonych tabulatorem (nie spacjami). Zakres instrukcji kończy się na ostatniej linii kodu poprzedzonej tabulatorem. Przykład:

#zmienna pomocnicza
a = 5
#warunek po spelnieniu ktorego zostanie wykonany dalszy kod
if a>2:
#komentarz moze zaczynac sie w dowolnym miejscu
    print("warunek spelniony!")
print("Jestem poza warunkiem, nie musi byc spelniony")
    print("tu pojawi sie blad, warunek skonczyl sie linijke wyzej")

Przeanalizujmy kod. Pierwsza linijka to komentarz. Druga - deklaracja zmiennej "a" i nadanie jej wartości 5. Kolejna (pomijając komentarz) to nasza instrukcja warunkowa. Warunek - wartość zmiennej "a" musi być wieksza od 2. Dalej linijka poprzedzona tabulatorem, polecenie drukowania w konsoli (w tym wypadku tekstu wpisanego w nawias) wykonane wtedy gdy warunek zostanie spełniony. Niżej linijka kodu nie będąca poprzedzona tabulatorem czyli zostanie wykonana niezależnie od tego czy warunek zostanie spełniony czy nie. Ta linijka zamyka naszą instrukcję warunkową. Ostatnia linijka mimo że poprzedzona jest tabulatorem nie należy do instrukcji. Python wykryje tu błąd.

Gdy warunek nie zostanie spełniony mamy trzy wyjścia: pierwsze to zastrzec aby po nie spełnionym warunku wykonać jakieś polecenie, drugie - gdy warunek nie zostanie spełniony postawić nowy warunek, trzecie wyjście to pozostawienie kodu takim jakim jest - po prostu nic się nie stanie. 

I

a=5
#"a" nie jest wieksze od 6 czyli warunek nie spelniony
if a>6:
    print("ten komunikat sie nie wyswietli")

else:
      print("to zostanie wyswietlone")

II

a=5
if a>6:
      print("to zostanie pominiete")
elif a>3:
      print("drugi warunek spelniony, to sie wyswietli")
"""elif wzielo sie z
else:
      if ... : """

III

a=5
if a>6:
    print("komunikat pominiety")
#warunek nie spelniony w konsoli nic nie zostanie wyswietlone

Operatory

Operatory porównania

a>b - a jest większe od b
a<=b - a jest mniejsze lub równe b
a>=b - a jest większe lub równe b
a==b - a jest równe b (nie mylić z a =b - to jest przypisanie zmiennej a wartości zmiennej b)
a!=b - a jest różne od b

Operatory przypisania

a=b - zmiennej a przypisywana jest wartość zmiennej b
a+=b - jest to, to samo co a=a+b, czyli do aktualnej wartości zmiennej a dodawana jest jeszcze wartość zmiennej b
a-=b - czyli a=a-b
a*=b - czyli a=a*b
a/=b - czyli a=a/b

Operatory logiczne (przydatne podczas pisania warunków)

and - iloczyn logiczny, przykład: if a>5 and a!=6. Aby cały warunek był prawdą muszą być spełnione dwa warunki składowe. Jeżeli jeden z nich nie zostanie spełniony kod zawarty w tej instrukcji nie zostałby wykonany.

or - suma logiczna, przykład if a==2 or a==4 . Wystarczy że jeden z warunków składowych będzie prawdą to kod zawarty w instrukcji zostanie wykonany.

not - zaprzeczenie, if not a==5. Warunek jest spełniony gdy zmienna "a" nie będzie równa 5.

Listy

Listy to uporządkowany szereg zmiennych, do których odwołujemy się tylko jedną zmienną i
numerkiem (indeksem) identyfikującym nasz element. Odpowiednikiem listy w innych językach programowania są tablice. Składnia:

#dowolna nazwa listy i ilosc elementów podawanych po przecinkach 
lista = ["tekst", 5, 2.5]

Jak widać elementami listy mogą być obiekty różnego typu: tekst ,liczba. Spacje między nazwą zmiennej a znakiem równości oraz poza nim nie mają znaczenia. Elementy listy podajemy w nawiasach kwadratowych. Elementy listy numerowane (indeksowane) są licząc od zera. Tak więc indeks pierwszy naszej listy to liczba 5, nie "tekst". Przykład odwołania się do elementu na liście:

lista = [5,8,"tekst"]
#w konsoli zostanie wyswietlony napis - "tekst"
print (lista[2])

 

Słowniki

Słowniki są to w pewnym sensie listy (tablice). Różnią się od nich tym, że indeksy w słownikach nie muszą być typu liczbowego. W słowniku indeks może być typu tekstowego. Dzięki temu możemy precyzyjniej określić zawartość zmiennej w słowniku. Składnia:

#po indeksie w apostrofach stawiamy dwukropek
#po dwukropku jest wartosc dla ineksu, po przecinku kolejne pary
slownik = {'indeks':'wartosc', 'drugi indeks': 56, 'imie':'Piotr' }

#wyswietlona zostanie wartosc zawarta w indeksie imie czyli piotr
print (slownik['imie'])

Prosta sprawa. Jak to bywa w pythonie - spacje przed i po znaku równości nie mają znaczenia, tak samo jak po przecinku (wewnątrz słownika). Nazwy indeksów mogą zawierać spacje. 

 

Funkcja Range

"Range" to funkcja która na podstawie podanych argumentów - liczb (maksimum trzech) tworzy listę zawierająca tylko wartości liczbowe. Swoje zastosowanie ma głównie w parze z pętlami. Budowa: funkcja ta zbudowana jest ze słowa "range" oraz argumentu/ów podanych w nawiasie. Gdy podamy jeden argument (liczbę)  funkcja utworzy listę zawierającą wartości od 0 do liczby o jeden mniejszą od tej którą podaliśmy. W skrócie mówiąc - tworzy listę z liczbą elementów (liczb licząc od 0) podaną jako argument. Podając dwa argumenty zastrzegamy sobie wartość początkową oraz końcową elementów na liście. Gdy podamy np. liczby 2 i 6 to pierwszym elementem listy będzie 2, natomiast ostatnim 5. Podając trzy argumenty podajemy oprócz zakresu różnicę między kolejnymi elementami. Czyli, gdy podamy np. takie liczby: 2, 10, 2 to zakresem będą liczby od 2 do 10 a różnica między kolejnymi elementami będzie równa 2. Elementy listy w takim wypadku będą następujące: 2, 4, 6, 8. Składnia:

# argumenty funkcji rozdzielamy przecinkami
#petla ponizej bedzie wykonywala kod az do zapelnienia listy tworzonej przez range
for i in range(2,10,2):
    print (i)
#wynikiem dzialania funkcji range i petli for sa liczby 2 4 6 8

Funkcję range stosuje przeważnie wraz z pętlą. Przeanalizujmy kod. Pomijając komentarze w pierwszej linijce mamy pętle for, która za pomocą zmiennej "i" (dowolna nazwa zmiennej) odwołuje się do elementów na liście utworzonej przez range. Zmienna "i" każdorazowo przyjmuje wartość kolejnego elementu listy. Wiemy że są tylko 4 elementy na liście więc pętla wykona daną czynność (nasza to wyświetlenie wartości zmiennej "i") cztery razy.

Pętle

Pętle to instrukcje pozwalające nam wykonywać jakąś czynność kilka razy. Istnieją dwie pętle: "for" oraz "while". Pętla for wykonuje zawarty w sobie kod odwołując sie zawsze do liczby elementów na liście (zwykla lista lub funkcja range). Natomiast pętla while wykonuje kod dopóki spełniony jest dany warunek. Składnia:

#funkcja range tworzy liste z czterema elementami, tekst "petla" wyswietli sie 4 razy
for i in range(4):
    print("petla")

a=0
while a<5:
#za kazdym cyklem petli do zmiennej "a" dodawana jest jej poprzednia wartosc +1
#gdy "a" bedzie rowne 5 dzialanie petli zostanie przerwane
a+=1
#za kazdym razem zostanie wyswietlona wartosc zmiennej "a"
print(a)

O pętli for wspomniałem przy okazji funkcji "range". Skupmy się na kodzie pętli while. Pierwsza linijka to deklaracja zmiennej i przypisanie jej wartosci 0. Druga to słowo while (ang. dopóki) i nasz warunek. Zgodnie z tłumaczeniem: dopóki wartość zmiennej "a" będzie mniejsza od 5 zostanie wykonany kod poniżej (oczywiście poprzedzony tabulatorem). Niżej (nie patrząc na komentarze) do zmiennej "a" sterującej pętlą, dodajemy jej poprzednią wartość oraz jedynkę. Dzięki temu zmienna "a" zwiększa się za każdym razem o 1 aż osiągnie wartość 5 co pozwoli zakończyć działanie pętli. Ostatnią linijkę kodu dodałem opcjonalnie aby móc zobaczyć jak zmienia się wartość zmiennej "a". Oczywiście tak jak w instrukcje warunkowe, pętle mogą wykonywać dowolne polecenia (nie tylko to do drukowania w konsoli).

Funkcje

Funkcje to swego rodzaju małe programy (podprogramy) które wykonywane są w programie głównym. Mogą przyjmować obiekty (argumenty) i je zwracać. Dzięki funkcjom możemy rozdzielić nasz kod na kilka podprogramów co pozwoli nam w łatwy sposób wykonać tylko tę część skryptu którą chcemy. Przykład funkcji pobierającej i zwracającej obiekt:

# definicja funkcji: slowo "def" oraz dowolna nazwa funkcji 
# w tym przypadku podany jest takze parametr w nawiasie
# gdy nie chcemy podawac parametru zostawiamy nawiasy puste

def funkcja(a): 
    print (a)
    
liczba = 5 
#python przeskakuje kod do tego momentu, tu zaczyna swoje dzialania
funkcja(liczba) 

Funkcja posiada jeden argument oraz polecenie drukowania obiektu (wartości) tego argumentu. Dalej deklarowana jest zmienna "liczba" w której zapisany jest obiekt (czyli przyjmuje ona wartość 5 - liczba jest obiektem). Następnie zostaje wywołana funkcja. Funkcja przyjmuje nowy obiekt - liczbę 5 -i wykonuje na nim polecenie drukowania w konsoli. Przykład użycia funkcji do wydzielenia fragmentu kodu odpowiedzialnego za konkretne czynności: 

i = 4
def oblicz_wyswietl(): a=5 b=4 c=100 x = 20 + a + b + c print("nasz wynik to:",x)
if i==4:
oblicz_wyswietl()

Wszystkie polecenia znajdują się w funkcji. Instrukcja warunkowa dzięki takiemu rozwiązaniu jest krótka i przejrzysta. Gdy napiszemy np. skrypt na poruszanie postacią w grze, możemy podzielić go na funkcje odpowiedzialne za chodzenie w przód i w tył, skręcanie i skakanie. Mając takie funkcje możemy łatwo je wywołać w programie głównym za pomocą klawiszy. Ale o tym w następnym tutorialu...

Brak komentarzy
Dodaj komentarz
Aby dodać komentarz do newsa, musisz być zalogowany w Serwisie.. Zaloguj