Uruchomcie shella w IDLE. Przykłady wykonujcie w shellu i obserwujcie wyniki.
Podstawowym pojęciem w programowaniu jest zmienna - czyli miejsce w którym komputer zapamiętuje jakąś wartość. W niektórych językach zmienną trzeba zawczasu utworzyć, aby potem można było jej użyć. Python nie jest jednym z nich - w języku spod znaku węża zmienna powstaje w momencie gdy pierwszy raz przypisze się do niej wartość.
Języki takie jak C++, C, Pascal, C# czy Java są typowane statycznie. Co to znaczy? Że zmienna ma na stałe przypisany typ - jeśli miała przechowywać liczby całkowite, to będzie przechowywać tylko liczby całkowite, a nie np. znaki, napisy lub liczby zmiennoprzecinkowe.
Po raz kolejny Python się wyłamuje - tutaj typowanie jest dynamiczne. Znaczy to, że zmienna nie ma na stałe przypisanego typu. Zmienna ma wartość i jest takiego typu jak jej aktualna wartość. Co więcej, wartość nie przypisana do zmiennej też ma typ.
Python posiada dość typowy zestaw tzw. typów wbudowanych - czyli standardowo dostępnych w każdym programie. Są to:
- int - liczba całkowita
- float - liczba zmiennoprzecinkowa
- bool - wartość logiczna (prawda lub fałsz)
- str - napis (w Pythonie nie ma osobnego typu znakowego - znak to jednoelementowy napis)
- list - lista elementów dowolnego typu, przypomina tablice z innych języków, ale ma większe możliwości
- tuple - w polskiej nomenklaturze: tupla, krotka; przypomina listę, z tym, że nie można zmienić jej poszczególnych elementów - można najwyżej stworzyć nową tuplę w miejsce starej
- dict - słownik, w innych językach zwany też hashem lub mapą, podobnie jak w listach i tuplach, zawiera wiele elementów dowolnych typów, z których każdy ma przypisany klucz, klucze także mogą być różnych typów, ale nie mogą się powtarzać
Ponad to, w programie znajdziemy nie tylko proste wartości wyrażone jako literały - napotkamy także wyrażenia. Wyrażenia składają się ze zmiennych, literałów i innych wyrażeń. Interpreter Pythona oblicza wartości napotkanych w programie wyrażeń. Wyrażenia mogą być operacjami matematycznymi, logicznymi lub innymi.
Trzeba pamiętać, że wyrażenie jest zastępowane przez swoją wartość w danym momencie. Dlatego jeśli pod zmienną y przypiszemy 5, a pod zmienną z wartość zmiennej y dodać 1, to zmiana wartości zmiennej y nie wpłynie na wartość zmiennej z. Nazywamy to wartościowaniem zachłannym i jest to zachowanie typowe dla większości języków programowania, choć Python umożliwia także zastosowanie podejścia odwrotnego (zwanego leniwym), o czym dowiecie się później.
Jednak z samych literałów, zmiennych i wyrażeń nie zbuduje się sensownego programu - do tego konieczne są jeszcze instrukcje. Instrukcje nie mają wartości. Instrukcje mówią komputerowi co ma zrobić. Widzieliście już jedną instrukcję - instrukcję przypisania, która nadaje zmiennej wartość (to ta ze znakiem =). Inną instrukcją jest print, która służy do wypisywania wartości na ekran (podobnie jak write i writeln z Pascala). Jeśli chcemy w jednej linii umieścić więcej niż jedną wartość - oddzielamy je przecinkami. Python sam wstawi między nie odstępy.
Nie zawsze coś można zaliczyć tylko do instrukcji, albo tylko do wyrażeń. W wielu przypadkach problem taki występuje przy funkcjach. Widzieliście już składnię funkcji w działaniu - najpierw podaje się nazwę funkcji, a następnie w nawiasach jej argumenty (dane niezbędne do jej działania). Tak wygląda m. in. sprawdzanie typów przy użyciu type.
Niestety type nie jest dobrym przykładem bycia jednocześnie instrukcją i wyrażeniem. Dlaczego? Bo type działa jak typowe wyrażenie, nie robi nic poza tym, że zwraca pewną wartość. Lepszym przykładem jest raw_input - funkcja ta jako jedyny argument pobiera napis, wypisuje go, a następnie jako swoją wartość zwraca to co w reakcji na zaczepkę napisze użytkownik.
Na koniec wspomnę jeszcze o konwersji typów, czyli zamianie wartości z jednych na drugich. Czasami może się zdarzyć, że wartość jednego typu (np. int) będziemy musieli zamienić na inną (np. float) - jest to akurat dość częsty przypadek, bo przy dzieleniu przez siebie intów "gubią się" części ułamkowe (którego problemu nie mają floaty). Konwersje między typami najczęściej jak wywołania funkcji (którymi rzeczywiści są) nazywających się tak samo jak typy.
Zadanie 0
Napisz program który bezczelnie poleca tego bloga każdemu kto go uruchomi.Zadanie 1
Napisz program który pyta użytkownika o imię i grzecznie się z nim wita.Zadanie 2
Napisz program który liczy średnią z dwóch podanych przez użytkowika liczb.
Brak komentarzy:
Prześlij komentarz
Pytania? Sugestie? Jesteśmy otwarci!