Python programiranje kao hobi

poruka: 170
|
čitano: 57.309
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
8 godina
neaktivan
offline
Python programiranje kao hobi
Pozdrav svima, ovo je jedini domaći forum na kome tema programiranja i dalje živi pa sam odlučio da se registrujem.

Živim u BIH, od nedavno sam počeo učiti Python - iz hobija. (kad god ugrabim vrijeme) Programiranje me oduvjek privlačilo, prije 6-7 godina sam naučio osnove php-a, kako bih sebi mogao praviti namjenske module za Open Reality skriptu - to je sve bilo na nekom jednostavnom nivou. Od tada nisam imao kontakta sa programiranjem, do prije mjesec/dva, kada sam odlučio započeti sa Python-om.

Ja nemam namjeru da učim kako bih zaradio od programiranja - živim od 3D modelovanje/rendera i zaradjujem za naše uslove bas solidnu lovu - Python vjezbam isključivo jer ga volim. Najveći problem mi predstavlja slobodno vrijeme za Python, zato sam sve ostalo stavio u stranu. Kupio sam GTA V, instalirao ga još u decembru i još uvijek ga nisam ni pokrenuo. Sad mi je žao što ga nisam kupio kao STEAM gift Code :)

Želim sebi praviti jednostavne programe, poput skripti koje bi povlačile podatke sa interneta i redovno me obavjestavale o promjenama - znam da takve stvari već postoje, ali ja želim svoje programe, prilagođene tacno onome što meni treba, pokušao sam napraviti nešto slično unutar google sheets, ali je on previše ograničen za neko ozbiljno baratanje podacima, takodje želim raditi sa Raspberry Pi koji planiram uskoro naruciti, kao i iskoristiti Python u 3ds max-u.

Python sam odabrao nakon istraživanja po netu, kao program koji je jednostavan za učenje, i koji je pokriven dokumentacijom na netu - za sve živo već postoji primjer! Pisanje u Python u je takodje jednostavno - u poređenju sa drugim jezicima.

Eto, javim vam se ponekad sa nekim pitanjem ili idejom :) - drago mi je da postoji ovakvo "domaće" mjesto.
 
7 0 hvala 0
16 godina
neaktivan
offline
Python programiranje kao hobi

Python je odlican jezik i napravio si najbolji moguci odabir, pogotovo za namjene koje si napisao.

Preporucam ti knjigu Learn Python the Hard Way, Zeda Shawa, autor nudi i besplatnu HTML verziju. Takoder, baci pogled i na Courseru i predavanja vezana uz Python. Ima cak i predavanje Python za RasberryPi sto si spomenuo. U svakom slucaju, niti najmanje nisi pogrijesio s Pythonom.

 

Jedini je problem sto na ovom forumu i nema nesto previse ljudi koji su aktivni oko Pythona, pa se nemoj cuditi ako ne dobijes odgovor, ali zato imas nepresusan izvor informacija kad trazis po netu (najcesce Stack Overflow).

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
 
6 0 hvala 3
11 godina
neaktivan
offline
Re: Python programiranje kao hobi

Moja preporuka je da izbjegavaš verziju 2 i koristiš verziju 3. Python 2 ima nekoliko neugodnih problema - stringovi nisu Unicode, dijeljenje cjelobrojnih brojeva daje netočne rezultate (7/2 daje 3 umjesto 3.5), input funkcija ne vraća uvijek string itd.

 

Ako ti nešto ne bude jasno slobodno pitaj, možda bude dosta zainteresiranih da se izborimo za "izdvojenu temu"!

16 godina
neaktivan
offline
Re: Python programiranje kao hobi
Bobobo-bo Bo-bobo kaže...

Moja preporuka je da izbjegavaš verziju 2 i koristiš verziju 3. Python 2 ima nekoliko neugodnih problema - stringovi nisu Unicode, dijeljenje cjelobrojnih brojeva daje netočne rezultate (7/2 daje 3 umjesto 3.5), input funkcija ne vraća uvijek string itd.

 

