Blog (2)
Komentarze (6)
Recenzje (0)
@joker-os Szkółka dobrego programowania czyli Python cz.2

Szkółka dobrego programowania czyli Python cz.2

31.07.2012 | aktual.: 01.08.2012 16:25

Dzień doberek. W dzisiejszej szkółce dobrego programowania poprawcujemy na znanych nam juz "zmiennych" oraz poznamy co to jest krotka oraz słownik. No to popracujemy na zmiennych:

Na sam początek przypiszemy wartości do zmiennych i spróbujemy wykonać na nich jakieś operacje arytmetyczne. No to do dzieła:

[code=Python] >>> a=12 >>> b=123 >>> print(a+b) 135 >>> print(a) 12 >>> print(a*b) 1476 >>> print(b) 123[/code]

Jak widać wykonałem na zmiennych 2 operacje arytmetyczne, a po sprawdzeniu wartości w zmiennej a i b wartość jest taka sama nasuwa się pytanie czemu? Odpowiedź jest prosta:

Ponieważ funkcja print() wyświetla tylko wynik wykonania operacji na zmiennych czyli funkcja print(). Bez zmiennych wygląda to następująco:

[code=Python]>>> print(12+123) 135[/code]

W tym wypadku akurat wygląda bez sensu użycie zmiennych ale przy większych operacjach bez sensu było by pisać każdą liczbę i ręcznie mnożyć dodawać. A czemu tak mówię bo możemy przypisać wynik do zmiennej i zmienną wynik wyświetlić np:

[code=Python]>>> a = 123 >>> b = 452 >>> wynik = a+b >>> print(wynik) 575[/code]

Jak widać wynik nie trzeba od razu wyświetla można go obrabiać dowoli i wyświetlić już gotowy wynik. Jak tak to spróbujmy zrobić operacje na 3 zmiennych i wyświetlić wynik:

[code=Python]>>> a = 12 >>> b = 123 >>> c = 12 >>> wynik = a + b * c >>> print (wynik) 1488[/code]

ITD. Można tak w wieczność polecam trochę po testować i po próbować.

A teraz zajmijmy się trochę tekstem bo Python znany jest z tego, że w bardzo łatwy i nawet przyjemny sposób można dowolnie edytować tekst oraz Python szybciej operuje tekstem niż jakimkolwiek obiektem. A więc stwórzmy sobie zmienną text i przypiszmy wartość "Ala ma kota" i spróbujmy z tekstu wyciągnąć samo słowo "ma".

No więc do roboty :)

[code=Python]>>> text = "Ala ma kota" >>> print(text[4:6]) ma[/code]

No to widać że uzyskaliśmy efekt taki jaki chcieliśmy ale jak to zostało wykonane i w jaki sposób? Czas powiedzieć coś o indeksach w tablicach ( w Pythonie mamy 4 typy tablicowe : krotka, lista, słownik oraz sety, ale o tym później narazie zachęcam do dalszego czytania ) .

A więc słowo tablica występuje w takich językach jak C++, Java, PHP itp. W Pythonie mamy typy tablicowe które posiadają takie coś jak index. Python ma to do siebie że tekst jest niby zapisany w jednej zmiennej ale naprawdę jest to tablica która każdy element ma w osobnym indeksie ( tak mi tłumaczono jak by ktoś miał uwagi będę na ten temat otwarty ). Postaram się to bardziej wytłumaczyć w postaci przykładu.

[code=Python]text = "Ala ma kota"[/code]

Jak widać dla nas ludzkim okiem wygląda że w zmiennej text znajduje się wartość "Ala ma kota" no tak niby tak jest ale dla interpretator i języka Python wygląda to troszkę inaczej:

[code=Python]text[0] = "A" text[1] = "l" text[2] = "a" text[3] = " " text[4] = "m" text[5] = "a" text[6] = " " text[7] = "k" text[8] = "o" text[9] = "t" text[10] = "a"[/code]

Tak więc dla tego tak łatwo wyciąć dany fragment z ciągu znaków. Teraz już wyjaśniam ciekawskim co to są za liczby w nawiasach kwadratowych, a więc to są właśnie są indeksy. Indeksy są to numerowane od zera pola do których możemy wstawiać wartości (ponoć najłatwiej się uczy przez wyobraźnie, a więc postaram się ją wam teraz pobudzić ).

425306

ten niebieski prostokąt to nasza zmienna i wyobraźcie sobie że macie teraz zrobić 20 tyś zmiennych na raz. HMM . Może być to dość trudne czyż nie? I tu przychodzi nam na ratunek tablica, w naszej wyobraźni będzie ona wyglądała mniej więcej tak:

425308

Jak widać w jednej zmiennej typu tablicowego mamy tak jakby wiele malutkich zmiennych, albo inaczej mówiąc w jednej zmiennej mamy wiele komórek ( lub szufladek jak kto woli ) gdzie wsadzamy karteczki z informacjami zapisanymi tam.

w praktyce zmienne tablicowe wyglądają w następujący sposób:

nazwaZmiennej = ["jakaś" , "Dowolna","Wartość]

Jak widać zdeklarowana została w Pythonie tak zwana lista. Czemu użyłem na samym początku własnie listy? Najprostszym typem tablicowym w Pythonie jest właśnie lista.

I już tłumacze czemu? Jest to najprostrzy typ tablicowy Pythonie ponieważ jest on już lekko zorientowany obiektowo ( postaram się dojść do obiektowości jak najszybciej na razie trzeba to przecierpieć z myślą że jest coś takiego jak obiektowość ) i ma swoje metody ( gotowe linie kodu do których odwołujemy się kropeczką i w łatwy sposób możemy je używać i w następnym przykładzie pokaże jak ) takie jak np:

sort, reverse, append i insert.

metoda append służy do dodania wartości na ostatnim miejscu w liście, sort służy do posortowania wartości alfabetycznie (jeżeli jest tam tekst) bądź rosnąco, reverse - metoda ta służy do odwracania kolejnosc elementów, insert - służy do wstawiania dowolnej liczby w odpowiedni indeks.

A oto przykład użycia listy i jej metod:

[code=Python] lista = [3, 4, 1, 2] >>> print(lista) [3, 4, 1, 2] >>> lista.append(6) >>> print(lista) [3, 4, 1, 2, 6] >>> lista.insert(1, 5) >>> print (lista) [3, 5, 4, 1, 2, 6] >>> lista.sort() >>> print (lista) [1, 2, 3, 4, 5, 6] >>> lista.reverse() >>> print (lista) [6, 5, 4, 3, 2, 1][/code]

Jak widać w insert w nawias wpisane są dwie informacje oddzielone przecinkiem nazywane są te "miejsca" argumentami metody ( wszystko postaram się wytłumaczyć przy obiektowości ) pierwszy argument oznacza w które miejsce ma zostać wstawiona watość w drugim argumencie ALE UWAGA !!!!

PAMIĘTAJMY ZAWSZE ŻE W PYTHONIE TYPY TABLICOWE ZACZYNAMY LICZYĆ OD ZERA!!!!

zróbmy sobie malutkie ćwiczonko, tak aby się trochę oderwać :) Na początku przeczytaj i sam spróbuj, a potem sprawdź czy masz podobnie lub jak nie bedziesz wiedzieć jak to czytelniku zobacz jak ja to zrobiłem

zadanie 1.

UWAGA pamiętajcie że tekst jest oznaczony cudzysłowem, czyli "Marian" to jest ciąg znaków. I jeszcze jedna sprawa o której wcześniej specjalnie nie mówiłem. Dla znających programowanie. W Python aby wyświetlić liste lub inny typ tablicowy nie trzeba używać pętli wystarczy funkcja print().

A teraz zdadanie: Spróbuj stworzyć listę w której będą znajdowały się takie nazwiska jak: 1. Nowak 2.Cisowski 3.Kochanowska 4.Kopernik

Oraz wyświetl listę

zadanie 2

Do utworzonej listy dopisz na sam koniec. Joker-os. Oraz wyświetl.

zadanie 3

Posortuj listę , oraz wyświetl.

A oto rozwiązanie:

Zadanie 1.

[code=Python] lista = ["Nowak","Cisowski","Kochanowska","Kopernik"] >>> print(lista) ['Nowak', 'Cisowski', 'Kochanowska', 'Kopernik'] [/code]

zadanie 2.

[code=Python]>>> lista.append("Joker-os") >>> print(lista) ['Nowak', 'Cisowski', 'Kochanowska', 'Kopernik', 'Joker-os'] [/code]

Zadanie 3.

[code=Python]>>> lista.sort() >>> print(lista) ['Cisowski', 'Joker-os', 'Kochanowska', 'Kopernik', 'Nowak'][/code]

Na razie to możemy powiedzieć UFFF i brawa dla osób które wykonały ćwiczenie poprawnie.

A teraz sprawa naszego tekstu przypominam :

[code=Python]>>> text = "Ala ma kota" >>> print(text[4:6]) ma[/code]

Jak już wiemy co oznacza nasz indeks i co to jest tablica. Czas teraz na rozgryzienie po co ten dwukropek i co on robi? Sprawa tu jest najprostsza do zrozumienia. A więc podczas chęci odczytania odpowiedniego indeksu używamy liczb

czyli wyświetlenie znaku w indeksie 4 będzie wyglądało tak.

[code=Python]text = "Ala ma kota" >>> print(text[4]) m[/code]

A znak dwukropka oznacza że od jakiego indeksu do jakiego chcemy odczytać tak więc jeżeli chcemy odczytać wartość od 4 do 5 to wpisujemy indeks końcowy o jeden większy czyli

[code=Python]>>> text = "Ala ma kota" >>> print(text[4:6]) ma[/code]

i mamy odpowiedź na nasze wcześniejsze pytanie :) Jeżeli coś nie zrozumiałe zawsze jest szansa podpytać się za pomocą komentarza ale na razie to koniec tego wpisu w następnym zajmiemy się dalej typami tablicowymi oraz warunkami i pętlami ile damy rade :) Na razie dziękuje i do usłyszenia.

Wybrane dla Ciebie
Komentarze (6)