Kvadriranje liste

Pozdrav,
Imam problem.
Nov sam u ucenju python koda.
Zadatak je
Dat je string oblika “12,4,35,6”. Potrebno je pretvoriti ga u listu i za svaki
element izračunati njegov kvadrat. Potom kvadrate tih elemenata spojiti
nazad u string.
Ulaz: string = ‘12,4,35,6’
Izlaz: string =‘144,16,1255,36’

Ja sam napisao:

string = ‘12,4,35,6’
string.split()
string = string.split()
Kako da formulisem for petlju da bih mogao da listu podignem na kvadrat.

Unapred hvala

Zdravo,

Hajde da prvo raščlanimo zadatak na delove. Prvo je potrebno da string koji je niz brojeva odvojenih zarezima pretvoriš u listu, zatim je potrebno da svaki element liste podigneš na kvadrat i onda je potrebno da to nekako vratiš u oblik stringa.

Prvo, kada definišeš u varijabli ulazne vrednosti, tvoj kod će raditi samo za te vrednosti i moraćeš svaki put da ih menjaš u toj varijabli kako bi istestirao i neke druge vrednosti. Da bi to izbegao, potrebn je da koristiš input() koji će ti omogućiti da sa svakim pokretanjem koda uneseš nešto drugo. kako kod Pajtona funkcija input() uvek pravi tip string, dovoljno će biti da kod započneš ne sa string='nekistring' već sa string = input(). Svaki put pri pokretanju koda, moći ćeš da uneseš druge vrednosti i varijabla string će imati te vrednosti.

E sad, tebi treba lista vrednosti unesenih na ulazu. Dobro si počeo sa idejom da upotrebiš string.split(). To je metod koji će da od stringa napravi listu elemenata tako što će string podeliti prema nekom kriterijumu koji mu zadaš. Ako upotrebiš samo string.split() sa praznom zagradom, on će upotrebiti karakter za razmak (spejs) kako bi string pretvorio u listu elemenata koji su u prvobitnom stringu bili odvojeni spejsom. Ako mu zadaš poseban karakter po kome želiš da se napravi podela, on će to uraditi koristeći taj karakter. U ovom konkretnom slučaju brojevi su odvojeni zarezom pa je potrebno upotrebiti string.split(',') kako bi podelio po tom karakteru. Ovo će ti dati listu u kojoj su svi članovi pojedinačni stringovi, dakle [‘12’, ‘4’, ‘35’, ‘6’]

E sad dolazi deo gde treba da prođeš kroz tu listu i svaki od elemenata podigneš na kvadrat. Prvo ćeš primetiti da tip str ne možeš da kvadriraš, dakle biće potrebno da elemente prvo prebaciš u neki tip podatka koji može da se kvadrira, int recimo. Ali pošto ti na kraju treba ponovo string kakav si imao i na početku, moraćeš da kvadrirane brojeve vratiš u str. Ovo prebacivanje najlakše se radi tako što ćeš upotrebiti funkcije int() i str() koje određeni element pretvaraju u ceo broj ili u string.

Dakle, želiš da mu kažeš sledeću stvar - za svaki element liste stringova, taj element uzmi, pretvori ga u ceo broj i onda ga kvadriraj. Kada to uradiš, kvadrirani element vrati u string i napiši ga u formatu koji je definisan u izlazu zadatka.

Moj kod bi izgledao nekako ovako

string = input() # varijabla u koju smeštamo string koji se unese
lista_elemenata = string.split(',') # pravimo listu vrednosti podeljenih po zarezu
krajnji_string = ''
for i in lista_elemenata:
    i = int(i)**2 # svaki element liste pretvaramo prvo u ceo broj, a onda ga kvadriramo
    krajnji_string += (str(i)) + ',' # u svakom prolasku kroz petlju kvadrirani broj pretvaramo u string i  dodajemo ga u krajnji string, dodajuć zarez iza njega 
print(krajnji_string)
1 Like

Postovani Lazare,
Hvala na savetu, uskog sam razmisljanja, lista elemenata mi ne bi pala na pamet.
Ogranicen sam striktno onim sto pise u zadatku i ne dajem sebi prostora i sirinu u resenju.
Da li mozete,za pocetak, da mi preporucite neku zbirku laksih zadataka sa ovakvim objasnjenjima(kao Vase) jer je veoma shvatljivo. Ja sam se sa python jezikom prvi put susreo pre mesec, mesec i po dana a voleo bih da ga naucim ali da znam a ne da nabubam. otvoren sam za sugestije i predloge ako Vam nesto padne na pamet slobodno mi prosledite link. Trebalo bi mozda vezbati i algoritme gde moze da se nadje on-line neka jednostavnija knjiga iz algoritmike kako bih malo prosirio gledista u razumevanju problema iz zadataka.
Hvala i srdacan pozdrav,
Pedja

Poštovani Peđa,

Preporučio bih vam da krenete od ovog materijala https://petlja.org/biblioteka/r/kursevi/prirucnik-python-gim On će vam pomoći da savladate osnovne koncepte (očekujem da ćete neke od ovih stvari već znati, ali ovde su lepo objašnjeni i ima dosta primera pa očekujem da će vam materijal koristiti).

Veliki broj jednostavnih zadataka za vežbu možete pronaći i ovde https://petlja.org/biblioteka/r/kursevi/python-zbirka-malih-zadataka Oni će vam pomoći da vam sintaksa “uđe u prste”.

Na kraju, preporučio bih vam da zadatke radite u ovoj zbirci https://petlja.org/biblioteka/r/kursevi/Zbirka-python Ovo može biti glavno mesto za vežbanje pošto postoje rešenja za sve zadatke i objašnjenja nekih glavnih kocepata. Veliki broj zadataka nije težak i odgovara nivou početnika. Ima i nekih težih zadataka, ali i njih ćete moći da savladate kada se malo uhodate sa prorgamiranjem. Ako se i zaglavite, rešenja su tu da vam pomognu i objasne šta se dešava.

Naravno, ako igde budete imali problem, slobodno pišite ovde i neko će vam pomoći.

Sradčan pozdrav