Ako ti nešto ne bude jasno slobodno pitaj, možda bude dosta zainteresiranih da se izborimo za "izdvojenu temu"!

Sve potpisujem osim boldanog. To nisu netocni rezultati, vec operator "/" tako radi jer je rijec o cjelobrojnom dijeljenju (iako malo drugacijem od C-a i pomalo "nezgodnom"). Znam da znas, ali cisto da budemo tehnicki korektni, ponekad je i cjelobrojno dijeljenje potrebno. U Pythonu 3 je obrnuto: "/" je float dijeljenje, a "//" je cjelobrojno dijeljenje.

 

Svakako se slazem da krene s Pythonom 3, definitivno.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
Poruka je uređivana zadnji put pon 1.2.2016 21:09 (1domagoj1).
15 godina
neaktivan
offline
Python programiranje kao hobi

bas sam prije nekih par dana odlučio naučiti programirati,nemam nikakvo osnovno znanje,ni iskustvo. Posudio sam knjigu think python, i moram priznat da me navuklo tako da sam trenutno žedan znanja,iako nemam neki konkretan cilj,šta bi htio s programiranje,osim znati. No ono što me zanima, kolika je razlika između pythona i ostalih programa,u smislu,hoće li mi znanje koje steknem u python-u koristiti u ostalim programima?

 
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python programiranje kao hobi

Ostajem pri tvrdnji da je broj "3.5" točniji rezultat dijeljenja 7/2 od broja "3" :) . Kad mi treba cjelobrojno dijeljenje nije mi teško koristiti specijalan operator "//", a često treba i ostatak pa umjesto "//" uglavnom koristim divmod.

 

Classic division je u Pythonu problematičan izvor bugova jer varijable nemaju deklarirane tipove pa ne možeš biti siguran kojeg su tipa operandi i koja će varijanta dijeljenja okinuti.

11 godina
neaktivan
offline
Re: Python programiranje kao hobi

Programski jezici su dovoljno slični da je poznavanje jednog od njih dobra osnova za učenje ostalih.

16 godina
neaktivan
offline
Python programiranje kao hobi

Prošao par kurseva na Courseri isto tako iz hobija. Da si zagrizao znaš kad pod tušem razmišljaš o nekoj petlji ;) Sad me okupira nešto drugo, al ću nastavit s Pythonom čim vrijeme dopusti, tamo negdje na ljeto. thenewboston na vrlo slikovit i zabavan način podučava. edX, Coursera, youtube, thinkpython, pa onda malo pyside/pyqt, automatetheboringstuff

 

Ja koliko sam skužio najbolje se uči uz osobni primjer, zamisliš neki programčić i onda ideš redom i tražiš rješenja. PyCharm dosta pomaže također.

There is no job like cron job!
 
2 0 hvala 2
15 godina
neaktivan
offline
Python programiranje kao hobi

jedno malo noob pitanje. Šta tocno radi funkcija for "nešto" in "nešto". Konkretno imam:

prefixes="JKLMNOPQ"

suffix="ack"

for preixes in prefixes:

print(prefixes+suffix)

I on izolira znak iz prefiksa i doda suffix,pa ispadnu imena(Jack,kack..itd). Da li onda taj for sluzi samo za izoliranje pojedinog znaka iz niza?

 
1 0 hvala 0
11 godina
neaktivan
offline
Re: Python programiranje kao hobi

For petlja u pythonu je vrlo moćna. Ono što staviš nakon in, on prepoznaje kao objekt i ima predefinirana pravila što sa istim radi.

Konkretno ti si mu dao string, pa će ti ići kroz svaki character u stringu i raditi željenu radnju.

 

Također, ova "preixes" temp varijabla koju si tako nazvao, možeš nazvati kako god hoćeš, najčešće tako da znaš kroz što iteriraš.

 

