Poslao: 23 Dec 2016 12:59
|
offline
- rapha
- Mod u pemziji
- Pridružio: 14 Feb 2005
- Poruke: 9113
- Gde živiš: Beograd
|
Počeo sam da učim Pajton ali sam zapeo u početku. Uporedo radim sa knjigama i na Codeacademy ali mi nije nešto jasno oko boolean operacija. Tačnije, možda sam glup, ali mislim da nije baš najbolje objašnjeno.
LM, radi se o True, False, not, and i or operacijama. Evo kako je to na Codeacademy objašnjeno:
Boolean operators aren't just evaluated from left to right. Just like with arithmetic operators, there's an order of operations for boolean operators:
not is evaluated first;
and is evaluated next;
or is evaluated last.
For example, True or not False and False returns True. If this isn't clear, look at the Hint.
Parentheses () ensure your expressions are evaluated in the order you want. Anything in parentheses is evaluated as its own unit.
Evo zadatka:
Assign True or False as appropriate for bool_one through bool_five.
Set bool_one equal to the result of False or not True and True
Set bool_two equal to the result of False and not True or True
Set bool_three equal to the result of True and not (False or False)
Set bool_four equal to the result of not not True or False and not True
Set bool_five equal to the result of False or not (True and True)
Evo i rešenja zadatka:
bool_one = False
bool_two = True
bool_three = True
bool_four = True
bool_five = False
Ništa tu meni nije jasno. Odnosno, nije mi jasno u kakvom su odnosu uopšte ove operacije, kako se gleda ishod.
Gledao sam na par mesta ali nigde nije baš lepo objašnjeno.
Za razliku recimo od HTML/CSS koji je na Codeacademy jako lepo pokriven i objašnjen, sa Pajtonom nije slučaj. Prilično je konfuzno i nabacano. Tako da, ako neko ima neki dobar i proveren link za učenje online sa primerima i vežbama, bio bih veoma zahvalan.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 23 Dec 2016 13:12
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Vidi, samo je poenta da pokapiraš prioritete. Kao što piše u priloženom objašnjenju, not ima najviši prioritet i odmah 'vezuje' ono što je desno od njega. Nako njega sledi and koji odmah 'vezuje' ono što je levo i desno od njega, i na kraju je or. Gledaj da to u glavi odmah smestiš između zagrada. Evo kako bi bilo na tvom primeru:
bool_one =
= False or not True and True
= False or (not True) and True
= False or ((not True) and True)
= (False or ((not True) and True))
---------------------------------
= (False or (False and True))
= (False or False)
= False
|
|
|
|
|
|
Poslao: 23 Dec 2016 18:53
|
offline
- Pridružio: 16 Feb 2011
- Poruke: 1630
- Gde živiš: Pancevo
|
Cek da te pitam jeste off a sto bas taj jezik si odabrao ali onako iskreno ?
|
|
|
|
Poslao: 23 Jan 2017 17:04
|
offline
- rapha
- Mod u pemziji
- Pridružio: 14 Feb 2005
- Poruke: 9113
- Gde živiš: Beograd
|
Napisano: 23 Jan 2017 16:57
Ne znam kako se desilo da sam tek sada video da si me pitao nešto, jošu temi koju sam ja otvorio. Izvini.
Odavno imam želju da se bavim programiranjem. Osim toga, pominjao sam put u inostranstvo gde bi mi programiranje, jednog dana, definitivno pomoglo.. Delimično sam iz te struke, bavio sam se nekada davno administracijom ali baš nikada programiranjem bilo koje vrste. Sa tim baš veze nemam.
Zašto baš Python? Čitajući po netu, raznu literaturu, a i iz razgovora sa nekim poznanicima koji se razumeju u materiju, došao sam do saznanja da je Python najjednostavniji jezik za apsolutne početnike, za one koji tek ulaze u tu priču i veze sa tim nemaju.
Da li je to tačno ili nije - ne znam. Verovatno je da ima mnogo moćnijih jezika, svaki za nešto svoje. C, PHP, Java.. Ali znam nekoliko njih koji su odmah krenuli sa nekim od pomenuta tri pa su odustajali jer nije baš lako..
Što, šta ti misliš? Da li sam pogrešio?
Dopuna: 23 Jan 2017 17:04
Preimenovao sam ovu temu, pošto ću imati verovatno gomilu pitanja, za razne stvari, pa da ne spamujem forum sa odvojenim temama. Ako modovi programiranja misle da je bolje, ipak, da svako pitanje ide u odvojenu temu - lako ćemo da razdvojimo.
Nije mi baš sasvim jasan deo o kombinovanju range i len.
Konkretno na ovom primeru:
a = ["Mary", "had", "a", "little", "lamb"]
for i in range(len(a)):
print i, a[i]
Dobija se ispis:
0 Mary
1 had
2 a
3 little
4 lamb
Nije mi jasan poslednji deo koda, a[i]. Otkud i šta označava to a[i]? Otkud uglasta vrtsta zagrada? Ako može malo pojašnjenje molim vas.
|
|
|
|
Poslao: 23 Jan 2017 18:22
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Promenljiva a predstavlja polje, odnosno niz podataka (engl. array). Kako niz može da ima proizvoljan broj elemenata, potreban je mehanizam za pristup svakom pojedinačnom elementu, a to se radi preko njegovog indeksa u datom nizu. Praktično, indeks je redni broj elementa u nizu. Tako a[i] predstavlja element niza a koji se nalazi na i-toj poziciji. Dakle, uglaste zagrade se koriste za pristup određenom elementu niza, i to je tako u velikom broju programskih jezika.
Takođe, bitno je pomenuti da je indeksiranje elemenata niza u nekim jezicima tzv. zero-based, dok je u nekim drugim jezicima one-based. Dakle, kod nekih je indeks prvog elementa niza 0, a kod nekih 1. Siguran sam da kapiraš u koju grupu jezika spada Python.
|
|
|
|
Poslao: 23 Jan 2017 21:11
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
rapha ::Što, šta ti misliš? Da li sam pogrešio?
Ma kakvi. Lično ne volim Python zbog tabova i sa tim sam imao muke na prošlom hakatonu jer smo proveli pola sata proveravajući gde smo zaboravili da pravilno ugnjezdimo kod. Navikao sam na vitičaste zagrade i blokove (begin i end kod Ruby-a) i ta odluka da se tabovi koriste za ugnježdavanje mi je totalno besmislena, ali je početnicima verovatno baš zbog toga i intuitivniji jezik.
Nema tu greške ako biraš jezik opšte namene koji je u isto vreme popularan, imaš dosta dokumentacije, a jezik je dosta prihvaćen i u akademskim krugovima u svetu i mnoge popularne biblioteke su dostupne pa ne trebaš time da se opterećuješ
|
|
|
|
Poslao: 24 Jan 2017 15:47
|
offline
- rapha
- Mod u pemziji
- Pridružio: 14 Feb 2005
- Poruke: 9113
- Gde živiš: Beograd
|
Vaso doktore.
Imaš vel`ku pivu na sledećem okupljanju..
Ja sam učio indeksiranje po primerima, recimo:
word = "rapha"
word[3] -> "h"
Nisam povezao odmah..
E sad, ako se ne precizira tačna pozicija elementa niza, već se stavi u zagradu samo oznaka svih elemenata niza (u ovom slučaju i), to onda znači da ispisuje se elemente redom? Samo u ovom konkretnom slučaju sa redim brojem ispred?
Jel sam dobro shvatio?
@elite
Pa trudim se. Mislim, nemam ni previše vremena. Dva do tri sata dnevno, uglavnom uveče kada uspavam ženu i decu. To je obično kasnije uveče a obzirom da radim po ceo dan pa nemam previše koncentracije, umorim se.
Uglavnom, ide mi lepo za sada, zadovoljan sam. Imam i veliku željui. Biće to ok. Kada dobro ili bar solidno naučim Python, imam želju da se upoznam i sa još nekim. Ima vremena do tada.
@ivke
Još jednom da ti se zahvalim na onom linku, za Python tutorial. Stvarno je odlična literatura.
Batalio sam CA za sada. Možda ću preći jednom kada završim sa ovim tutorijalom čisto zato što ima nekih primera pa možda još nešto naučim.
Inače, generalni info i moje lično mišljenje, možda nekome koristi, je da je Python kurs na CA veoma loš. Možda nije za nekoga ko ima veze sa programiranjem ali za potpune početnike jeste. Dosta toga je preskočeno ili vrlo površno i nedovoljno objašnjeno.. Daju najbanalnije primere a kasnije ti daju zadatak koji je praktično nemoguće rešiti bez greške osim ako ne znaš šta radiš. Svede se na to da isisaš mozak dva sata razmišljajući kako da rešiš nešto, a pošto ne znaš skoro ništa i nemaš iskustva, jurcaš po netu rešenja koja onda povezuješ, tj. razmišljaš kako se do njih došlo..
|
|
|
|
Poslao: 24 Jan 2017 16:09
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
rapha ::E sad, ako se ne precizira tačna pozicija elementa niza, već se stavi u zagradu samo oznaka svih elemenata niza (u ovom slučaju i), to onda znači da ispisuje se elemente redom? Samo u ovom konkretnom slučaju sa redim brojem ispred?
Jel sam dobro shvatio?Uh, ne, ne, ne.
i nije oznaka svih elemenata niza. To je samo indeksna promenljiva koja se koristi za indeksiranje niza. Npr. kada promenljiva vrednost i ima vrednost 0 - a[i] je prvi element niza, a kada i ima vrednost 5 - a[i] je šesti element niza.
E sada, zašto si dobio ispis kakav si dobio? Zbog toga što je u pitanju petlja - i to for petlja koja iterira kroz sve elemente niza. Ili još preciznije - iterira kroz sve indekse elemenata niza a, a na osnovu indeksa se pristupa konkretnim elementima. Začkoljica je upravo u ovom: range(len(a)) Ova konstrukcija (ne znam ni P od Python-a, pa ne znam ni kako ovo zovu tamo ) vraća opseg (dakle range) indeksa od 0 do len(a) - 1 (len od length).
Da probam i da malo bukvalnije prevedem taj zapis petlje:
Citat:Za svaki indeks i iz opsega od 0 do dužine_niza_a - 1 izvrši telo petlje koje kaže:
-> Štampaj indeks i, kao i element niza a[i].
|
|
|
|