< Return to Video

Zabawa ze Stringami

  • 0:02 - 0:04
    Celem tego filmu jest oswojenie was trochę ze stringami
  • 0:05 - 0:07
    jak również pokazanie wam ich mocy, oraz rzeczy których można z nimi robić.
  • 0:08 - 0:10
    Albo robić za ich pomocą.
  • 0:11 - 0:12
    Więc teraz zamierzam napisać prosty program,
  • 0:12 - 0:15
    który zasadniczo zdefiniuje mi kilka stringów.
  • 0:17 - 0:18
    i potem użyję Python interpretera by trochę się z nimi pobawić
  • 0:18 - 0:19
    i zobaczyć co można z nimi robić.
  • 0:19 - 0:21
    Więc zdefiniujmy string, nazwijmy go "a"
  • 0:23 - 0:25
    i a to powiedzmy "mój pierwszy testowy string."
  • 0:33 - 0:36
    Jak wiemy, string to sekwencja znaków
  • 0:38 - 0:40
    i możesz je rozpoznać, bo mogą być zamknięte zarówno w apostrofach jak i w cudzysłowie( ' ' lub " " ).
  • 0:42 - 0:46
    I żeby udowodnić że wcale nie musi to być cudzysłów, pozwólcie mi zdefiniować b jako
  • 0:46 - 0:54
    'Kolejny testowy string, który zdefiniowałem'
  • 0:59 - 1:01
    w zasadzie możesz używać cudzysłowi wewnątrz cudzysłowi dopóki jasne jest
  • 1:01 - 1:04
    gdzie string się zaczyna i kończy.
  • 1:04 - 1:06
    Więc powiedzmy ze mamy coś takiego
  • 1:06 - 1:14
    "This is Sal's string"
  • 1:18 - 1:20
    Więc w tym przypadku, apostrof jest ok
  • 1:20 - 1:23
    ponieważ interpreter "pomyśli":
  • 1:26 - 1:27
    "O, string zaczyna się od cudzysłowia (")więc muszę szukać kolejnego cudzysłowa(")
  • 1:29 - 1:30
    żeby go zamknąć" Więc nie powie. "O, kończy się na apostrofie('),"
  • 1:32 - 1:34
    zamiast tego powie "Potrzebuję cudzysłowia("). " By wiedział, że to z czym ma do czynienia to string.
  • 1:34 - 1:37
    wie również, że ten apostrof to tylko znak.
  • 1:37 - 1:40
    Jedna rzecz której nie mogę zrobić:
  • 1:40 - 1:42
    Spróbujmy zdefiniować string "d".
  • 1:42 - 1:45
    Więc powiedzmy, zdefiniuję go tak.
  • 1:45 - 1:46
    Więc nie mogę zrobić tak:
  • 1:46 - 1:50
    'This is Sal's string'
  • 1:50 - 1:52
    To nie ma żadnego sensu,
  • 1:52 - 1:55
    Ze względu na to że tutaj, otwieramy string apostrofem
  • 1:57 - 1:59
    zamknie się on dokładnie wtedy, gdy natrafi na kolejny apostrof.
  • 1:59 - 2:00
    i wszystko to [s string] będzie tylko tekstem
  • 2:02 - 2:04
    który interpreter weźmie za jakąś część programu,
  • 2:04 - 2:05
    i zawiesi się na nim.
  • 2:06 - 2:07
    Więc jeżeli chcecie żeby to działało, nie możecie tego tak zostawić.
  • 2:07 - 2:14
    Możecie zrobić coś takiego:
  • 2:16 - 2:18
    'Sal's-- nie, tak nie możecie
  • 2:21 - 2:25
    ............'My favourite word is....'(moje ulubione słowo to...)
  • 2:27 - 2:29
    I w zasadzie nie wiem jakie jest moje ulubione słowo, trochę się wkopałem.
  • 2:29 - 2:34
    Ale powiedzmy ze moim ulubionym słowem jest asparagus (szparag)
  • 2:36 - 2:38
    Asparagus. Nie wiem nawet jak to zapisać As,asparagus.
  • 2:38 - 2:44
    Więc 'My favourite word is "aspraraus", what is yours?'
    (Moje ulubione słowo to "szparag", Jakie jest twoje?)
  • 2:46 - 2:48
    i znowu to jest prawidłowe, ponieważ zacząłem string apostrofem i to myśli:
  • 2:50 - 2:52
    "Nie kończmy stringu dopóki nie dostaniemy kolejnego apostrofu."
  • 2:55 - 2:57
    Więc to nie jest tak że interpreter zgubi się gdy zobaczy pierwszy cudzysłów
  • 2:58 - 3:00
    ponieważ wie, że string został zaczęty od apostrofu.
  • 3:02 - 3:04
    Pozwólcie, że pokażę inne przykłady stringów,
    które będą ciekawym wyzwaniem.
  • 3:06 - 3:10
    nie zawsze muszą być nazwane szablonowo, więc nazwijmy go "math_string" (string matematyczny).
  • 3:10 - 3:19
    I tu wpiszemy, powiedzmy " 3+4*2"
  • 3:21 - 3:22
    Więc to jest "math_string", zwykły ciąg znaków.
  • 3:25 - 3:28
    Interpreter nie będzie brał pod uwagę ich wartości, pokaże natomiast tylko ciag znaków.
  • 3:31 - 3:34
    Myślę, że to całkiem dobry-- pozwólcie że zrobię kolejny pseudo-matematyczny string
  • 3:35 - 3:37
    albo zróbmy jakieś wyrażenie, niech nazywa się "expression string"
  • 3:39 - 3:44
    to jest tylko nazwa zmiennej, i powiedzmy że mój "expression string" ma wartość
  • 3:52 - 4:01
    "a+' 'b+'tiger' "
    ("a+''b+'tygrys'" )
  • 4:04 - 4:06
    Wszystko co pomiędzy podwójnymi apostrofami
  • 4:08 - 4:10
    interpreter pokaże jako ciąg znaków.
  • 4:12 - 4:14
    Jest kilka interesujących rzeczy które możemy teraz w końcu zrobić zrobić.
  • 4:16 - 4:20
    Starczy definiowania stringów, wiec zapiszmy plik i odpalmy go.
  • 4:21 - 4:23
    Mamy tutaj zdefiniowane stringi
  • 4:24 - 4:26
    i możemy je zweryfikować, wpisując na przykład "a", "My first test string"
  • 4:26 - 4:28
    "b", 'Another test string that i have defined,'
  • 4:28 - 4:31
    "c","This is Sal's string"
  • 4:31 - 4:33
    "d", 'My favourite word is...
  • 4:33 - 4:34
    aspara-...
  • 4:34 - 4:34
    asparaus'
    (odkrył literówkę)
  • 4:36 - 4:37
    Nawet nie umiem poprawnie zapisac "asparagus", będzie trzeba to poprawić.
  • 4:37 - 4:39
    'asparaus, what is yours?'
  • 4:39 - 4:41
    Potrzeba "g" asparaGus! (szparag)
  • 4:41 - 4:43
    'What is yours?'
  • 4:44 - 4:46
    I dalej mamy ...
  • 4:46 - 4:48
    Możemy sprawdzić jak wygląda "math_string"
  • 4:48 - 4:50
    math_string jest dosłownie ciągiem znaków.
  • 4:50 - 4:52
    Następnie mamy "expression_string"
  • 4:52 - 4:57
    "expression_string" też jest dosłownie ciągiem znaków.
  • 5:00 - 5:01
    Teraz zacznijmy zabawę z tymi stringami i sprawdzmy co można z nimi zrobić.
  • 5:03 - 5:04
    Jest parę rzeczy o które możemy spytać, na przykład "Jak długi jest ten string? "
  • 5:08 - 5:10
    I możemy uzyc wbudowanej funkcji Pythona len(), [skrót od lenght] (lenght-długość)
  • 5:10 - 5:14
    Więc len() od a [len(a)],
  • 5:14 - 5:17
    mówi nam - W a jest 20 znaków!
  • 5:17 - 5:18
    Sprawdźmy to, policzmy je.
  • 5:18 - 5:20
    1,2,spacja jest znakiem!
  • 5:20 - 5:29
    {liczy do dwudziestu}
  • 5:29 - 5:30
    Tak, dwadzieścia znaków!
  • 5:30 - 5:35
    Jaka jest len(math_string)?
  • 5:35 - 5:37
    len- length w skrócie.
  • 5:38 - 5:39
    "math_string" składa się z pięciu znaków, policzmy je.
  • 5:42 - 5:44
    1,2,3,4,5 znaków. To ma sens.
  • 5:44 - 5:46
    Możemy zrobić to dla każdego z nich i zachęcam was do zrobienia tego samemu.
  • 5:46 - 5:48
    Naprawdę, eksperymentujcie, oswajajcie się z tym.
  • 5:50 - 5:52
    Kolejną rzeczą, jaką chciałbym wam pokazać jest to jak zespolić dwa stringi.
  • 5:53 - 5:55
    Brzmi wymyślnie, ale tak naprawdę znaczy tyle co połączyć dwa stringi.
  • 5:58 - 6:01
    Więc dla przykładu stwórzmy nowy string, nazwiemy go,
  • 6:01 - 6:08
    "awithb", i zdefiniujmy go jako a+b
  • 6:41 - 6:43
    'Another test string that I have defined,'
  • 6:59 - 7:01
    a jest przyłączone do końca b.
  • 7:01 - 7:03
    Możesz robić ze stringami bardzo ciekawe rzeczy:
  • 7:03 - 7:07
    jeżeli zrobiliśmy... masthstring+expressionstring
  • 7:09 - 7:10
    nie będę tworzył dla tego zmiennej, zobaczę tylko co się stanie jak spróbuję znaleźć wartość...
  • 7:10 - 7:16
    mathstring+expressionstring
  • 7:16 - 7:20
    teraz, zasadniczo mam te dwa stringi dodane do siebie
  • 7:20 - 7:23
    i ten string znalazł się na końcu tego,
  • 7:24 - 7:25
    widzicie to tutaj, efekt wygląda trochę dziwacznie
  • 7:27 - 7:29
    ale to string! Wszystko pomiędzy tymi znakami, wszystko pomiędzy podwójnymi uszami
  • 7:31 - 7:33
    jest pokazywane jako znaki. To są tylko znaki.
  • 7:33 - 7:35
    Jest ...
  • 7:36 - 7:39
    innych rzeczy które możemy robić ze stringami, nie zamierzam wam ich wszystkich przedstawiać.
  • 7:39 - 7:41
    Ale jeśli mowa o stringach to to mamy do nich cały arsenał funkcji
  • 7:43 - 7:44
    i jeżeli pracujesz w zintegrowanym środowisku programistycznym (IDE), często podpowie ci ono,
  • 7:44 - 7:45
    jakie funkcje możesz wykorzystać.
  • 7:45 - 7:46
    Na przykład,
  • 7:48 - 7:51
    możesz chcieć rozdzielić -split(), gdybyś chciał liste wszystkich słów w tym stringu.
  • 7:53 - 7:56
    Więc napisze program, w którym wezmę string który mam w "b"
  • 7:58 - 7:59
    i pokaże każde ze słów jako oddzielny element listy.
  • 8:02 - 8:05
    Więc, mogę teraz wpisać b kropka (b.) i wywołać jedną z metod dla b
  • 8:06 - 8:09
    będziemy przerabiali dużo więcej metod i elementów programowania obiektowego (OOP),
  • 8:12 - 8:14
    ale możemy pojmować b jako obiekt tekstowy, i ma on wtedy swoje własne metody i można wykonywać na nim operacje.
  • 8:14 - 8:15
    Jak na dziś możemy tylko powiedzieć,
  • 8:20 - 8:22
    "O jeżeli chce podzielić b na kawałki, mogę użyć metody split()."
  • 8:30 - 8:32
    Więc gdy mówię podzielić, mam na myśli odseparować od siebie części danego string'a.
  • 8:36 - 8:37
    zrobić z niego listę przecinając go gdziekolwiek widzimy spację.
  • 8:37 - 8:40
    Więc, zobaczmy co otrzmamy gdy to wykonamy.
  • 8:41 - 8:43
    Zauważ : wziąłem ten string, "Another test string that i have defined"
  • 8:45 - 8:48
    podzielił string na każdej spacji
  • 8:48 - 8:50
    i pokazał jego części w formie listy.
  • 8:51 - 8:53
    Może to być przydatne gdy będziecie przetwarzali stringi.
  • 8:54 - 8:59
    Ale musicie wiedzieć, że znakiem który przedziela ciąg nie musi być spacja,
  • 9:02 - 9:05
    możesz powiedzieć "b.split() i powiedzmy przedziel, gdziekolwiek będzie 't' "
  • 9:07 - 9:09
    możesz dzielić na "t" i to da jakieś dziwnie wyglądające efekty...
  • 9:11 - 9:13
    Zauważ: za kazdym razem gdy pojawiała się w tekście litera 't', program rozdzielał go,
  • 9:15 - 9:19
    i to co było po obu stronach ' t' zostało umieszczone jako oddzielne elementy na liście.
  • 9:22 - 9:25
    Bardzo interesującą rzeczą jest to, że możesz wyszukiwać gdzie dany znak jest wewnątrz ciągu.
  • 9:33 - 9:35
    Więc przykładowo przywołajmy math_string, i
  • 9:37 - 9:39
    chce znaleźć gwiazdkę. (kolejne słowo z wymówieniem którego mam problem.)
  • 9:42 - 9:45
    Więc find() -funkcja oznaczająca "znajdź" - gwiazdkę. Powiedz mi który znak jest gwiazdką (o ile którykolwiek nią jest).
  • 9:45 - 9:47
    Mówi on nam, że trzeci znak jest gwiazdką.
  • 9:47 - 9:49
    Sprawdźmy to.
  • 9:53 - 9:55
    Więc to jest zerowy znak- początek - tak jest przyjęte w większości
  • 9:56 - 9:58
    programów. Zerowy znak, pierwszy znak, drugi znak, trzeci znak...
  • 9:58 - 10:00
    ...to gwiazdka.
  • 10:02 - 10:05
    Jeżeli chciałbyś znaleźć '3' i gorąco zachęcam do takiego eksperymentowania,
  • 10:07 - 10:09
    find() 3 ! To tutaj zerowy znak.
  • 10:11 - 10:13
    Teraz, są jeszcze inne funkcje. Możesz zamienić znaki za pomocą replace() . Możesz powiedzieć,
  • 10:22 - 10:25
    "O, weźmy zamieńmy wszystkie 'c' ," i możesz sprawdzić w książkach,
  • 10:26 - 10:29
    albo po prostu poszukać w sieci i normalnie znaleźć wszystkie biblioteki dotyczące Python'owskich stringów.
  • 10:31 - 10:34
    Jeżeli masz I.D.E. , zasugeruje ci ono co możesz zrobić ze stringami
    *I.D.E. - zintegrowane środowisko programistyczne
  • 10:34 - 10:35
    i jak to zrobić.
  • 10:38 - 10:43
    Ale powiedzmy że w miejsce każdego 'i' w stringu c,chcemy wstawić 'o'.
  • 10:43 - 10:45
    Zobaczmy co otrzymamy.
  • 10:45 - 10:50
    Jak widzicie, to był "This is Sal's string",
  • 10:52 - 10:53
    i zastąpiliśmy każde ''i' , za pomocą 'o'. Chce żeby to było jasne; nie zmieniliśmy stringu c!
  • 10:53 - 10:57
    Program stworzył kopię c, z 'i' zastąpionymi, 'o'.
  • 10:57 - 11:00
    Efektem jest "Thos os Sal's strong."
  • 11:00 - 11:04
    (brzmi jak jakiś nordycki język.)
  • 11:04 - 11:07
    I żeby było jasne, c się nie zmieniło.
  • 11:07 - 11:17
    Ale gdybym powiedział c = c.replace('i','o')
  • 11:17 - 11:22
    to c by sie zmieniło na "Thos os Sal's strong"
  • 11:24 - 11:26
    Teraz ostatnią już rzeczą którą chciałbym wam pokazać jest bardzo magiczna funkcja (przynajmniej z mojego punktu widzenia).
  • 11:27 - 11:28
    I jest to funkcja eval() .
  • 11:32 - 11:34
    I istnieje ona w językach interpretowanych takich jak Python (występuje również w JavaScripcie)
  • Not Synced
    Mógłbym wywołać metodę split(), i tu pojawia się pytanie na czym chciałbym je podzielić.
  • Not Synced
    dużo, dużo, dużo, dużo
Title:
Zabawa ze Stringami
Description:

Experimenting and seeing what we can do with strings

more » « less
Video Language:
English
Duration:
13:58
jasiekspirifer edited Polish subtitles for Fun with Strings
jasiekspirifer edited Polish subtitles for Fun with Strings
jasiekspirifer edited Polish subtitles for Fun with Strings
jasiekspirifer edited Polish subtitles for Fun with Strings
jasiekspirifer edited Polish subtitles for Fun with Strings
jasiekspirifer edited Polish subtitles for Fun with Strings
jasiekspirifer edited Polish subtitles for Fun with Strings
jasiekspirifer edited Polish subtitles for Fun with Strings
Show all

Polish subtitles

Incomplete

Revisions Compare revisions