Imaš također typo u print statementu, jer mislim da želiš svakom slovu dodati suffix, u tvom slučaju nisi stavio preixes+suffix, nego prefixes+suffix, što bi ti ispisalo "JKLMNOPQack" 8 puta, jer imaš 8 slova u stringu.

 

Ovo je ispravno:

 

for letter in prefixes:

   print(letter+suffix)

 

 

Također, ovisno što stavljaš u for petlju, python će iterirati kroz taj objekt. Npr ako radiš for na listu, dobiti ćeš svaki element te liste, itd.

15 godina
neaktivan
offline
Re: Python programiranje kao hobi

a kako da definiram taj letter?

Malo sam se sad igrao,i ako sam dobro skuzio nije bitno kako definiram taj letter?

Rezime: Tom letter dodajem svako slovo,odnosno sve što se nalazi u prefixsu,odnosno  kao da ga rastavljam na djelove.

Ako može netko još kakav primjer gdje i kako možemo koristiti tu funkciju (for,in)?

 

Poruka je uređivana zadnji put sub 6.2.2016 13:27 (cale).
16 godina
neaktivan
offline
Re: Python programiranje kao hobi
cale kaže...

jedno malo noob pitanje. Šta tocno radi funkcija for "nešto" in "nešto". Konkretno imam:

prefixes="JKLMNOPQ"

suffix="ack"

for preixes in prefixes:

print(prefixes+suffix)

I on izolira znak iz prefiksa i doda suffix,pa ispadnu imena(Jack,kack..itd). Da li onda taj for sluzi samo za izoliranje pojedinog znaka iz niza?

To nije funkcija, to je for petlja. Tocnije foreach petlja. Python ima samo foreach petlju (za razliku od drugih jezika, drugi vecinom imaju i klasicnu for petlju).

 

Kako radi? "prefixes" je string, a stringovi su u Pythonu "loopable" tj. moze ih se prolaziti petljom (kao i liste, recimo). Mozes si zamisliti da od tog stringa on napravi listu pojedinacnih slova: ['J', 'K', 'L', ... , 'Q'] (tri tockice su tu da ne pisem sve). I onda petlja prolazi po toj listi i uzima jedan po jedan objekt iz liste i sprema ga u privremenu varijablu "preixes" (bolje bi bilo imenovati u jednini jer se u tu privremenu varijablu sprema samo jedan po jedan clan, dakle "for prefix in prefixes").

 

Znaci, "for prefix in prefixes" uzme uzme 'J' iz "prefixes" i privremeno ga spremi u "prefix", dalje unutar for petlje ti radis s tim "prefix" sto god trebas, kad petlja zavrsi prvu iteraciju i krene nanovo, uzme slovo 'K' i spremi ga privremeno u "prefix", itd.

Imaj na umu da je to privremeno i kakve god promjene napravis u varijabli "prefix" one ce se izgubiti u sljedecoj iteraciji (jer tada ulazi novo slovo u tu varijablu).

 

Nadam se da je jasnije.

 

EDIT: Tu varijablu je svejedno kako na zoves. Moze biti i for a in prefixes, for banana in prefixes, svejedno je. Bitno je samo da tak kak si ju nazvao da unutar for petlje to ime i koristis.

Gdje se koristi? Svugdje s obzirom da je to jedina for petlja u Pythonu. For petlje su jedan od glavnih idioma u programiranju, kad god trebas nesto raditi puno puta, tako da ces ju stalno koristiti.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
Poruka je uređivana zadnji put sub 6.2.2016 16:01 (1domagoj1).
15 godina
neaktivan
offline
Re: Python programiranje kao hobi

Imam malo jasniju sliku u glavi, da li to onda u principu znaći da je (prefix="J") u prvo iteraciji, i onda ga u drugoj zamjenjuje drugo slovo?

