"Par" pitanja o Python-u

1

"Par" pitanja o Python-u

offline
  • Cigarette Smoking Man
  • 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.

Ziveli



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • 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



offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Sto ucis na tu CodeAc... ?

Probaj jednostavnije i bolje a imas sve. A sto se odgovora tice @Vasa ti je vec odgovorio
https://docs.python.org/3/tutorial/index.html

offline
  • Cigarette Smoking Man
  • Pridružio: 14 Feb 2005
  • Poruke: 9113
  • Gde živiš: Beograd

Hvala puno Vaske. Ziveli Skontao tupander. Very Happy

@Ivke

Na Codeacademy učim zato što je interaktivan. Imaš objašnjenje, zadatak, editor u sredini i konzolu sa rezultatom. Odmah čitaš, kucaš i vidiš rezultat. On mi je, recimo, puno pomogao sa HTML/CSS.
Samo zbog toga jer mi je malo suvoparno da radim samo sa knjigama, tj. sam. Učio sam nešto malo pdavno na faksu ali kao i da nisam. Krećem od početka i nije mi baš lako da se snađem samo sa papirima. Smile
Naravno, čitam i tu pa uporedo.
Hvala puno na linku, znači mi kada zapne a probaću i samostalno uz njega.

Ziveli

offline
  • C# and PHP Developer
  • 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 ?

offline
  • Cigarette Smoking Man
  • 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. Smile

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. Smile

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. Wink

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. Ziveli

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • 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. Smile

offline
  • Programer
  • 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š Smile

offline
  • Cigarette Smoking Man
  • Pridružio: 14 Feb 2005
  • Poruke: 9113
  • Gde živiš: Beograd

Vaso doktore. Ziveli
Imaš vel`ku pivu na sledećem okupljanju.. Smile

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. Smile 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. Smile

@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.. Smile

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • 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. Very Happy

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 Very Happy) 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].

Ko je trenutno na forumu
 

Ukupno su 1380 korisnika na forumu :: 31 registrovanih, 6 sakrivenih i 1343 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Ageofloneliness, bestguarder, Bokiboks, Brana01, CikaKURE, doom83, Dukelander, Excalibur13, FileFinder, kolle.the.kid, ljuba, Lošmi, Lutvo_Redzepagic, Marko Marković, marsovac 2, Mcdado, Metanoja, Mixelotti, MrNo, nikoli_ca, Srle993, Stanlio, Trpe Grozni, uruk, vathra, Vlad000, voja64, yrraf, zbazin, zlaya011