Python kurz v Slovenčine | Lekcia 7 | Polia
Vložit
- čas přidán 28. 05. 2024
- Ďalšie materiály nájdeš na: github.com/misohu/kurz_python...
V prípade ak chcete finančne podporiť kanál tak viete tak spraviť na mojom Patreone: / informatikasmisom
Jedinečný kurz python v Slovenčine pre absolútnych začiatočníkov. Mišo je skúsený online učiteľ a zároveň bývalý doktorand fakulty informatiky a informačných technológii na STU (FIIT).
Prosím odberajte kanál, aby ste zostali informovaní o novikách Informatiky s Mišom. Taktiež kurz zdieľajte svojím priateľom a učiteľom informatiky. Chceme naučiť programovať absolútne každého. Ďakujeme!! Nové lekcie 2 krát za týždeň.
👨👩👧👦 Discord: / discord
💵 Patreon: / informatikasmisom
🎥 CZcams: / informatikasmišom
📸 Instagram: / informatikasmisom
👍 Facebook: / informatikasmisom
💻 Github: github.com/misohu
🤵 Linkedin: / michal-hucko
🏫 Skillshare: www.skillshare.com/r/profile/...
Anglickú verziu kurzu viete nájsť ZADARMO na: skl.sh/30wXxmO
#python #pythonkurz
Časová os:
00:00 Úvod
00:46 Čo je to pole, alebo list?
03:02 Definovanie poľa a indexovanie (technická časť)
09:04 Operácie nad poľami (technická časť)
21:03 Zhrnutie a záver
Menšia zmena na instagrame ma nájdete pod @informatikasmisom, budem rád keď dáte follow.
Miško vysvetľuje perfekt , dopodrobna . Učil som sa podľa neho aj C++ . Všetko má perfekt pripravená . Len nech mu to vydrží . Inak , Michal , štastné a veselé vianoce a všetko dobré do nového roku
Akosi mi to pripomína prácu v exceli :D Super vysvetlené dopodrobna. Ďakujem.
V niektorych pripadoch je to velmi podobne :) ale python umoznuje ovela viac :) Dakujem
Michal super tutorial !
Ahoj Míšo. Díky za super kurz a skvělá videa. Upřímně jsou zatím to nejlepší co pro mou rodnou řeč je dostupné.
Narazil jsem ale na jednu "podivnost" ve cvičení v souboru. Je to tento kod, který uvádíš # Funkcia remove vymaze prvok na indexe v zatvorke
numbers=[0,1,2,3,4,5,0]
numbers.remove(0)
print(numbers)
Zjistil jsem ale že takto nefunguje, protože popisuješ že vymaže prvek na idexu v závorce, ale ve skutečnosti to vymaže prvek 0. Pakliže by tam nula nebyla, tak to hlásí chybu. trošku jsem hledal na internetu a našel jsem, že na mazání pomocí indexu v listu je funkce .pop tedy numbers.pop(0)
Pokud je to špatně a nepochopil jsem to, tak mě oprav.
Pak jsem ještě objevil jednu zajímavost a to že když vložím do listu jiný list pomocí proměnné, tak změný v původním vloženém se projevují i v cílovém. Tedy jako příklad vložím do numbers = [0, 1, 2, 3, 4, 5] další list pomocí přiřazené proměnné name = ['a', 'b', 'c'] takto numbers.append(name) tak se přiřadí name na konec. Pokud provedu změnu v name.append[d] tak se změna projeví i v numbers.
nyní ale nastává zajímavá věc. Pokud provedu změnu v name tímto způsobem: name = name + ['e'] tak v name je zapsána ale v numbers už se neobjeví přidané e. Proč tomu tak je? Předpokládám, že to možná souvisí s nějakou dědičností, která se vytratí? Tedy původní name přestane existovat a existuje nová name. Pak ale nerozumím, že zůstane původní name vložena v numbers (když neexistuje). Snad jsem to napsal srozumitelně.
>>> numbers = [1,2,3,4,5]
>>> name = ['a','b','c']
>>> name
['a', 'b', 'c']
>>> numbers
[1, 2, 3, 4, 5]
>>> numbers.append(name)
>>> numbers
[1, 2, 3, 4, 5, ['a', 'b', 'c']]
>>> name.append('d')
>>> name
['a', 'b', 'c', 'd']
>>> numbers
[1, 2, 3, 4, 5, ['a', 'b', 'c', 'd']]
>>> name = name + ['e']
>>> name
['a', 'b', 'c', 'd', 'e']
>>> numbers
[1, 2, 3, 4, 5, ['a', 'b', 'c', 'd']]
Ahoj, k tomu remove ... mas pravdu funguje to tak ako si napisal ... pomylil som sa ospravedlnujem sa za zmatok :). ono ja tu remove funkciu moc nepouzivam preto som to mal v hlave zle ulozene :)
A teraz k tomu co hovoris toto sa deje preto lebo premenne v sebe nesu ukazovatel do pamati a python preto aby setril pamat niekedy len presunie ukazovatel do pamati a niekedy vytvori uplne nove miesto v pamati s novymi hodnotami. V tvojom uplne super priklade priklade to skusim vysvetlit velmi jednoducho.
>>> numbers = [1,2,3,4,5]
>>> name = ['a','b','c']
teraz bude numbers ukazovat (po anglicky sa to vola reference) do pamati kde bude [1,2,3,4,5]
a name bude ukazovat do pamati ['a','b','c'].
>>> numbers.append(name)
Po tomto riadku sa na zaver listu numbers len prida ukazovatel na miesto kde ukazuje numbers. Tymto python setri pamat lebo znovupouzije uz raz zapisane pole (toto moze byt velmi uzitocne pri obrovskom poli). Preto sa zmeni aj povodne numbers
>>>name = name + ['e']
V tomto pripade ty zakazes pythonu menit tu referenciu do pamate ale priamo ho donutis vytvorit nove miesto v pamati ..... on na pozadi necha tu staru referenciu ktoru pouzival numbers a vytvori cisto novu na ktoru bude ukazovat to name.
Toto je velmi silny a zaroven zlozitejsi koncept v pythone preto som to nechcel davat do uvodnej lekcie pythonu. Dufam ze som ti tym aspon trosku pomohol.
Inac mas k tomu uceniu pythonu idealny pristup, z takehoto experimentovania sa naucis vela. Kludne sa pridaj na nas discord kde ti vedia kedykolvek pomoct aj ostatny studenti discord.gg/5CsEb3mP
@ Díky Míšo za vyčerpávající odpověď. Přidám si Discord. Jinak jsem opravdu nadšený z tvé výuky, klidně bys mohl dělat lektora:-) Tak pozvánka je neplatná nebo vypršela:-( Dřív jsem se nedostal... Už jsem tam, tak vyřešeno :-)
@ Ked podla mna taketo videa viac pomozu ako ked by som robil lektora pre jedneho dvoch ludi :)
to je zaujímavé, ja som spravil presne toto ako to tu popisuješ a mne to na konci vyhodilo [1, 2, 3, 4, 5, ['a', 'b', 'c', 'd', 'e']]
Ahoj. Ak by si niekedy robil druhú edíciu kurzu pythonu, prosím používaj radšej termín "zoznam", už len z toho dôvodu, že ak neskôr budeš používať balík numpy, tak sa vyhneš konfliktu s pomenovaniami (nehovoriac o tom, že organizácia dát v pamäti je trochu iná). Taktiež by som používal termín "metóda" na to, čo nejakým spôsobom pracuje s objektom (príklad: numbers.append(moje_cislo)), a termín "funkcia" na to, kde objekt vstupuje len ako parameter (príklad: len(numbers)). Všimol som si, že od ďalšej lekcie používaš VS code. Miesto príkazového riadku môžeš tiež v druhej edícií na začiatok používať Python shell (IDLE), ktorý je bežne súčasťou inštalácie Pythonu.
paradne video
Už to tam niekto napísal, že to viac pripomína údajovú štruktúru zoznam (nakoniec sa to tak aj v Pythone volá) ako polia (ak to porovnáme s "klasickými" programovacími jazykmi kde polia = arrays = indexované premenné). Pre zrozumiteľnosť by potom asi bolo lepšie hovoriť o zoznamoch než o listoch, ktoré sú aj na stromoch a na pošte, takže sa to môže mýliť...-;
😮
Zdravim,
zeptám se (nějak jsem se do toho zamotal)
number = [1, 2, 3, 4] => čísla(int) jsou prvky a [ ] je list (doufám že aspoň v tomhle mám jasno)
[[1, 2], 3, 4] => teď k té [1, 2]
je to vlastně jeden prvek v listu nebo list v listu?
ještě jedná ukázka
[1 ,[2] ,3 , [4]]
v jednom listu se nacházejí další dva listy?
Děkuji za odpověď :-)
Ano tretia ukazka ma 4 prvky: 2 cisla a dva listy.
Ahoj Michal, môžeš mi prosím povedať prečo cez príkazový radok daná funkcia funguje, ale cez editor nie?
number_list = [0,1,2,3,4,5,0,[1,2],[3,4,[5]]]
print(number_list[-1][-1][0] = "Ľubo")
Ahoj v kode co si mi poslal je chyba :) ... konkretne v tom printe mas = ak chces porovnat ci sa nejaky obsah pola rovna retazcu "Lubo" tak musis napisat == ... kod tak ako si mi ho poslal by nemal fungovat ani v prikazovom riadku ani v editore :) Ak si teda chcel obsah poľa porovnať s reťazcom "Ľubo" prosim skus zdvojiť rovnasa (==). Daj vedieť či som ti pomohol a či to funguje.
@
Chcel by som nahradiť v poli [5] stringom 'Lubo' (tak ako to robíš vo videu), kód mi teda ide v prikazovom riadku, ale ke´d ho zadám v editori : tak mi len vybehne chybné hlásenie
>>> number_list [-1][-1][0]= 'Lubo'
@@Erotakman rozumiem takže uistisa ze kod vyzera takto teda nedavaj to priradenie rovno do printu:
number_list = [0,1,2,3,4,5,0,[1,2],[3,4,[5]]]
number_list[-1][-1][0] = "Ľubo"
print(number_list)
pre istotu vypni a zapni vs code ... je mozne ze si omylom zapol interpreter v nom a preto ti to pise chybu. Daj vediet ci pomohlo.
@ veľmi pekne ďakujem, funguje to ;)
Kedykoľvek napis som tu pre teba :)
tie domáce úlohy su niekde ešte osobitne? alebo myslíš tie záverčné príkazy?
Neviem ci to len mne ale bojím sa že často krát zabúdam na veľa funkcií písem si ich do zošita ale problém je vtom že po 1 lekcii mám taký nával informácii že mi trvá aj 2 dni dokým to spracujem
Ahoj kludne daj tomu cas a vrat sa k tomu na dalsi den .... nevzdavaj to :)
kde najdem zip subor
Ahoj. Skúšam sa baviť s tým reverse a napadla ma jedna vec. Možno je to hlúposť ale mám [1, 2, 3, 4, 5, [6, 7]]. Je možné nejak otočiť len tú [6, 7]?
Napada me pouze to
- vyzobat
- prevratit
- vratit zpet:
>>> arr=[1, 2, 3, 4, [11, 12,[111,112], 13, 14]]
>>> arr_inner=arr[4][2]
>>> arr_inner.reverse()
>>> arr[4][2]=arr_inner
>>> arr
[1, 2, 3, 4, [11, 12, [112, 111], 13, 14]]
ale asi existuje neco elegantnejsiho.
pri letters.remove('c') odmazalo iba prve 'c', druhe ostalo
JJ je tam chyba ospravedlnujem sa :)
Takže ta fcia maže len na prvej pozícií?ďakujem
Už som odpoveď našla.
Ahoj Miso. Ako to urobit : >>> number = [1, 2, 3]
>>> number + [4, 5]
[1, 2, 3, 4, 5]
>>> number [-1]
3
>>> print(number + [4, 5])
[1, 2, 3, 4, 5]
>>> number [-1]
3
ako vypisat c. 5
(number + [4,5]) [-1] 🙂
prečo po pridaní 6,7, v ďalšom riadku s výpisom numbers tam je len 1-5?
už vidím, je to tam neskor
Nevieš ako sa jednoducho píšu jednoduché úvodzovky lebo mne to s klasickými nešlo
Ahoj pouzivaj anglicku klavesnicu a shift plus tlacidlo na lavo od enteru :)
alebo ALT+039
len mala poznamka (na 90% zbytočna ale nie nepodstatna) - ked davas text do videi, skus pouzivat aj ciarky... clovek skorej pochopi :D
Dakujem ... snazim sa na tom zapracovat :) snad to bude uz len lepsie a lepsie
otázka k lekcii Reťazové operácie : čo znamená ! pri čísle? ,prečo je 9!=10 pravda
!= znamená "nerovná sa" je to opakom == a teda 9!=10 znamená 9 nerovná sa 10 a to je pravda :)
20:29 mam pocit ze odstranilo len prve c na ktore nadabilo
Jj je tam mensia chybicka :) ospravedlnujem sa :( skvely postreh
@ Ahoj, a teda vieme aj preco odstranilo iba to jedno C ked tam boli dva? aby sme v tom mali jasno. Dakujem
@@matusturzak3905 Ahoj funkcie remove maže len prvý výskyt elementu v zátvorke. Tak je tá funkcia navrhnutá a prišla s inštaláciou pythonu. Ak chceme vymazať všetky výskyty budeme musieť použiť cyklus, ktorý si vysvetlíme v neskorších lekciách :)
@ Dakujem krasne :)
V živote nepochopím prečo v jazyku "C" a odvodených od neho alebo podobných jazykoch, všetci tak vytrvalo používajú túto nezmyselnú indexáciu stringov. Neviem, čo k tomu viedlo Ritchieho, keď to tam zaviedol, ale taká komplikácia vzdialená od nášho prirodzeného chápania, je neprirodzená a prácu programátorom len komplikuje a vedie k častým a zbytočným chybám. Napr. jazyk 4gl to má krásne urobené podľa toho ako je naše prirodzené chápanie a programátor sa s tým nemusí nijako pasovať. 🤔
dobre video ale nelubi sa mi to ze je to strasne rychle
a nestiham
To pozastavuj. Já to tak dělám, když to jdu hned zkoušet ve VS.