16 godina
neaktivan
offline
Re: Python programiranje kao hobi
cale kaže...

Imam malo jasniju sliku u glavi, da li to onda u principu znaći da je (prefix="J") u prvo iteraciji, i onda ga u drugoj zamjenjuje drugo slovo?

 Pa da. Napravi si vježbu npr. 

 

rijec='abc'

for slovo in rijec:

   print(slovo) 

 

Ili :

 

for broj in range(9):

   print(broj) 

There is no job like cron job!
16 godina
neaktivan
offline
Re: Python programiranje kao hobi
cale kaže...

Imam malo jasniju sliku u glavi, da li to onda u principu znaći da je (prefix="J") u prvo iteraciji, i onda ga u drugoj zamjenjuje drugo slovo?

Upravo to.

U prvoj iteraciji je varijabla prefix = "J", u drugoj iteraciji varijabla prefix = "K", itd.

 

Iskreno, s foreach petljom sam se prvi puta susreo u Pythonu i tesko mi ju je bilo shvatiti u pocetku, no kad sam ju shvatio, bilo je "zakonnn". Da, bas sam bio "mindblow" s tim. :D

 

Recimo ovaj primjer koji je hrvooje stavio s range() metodom. Npr. range(3) vrati ti listu [0, 1, 2] (sto je istina u Pythonu2, ali u Pythonu3 ne, ali ne zamaraj se time) i sad ako ti pise:

for broj in range(3)

prvo se u varijablu "broj" spremi 0, onda u sljedecoj iteraciji 1 i konacno broj 2. Za to vrijeme unutar for petlje radis nesto s tim brojevima. U ovom hrvoojevom slucaju, ispisujes ih.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
15 godina
neaktivan
offline
Python programiranje kao hobi

I dalje sam na tom "for" petlji.Ovako imao sam zadatak napisati funkciju koja traži određeno slovo u znakovnom nizu,al tako da prikazuje indeks koji pripada tom znakovnom nizu,s time da je dodatni zadatak bio napisati i treći parametar koji označuje od kojeg indeksa da počne pretraživati. Problem je bio to što on čim nađe slovo koje sam zadao funkcija se prekida,pa sam morao ponovo napisati kod koji će pretražiti do kraja i prikazati sve indekse koji odgovaraju uvjetima.Ovako nekako sam ja to skombao:

def find(word,letter,p):
   index=0
   p=c
   nula="None"
   jedan="None"
   while p<len(word):
      if word[p]==letter:
         print(p)
         nula=letter
      p=p+1
   while index<c:
      if word[index]==letter:
         jedan=letter
         print(index)
      index=index+1
   if nula=="None" and jedan=="None":
      return -1

I sad sam htio nekako iskorititi "for". Ovaj kod mi prikazuje sva slova ali ne indexe

 def find(word,letter):
   index=0
   for slovo in word:
      if slovo[index]==letter:
         print(slovo[index])

 

 

Poruka je uređivana zadnji put ned 7.2.2016 17:47 (cale).
 
0 0 hvala 0
16 godina
neaktivan
offline
Python programiranje kao hobi

cale  evo od nooba noobu. vjerovatno ima i elegantnije rješenje u dva reda s index ili find metodom ...

 

def find(word,letter,p=0):
   if letter in word and p<len(word) and p>=0:
     new_word=word[p:]
     index=0
       for char in new_word:
         if char==letter:
           print char, index+p
         index+=1
   else:
     return -1

 

što daje:

 

>>> find('banana','a',3)
a 3
a 5
>>> find('banana','a')
a 1
a 3
a 5
>>>

There is no job like cron job!
Poruka je uređivana zadnji put ned 7.2.2016 20:17 (hrvooje).
 
1 0 hvala 0
14 godina
offline
Python programiranje kao hobi

Može i ovako:

 

def findChar(word, findChar, startIndex=0):
   for index, char in enumerate(word):
     if(findChar == char and index > startIndex):
       print(index, char)

/dev/null
 
1 0 hvala 0
11 godina
neaktivan
offline
Re: Python programiranje kao hobi

Ako ti treba i element niza i njegov indeks koristi funkciju enumerate. Za lakši slučaj (bez trećeg parametra) funkcija izgleda ovako:

 

def find(word, letter):
    for index, slovo in enumerate(word): # enumerate umjesto 'b', 'a', 'n', ... rastavlja word na (0, 'b'), (1, 'a'), (2, 'n'), ...
        if slovo == letter:
            print(index)

find('banana', 'a') #Ispiše 1 3 5

 

Ovakva funkcija se može proširiti za traženi treći parametar na jednostavan način:

 

def find(word, letter, p):
    for index, slovo in enumerate(word):
        if slovo == letter and index >= p: # ignoriraj indekse manje od p
            print(index)

find('banana', 'a', 3) #Ispiše 3 5

 

ili na malo drugačiji način:

 

def find(word, letter, p):
    for index, slovo in enumerate(word[p:], p): # kreni od p-tog elementa niza word
        if slovo == letter:
            print(index)

find('banana', 'a', 3) #Ispiše 3 5

 

U konačnici, za ovaj konkretan zadatak se ne treba bojati odraditi pretragu niza old-school indeksiranjem:

 

def find(word, letter, p):
    for index in range(p, len(word)):
        if word[index] == letter:
            print(index)
           
find('banana', 'a', 3) #Ispiše 3 5

 

Za kraj jedna primjedba: vidim da obojica vraćate -1 ako word ne sadrži letter - nemojte to raditi. Pythonove funkcije po defaultu vraćaju vrijednost None (ne string "None", nego built-in konstantu). Nije potrebno izmišljati rezultat funkcije da se ne doboje GPF.

Poruka je uređivana zadnji put ned 7.2.2016 21:51 (Bobobo-bo Bo-bobo).
8 godina
neaktivan
offline
Re: Python programiranje kao hobi

Hvala na odgovoru! I tebi i svim ostalima koji su odgovorili na ovom postu.

 

Vec imam nalog na Coursera-i i presao sam kurs profesora Chuck-a (Charles Severance) - Programming for Everybody.

 

Zbog njega, odnosno nacina na koji prof. Chuck predaje, Python sam zavolio jos vise!

 

Trenutno slusam i nastavak ovog kursa, tj. treci dio "Using Python to Access Web Data" - presli samo Regular expressions i odusevljen sam mogucnostima! Znao sam ponesto o regular expressions iz PHP-a, ali nikad nisam prosao kroz to ocvako temeljno, od pocetka - da sve uspijem razumjeti - i sad vidim koliko je RE jednostavan i mocan! Inace kurseve pratim uz pomoc njegove knjige Python for Informatics. Knjiga postoji i u ebook izdanjima i besplatna je.

 

Na telefonu sam instalirao Python sa PlayStore koji odlicno izvrsava jednostavne skripte koje ucim, pa tako mogu testirati ideje i uciti dok negdje cekam u redu (na primjer) :) - naravno, inace koristim desktop verziju.

 

Slusam i "An Introduction to Interactive Programming in Python" - sto je vise Geek i manje zanimljivo u odnosu na profesora Chuck-a, ali i dalje jednako dobro za ucenje. Imaju fantasticne primjere gdje cak glume "Event trigering" uz pomoc zvona na ulaznim vratima i slicne stvari kako bi docarali o cemu se tacno radi... :)

 

Kada zavrsim sa serijom ovih kurseva skinut cu i Learn Python the Hard Way! Najveci problem mi je vrijeme - mnoge stvari moram pomjerati zbog python-a, a vec je sve stisnuto zbog posla, koji takodje trazi stalno ucenje i usavrsavanje... Sreca u svemu je da nigdje ne zurim i mogu polako slusati kurseve i raditi zadatke iz knjiga.

 

 

Bobobo-bo Bo-bobo 

Odlucio sam se za dvojku zato jer postoji mnogo dokumentacije i mnogo bioblioteka - laksa je za ucenje, a tim prije sto su skoro isti, kad uspijem ovladati dvojkom, a osjetim potrebu da mi zbog necega treba trica (kao unicode string podrska), prebacivanje nebi trebalo da bude problem?

Ako postoji jos neki vazan argment u korist pythona 3 (u odnosu na hobistu pocetnika), volio bih ga cuti? 

 

 

 

 

 

16 godina
neaktivan
offline
Re: Python programiranje kao hobi
rangoj kaže...

Hvala na odgovoru! I tebi i svim ostalima koji su odgovorili na ovom postu.

 

Vec imam nalog na Coursera-i i presao sam kurs profesora Chuck-a (Charles Severance) - Programming for Everybody.

 

Zbog njega, odnosno nacina na koji prof. Chuck predaje, Python sam zavolio jos vise!

 

Trenutno slusam i nastavak ovog kursa, tj. treci dio "Using Python to Access Web Data" - presli samo Regular expressions i odusevljen sam mogucnostima! Znao sam ponesto o regular expressions iz PHP-a, ali nikad nisam prosao kroz to ocvako temeljno, od pocetka - da sve uspijem razumjeti - i sad vidim koliko je RE jednostavan i mocan! Inace kurseve pratim uz pomoc njegove knjige Python for Informatics. Knjiga postoji i u ebook izdanjima i besplatna je.

 

Na telefonu sam instalirao Python sa PlayStore koji odlicno izvrsava jednostavne skripte koje ucim, pa tako mogu testirati ideje i uciti dok negdje cekam u redu (na primjer) :) - naravno, inace koristim desktop verziju.

 

 

 

 I ja sam slično radio. Coursera prof. Chuck i njegova knjiga ;) pa edX, pa thenewboston na youtubeu, dečko je zabavan i jako lijepo objašnjava

There is no job like cron job!
15 godina
neaktivan
offline
Python programiranje kao hobi

opet samo zapeo,tj treba mi samo jedno matematičko objašnjenje koje ne mogu nikako shvatiti. Uglavnom zadatk je bio napraviti funkciju koja okreće slova u rijeci. Ako je rijec("word") onda ce svako to slovo pomaknut za n-broj kroz abecedu,vracajuci se na pocetak. Nisam nikako mogao napraviti funkciju da se vraća na pocetak,pa sam pogledao rješenje,ali ima dio koji ne shvaćam.Kod ide ovako:

def rotate_letter(letter,n):
   if letter.isupper():
      start=ord("A")
   elif letter.islower():
      start=ord("a")
   else:
      return letter
   c=ord(letter)-start
   i=(c+n)%26+start)-ovih%26 me buni,uglavnom kad maknem to,on se ne vraća na pocetak(odnosno do slova "a"),pa tako mogu dobiti neke druge znakove,a kad ga ostavim on se zadražava samo na abecedi pa ide u krug.No ne shvaća sam zašto
   return chr(i)

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Python programiranje kao hobi
cale kaže...

opet samo zapeo,tj treba mi samo jedno matematičko objašnjenje koje ne mogu nikako shvatiti. Uglavnom zadatk je bio napraviti funkciju koja okreće slova u rijeci. Ako je rijec("word") onda ce svako to slovo pomaknut za n-broj kroz abecedu,vracajuci se na pocetak. Nisam nikako mogao napraviti funkciju da se vraća na pocetak,pa sam pogledao rješenje,ali ima dio koji ne shvaćam.Kod ide ovako:

def rotate_letter(letter,n):
   if letter.isupper():
      start=ord("A")
   elif letter.islower():
      start=ord("a")
   else:
      return letter
   c=ord(letter)-start
   i=(c+n)%26+start)-ovih%26 me buni,uglavnom kad maknem to,on se ne vraća na pocetak(odnosno do slova "a"),pa tako mogu dobiti neke druge znakove,a kad ga ostavim on se zadražava samo na abecedi pa ide u krug.No ne shvaća sam zašto
   return chr(i)

 Stvar je da chr(i) vrati znak koji predstavlja broj iASCII tablici. Recimo 'A' je broj 65, 'B' je 66, 'C' je 67... 'a' je 97, 'b' je 98...

 

Abeceda ima 26 slova, tako da su nam velika slova u rasponu od 65 (A) do 65+26=91, sva mala slova u rasponu od 97 (a) do 97+26=123. Tako da na Z recimo moramo dodati broj 5, ali moramo paziti da je u rasponu 0..25, a to ostvarimo tako da provjerimo ostatak pri dijeljenju s 26 (% je modulo operator, tj. ostatak pri dijeljenju)

 

(c+n)%26 osigurava da je taj broj između 0 i 26, zatim na to dodamo start, tj. 65 (A) ili 97 (a) i dobijemo neko slovo abecede.

15 godina
neaktivan
offline
Re: Python programiranje kao hobi
Looka kaže...
cale kaže...

opet samo zapeo,tj treba mi samo jedno matematičko objašnjenje koje ne mogu nikako shvatiti. Uglavnom zadatk je bio napraviti funkciju koja okreće slova u rijeci. Ako je rijec("word") onda ce svako to slovo pomaknut za n-broj kroz abecedu,vracajuci se na pocetak. Nisam nikako mogao napraviti funkciju da se vraća na pocetak,pa sam pogledao rješenje,ali ima dio koji ne shvaćam.Kod ide ovako:

def rotate_letter(letter,n):
   if letter.isupper():
      start=ord("A")
   elif letter.islower():
      start=ord("a")
   else:
      return letter
   c=ord(letter)-start
   i=(c+n)%26+start)-ovih%26 me buni,uglavnom kad maknem to,on se ne vraća na pocetak(odnosno do slova "a"),pa tako mogu dobiti neke druge znakove,a kad ga ostavim on se zadražava samo na abecedi pa ide u krug.No ne shvaća sam zašto
   return chr(i)

 Stvar je da chr(i) vrati znak koji predstavlja broj iASCII tablici. Recimo 'A' je broj 65, 'B' je 66, 'C' je 67... 'a' je 97, 'b' je 98...

 

Abeceda ima 26 slova, tako da su nam velika slova u rasponu od 65 (A) do 65+26=91, sva mala slova u rasponu od 97 (a) do 97+26=123. Tako da na Z recimo moramo dodati broj 5, ali moramo paziti da je u rasponu 0..25, a to ostvarimo tako da provjerimo ostatak pri dijeljenju s 26 (% je modulo operator, tj. ostatak pri dijeljenju)

 

(c+n)%26 osigurava da je taj broj između 0 i 26, zatim na to dodamo start, tj. 65 (A) ili 97 (a) i dobijemo neko slovo abecede.

 Aha.....sad opet moram biti malo dosadan,nadam se da nikoga ne ljutim s pitanjima.....ako ista znaci stvarno pokusavam pa kad bas nikako ne mogu skuziti onda postavim pitanje na forum,ne tražim gotova rješenja:)

Uglavnom napravio sam kod koji mi izbacuje na kojem mjestu se nalazi određeno slovo,namjera mi je bila da mi nađe mjesta pa da onda ja samo za n povećam indeks i tako dobijem drugo slovo.Ovako kod izgleda

 def test(s,n):
   abeceda="abcdefghijklmnopqrstuvwxyz"
   count=0
   for c in s:
      while c!=abeceda[count]:
         if count<26:
            count=count+1
         else:
            count=0
      if count+n>25 or count==25:
         broj=25-count
         broj=broj-1
         print(abeceda[broj])
      else:
         prikaz=count+n
         print(abeceda[prikaz])
      count=0

No on meni prikazuje nova dobivena slova jedna ispod drugog,a ne jedna pored drugih. Trebao bih nekako spremiti svaki promjenjeni c.

x="promjena"

for c in s:

        promjena=c+x

       print(promjena)

da li ja kako mogu sačuvati ovu prvu Promjenu,da se ona ne izgubi kad je zamjeni drugi znak iz znakovnog niza s.

 

   

Poruka je uređivana zadnji put uto 9.2.2016 19:14 (cale).
14 godina
neaktivan
offline
Re: Python programiranje kao hobi
cale kaže...

 Aha.....sad opet moram biti malo dosadan,nadam se da nikoga ne ljutim s pitanjima.....ako ista znaci stvarno pokusavam pa kad bas nikako ne mogu skuziti onda postavim pitanje na forum,ne tražim gotova rješenja:)

Uglavnom napravio sam kod koji mi izbacuje na kojem mjestu se nalazi određeno slovo,namjera mi je bila da mi nađe mjesta pa da onda ja samo za n povećam indeks i tako dobijem drugo slovo.Ovako kod izgleda

 def test(s,n):
   abeceda="abcdefghijklmnopqrstuvwxyz"
   count=0
   for c in s:
      while c!=abeceda[count]:
         if count<26:
            count=count+1
         else:
            count=0
      if count+n>25 or count==25:
         broj=25-count
         broj=broj-1
         print(abeceda[broj])
      else:
         prikaz=count+n
         print(abeceda[prikaz])
      count=0

No on meni prikazuje nova dobivena slova jedna ispod drugog,a ne jedna pored drugih. Trebao bih nekako spremiti svaki promjenjeni c.

x="promjena"

for c in s:

        promjena=c+x

       print(promjena)

da li ja kako mogu sačuvati ovu prvu Promjenu,da se ona ne izgubi kad je zamjeni drugi znak iz znakovnog niza s.

 

   

 Možeš na staru promjena dodati novu, tj. probaj promjena = promjena + c + x (ili skraćeno promjena += c + x)

 

A možeš i pisati sve u isti red, print stavi newline character (\n) po defaultu na kraj, ali možeš to izbjeći tako da pišeš "print (promjena), " (zarez na kraju), ali nisam siguran je li to u pythonu 2 il 3.
15 godina
neaktivan
offline
Re: Python programiranje kao hobi

pythonu 3 se radi

11 godina
neaktivan
offline
Re: Python programiranje kao hobi

Ako samo želiš da ti se print-ovi nastavljaju jedan na drugi koristi imenovani parametar end funkcije print:

 

for znak in 'ABCD':
    print('Znak:', znak, end='')
# Ispiše Znak: AZnak: BZnak: CZnak: D

 

Ako želiš sačuvati sve promjene koristi listu:

 

promjene = [] # inicijaliziraj praznu listu

x = 'promjena'
for c in 'ABCD': # napuni listu promjena
    promjena = c + x
    promjene.append(promjena)

print(promjene) # ispiši listu
# Ispiše ['Apromjena', 'Bpromjena', 'Cpromjena', 'Dpromjena']

15 godina
neaktivan
offline
Re: Python programiranje kao hobi

moram priznati da mi bas i ne ide.Ne vidim di griješim.

def promjena():
   lista=[]
   k="ABCDEFEGZIJKLMNO"
   o=1
   for c in k:
      c=o
      o=o+1
      lista.append(c)
      print (lista)

i dobijem ovako:

[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

16 godina
neaktivan
offline
Re: Python programiranje kao hobi

A zelis dobiti sto?

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
15 godina
neaktivan
offline
Re: Python programiranje kao hobi

da samo dobijemo:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

Nova poruka
E-mail:
Lozinka:
 
vrh stranice