Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zadaci za wannabe pythoniste

[es] :: Python :: Zadaci za wannabe pythoniste

Strane: << < .. 2 3 4 5 6 7 8 9 10 11 ... Dalje > >>

[ Pregleda: 51014 | Odgovora: 629 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Panta_
Aleksandar Pantić
Kragujevac

Član broj: 214959
Poruke: 790



+162 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 06:35 - pre 51 meseci
Imas novu liniju posle svakog for loopa, zameni print("\n") sa print(). Evo malo jednostavnijeg resenja:

Code:
for i in range(6):
    print((str(i) + ' ') * i)


2 2 
3 3 3 
4 4 4 4 
5 5 5 5 5
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 12:23 - pre 51 meseci
Evo Panto ja još skratio

Code:
for i in range(6):
          print(str(i) * i)


Ti si izgleda veliki ljubitelj kratkih formi, samo skraćuješ.
Evo ti onda jedne super kratke priče velikog Danila Harmsa, pa uživaj:

Bio jedan riđi čovek

Bio jednom jedan riđi čovek. Taj nije imao ni oči ni uši. Ni kosu nije imao, tako da su ga riđim zvali tek uslovno. Ni da govori nije mogao, jer taj ni usta nije imao. Nije imao ni nos. Nije imao čak ni ruke ni noge. Ni stomak nije imao, ni leđa nije imao, ni kičmu nije imao, ni unutrašnje organe. Ništa taj nije imao. Tako da se ni ne zna o kome se radi. Bolje onda da o njemu više i ne govorimo.
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 13:26 - pre 51 meseci
evo pascalov trougao:

Code:

~/examples/haskell >>> cat pascal.hs                                                                                                                                                                                     
fac :: (Num a,Enum a) =>a->a
fac = product . enumFromTo 1

binCoef :: Integer->Integer->Integer
binCoef n k = (fac n) `div` ((fac k) * (fac $ n - k))
 
pascal :: Integer -> [[Integer]]
pascal n = map (\x -> map (binCoef $ x - 1) [0..x-1]) [1..n]
 
main = do
    line <- getLine
    let n = read line
    putStrLn $ unlines $ map (unwords.map (show)) $ pascal n


Code:

~/examples/haskell >>> ./pascal                                                                                                                                                                                          
10
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1

 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 14:37 - pre 51 meseci
Lepo, lepo.

Evo onda za tebe jedne Paskalove misli:
Lepa reč ne košta mnogo. A ipak postiže mnogo.

 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 14:39 - pre 51 meseci
A odmah zatim da postavim kratki i jubilarni

Zadatak broj 10

Napiši funkciju koja određuje da li je lista brojeva koje je uneo korisnik sortirana (po rastućem ili opadajućem nizu, svejedno) ili je nasumična. Funkcija treba da dâ rezultat True ukoliko je lista već sortirana pri unosu, a u suprotnom False.

Napiši glavni program u kojem korisnik unese recimo 5 brojeva i onda iskoristi svoju funkciju da napraviš izveštaj je li lista sortirana ili nije.
 
Odgovor na temu

Panta_
Aleksandar Pantić
Kragujevac

Član broj: 214959
Poruke: 790



+162 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 15:31 - pre 51 meseci
Citat:
a1234567:
Evo Panto ja još skratio :D

Code:
for i in range(6):
          print(str(i) * i)


Nemas razmak izmedju brojeva. Zar ne treba 5 5 5 5 5?
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 15:37 - pre 51 meseci
Pa kad smo već krenuli u minimalizam, ja reko da zakinem što je moguće više


Inače za ovaj deseti zadatak kao privremeno rešenje dok ne nađem bolje,
dajem takozvano "brute force" rešenje

Code:

lista = [6, 15, 23, 31, 52]

def provera():
    if lista[0] <= lista[1] and lista[1] <= lista[2] and lista[2] <= lista[3] and lista[3] <= lista[4]:
        return True
    elif lista[0] >= lista[1] and lista[1] >= lista[2] and lista[2] >= lista[3] and lista[3] >= lista[4]:
        return True
    else:
        return False

print(provera())

proverio, radi!
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 15:52 - pre 51 meseci
Malo elegantnije rešenje zadataka 10 postavio sam na mestu za rešenja, ako nekom zatreba.
 
Odgovor na temu

Panta_
Aleksandar Pantić
Kragujevac

Član broj: 214959
Poruke: 790



+162 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 16:04 - pre 51 meseci
Code:
True if lista == sorted(lista) or lista == sorted(lista)[::-1] else False
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Zadaci za wannabe pythoniste28.12.2019. u 16:14 - pre 51 meseci
samo lista == sorted ne treba True ili False.
 
Odgovor na temu

Panta_
Aleksandar Pantić
Kragujevac

Član broj: 214959
Poruke: 790



+162 Profil

icon Re: Zadaci za wannabe pythoniste29.12.2019. u 06:47 - pre 51 meseci
True, zato što operator vraća boolean vrednost (True ili False), ali mi je sa if else za ovaj primer delovalo čitkije.
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste29.12.2019. u 11:32 - pre 51 meseci
E nešto sam razmišljao o ovim trouglovima od brojeva što smo pravili.
Geometrija je čudo. Pa mi pade na pamet, kako napraviti ovako nešto!?

1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
5 5 5 5 5
4 4 4 4
3 3 3
2 2
1
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste29.12.2019. u 11:34 - pre 51 meseci
Jedino što sam uspeo da smislim je da stavim dve petlje

Code:
for i in range(6):
      for x in range(i):
          print (i, end=" ")
      print()
for i in range(6, 0, -1):
      for x in range(i):
          print (i, end=" ")
      print()


Sad će Panta da zvizne one liner
 
Odgovor na temu

Panta_
Aleksandar Pantić
Kragujevac

Član broj: 214959
Poruke: 790



+162 Profil

icon Re: Zadaci za wannabe pythoniste29.12.2019. u 14:19 - pre 51 meseci
Chain them up:

Code:
from itertools import chain
for x in chain(range(1,6), range(6, 0, -1)):
    print((str(x) + ' ') * x)
     

2 2 
3 3 3 
4 4 4 4 
5 5 5 5 5 
6 6 6 6 6 6 
5 5 5 5 5 
4 4 4 4 
3 3 3 
2 2 
1


[Ovu poruku je menjao Panta_ dana 29.12.2019. u 15:54 GMT+1]

[Ovu poruku je menjao Panta_ dana 29.12.2019. u 16:08 GMT+1]
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste29.12.2019. u 14:25 - pre 51 meseci
E to, majstore, svaki dan nešto novo naučim :)

The chain() function takes several iterators as arguments and returns a single iterator that produces the contents of all of them as though they came from a single sequence.

Code:
from itertools import *

for i in chain([1, 2, 3], ['a', 'b', 'c']):
    print i

$ python itertools_chain.py

1
2
3
a
b
c

 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste30.12.2019. u 13:46 - pre 51 meseci
Zadatak 11. Pronađi proste brojeve

Prvo, da se podsetimo šta je prost broj? Svaki pozitivan broj od 1 do n, koji je deljiv jedino brojem 1 i samim sobom.
E sad treba u nizu od 1 do nekog zadatog broja izlistati sve proste brojeve.
Recimo u nizu od 1 do 50, to su brojevi: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47.

Napiši funkciju, čiji je opis sledeći:

Code:
Napravi listu sa svim brojevima od 0 do n.
izbaci 0 i 1, jer nisu prosti brojevi.

Postavi p jednako 2 i odatle krećeš
Dok je p manje od n radi ovo:
    Izbaci iz liste sve brojeve koji su proizvod broj p tako što ćeš im dati vrednost 0 (ali ne izbacuj samo p).
    Postavi da je p jednako narednom broju u listi, a koji već nije pretvoren u vrednost 0 

Isprintaj kao proste sve brojeve koji nisu postali 0.


 
Odgovor na temu

mjanjic
Šikagou

Član broj: 187539
Poruke: 2679



+690 Profil

icon Re: Zadaci za wannabe pythoniste30.12.2019. u 20:59 - pre 51 meseci
Zar nije logičnije napraviti novi niz pa vrednosti prostih brojeva upisivati u njega?
Za ovo kako si ti opisao je pogodna neka vrsta heš tabele, ali je besmisleno jer nas zanimaju samo brojevi koji su prosti. Na kraju, logično je imati niz koji sadrži samo proste brojeve do broja n, a ne da većina članova niza budu 0, pa pri štampanju treba opet da proveravamo za svaki element niza da li je različit od nule.

Od ovakvih zadačića se prosečnom početniku smuči programiranje, jer ne vidi poentu rešavanja zadataka koji se u takvom obliku nikad neće pojaviti u praksi.

Uzmi npr. one jednostavnije zadačiće iz knjiga tipa "Coding interviews".
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste31.12.2019. u 04:17 - pre 51 meseci
Takav je zadatak na koji sam naišao. Ne mogu ja autoru da krojim kapu :)
Evo i rešenja za zadatak 11.

Nije problem, ako imaš i ti neki zadatak za početnike, postavi ga ovde, pa da se zabavljamo :)

E da, najvažnije!

SVIMA VAM ŽELIM SVE NAJBOLJE U NOVOJ GODINI
i još mnogo programerskih "zadačića" da rešimo :D
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Zadaci za wannabe pythoniste31.12.2019. u 04:42 - pre 51 meseci
To je eratostenovo sito:
https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes

Srecna nova unapred :P
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Zadaci za wannabe pythoniste31.12.2019. u 07:39 - pre 51 meseci
Kada praviš Eratostenovo sito, ne treba petlja da ide do "limit", nego do sqrt(limit)

Tako, na primer, ako želiš da nađeš proste brojeve do 100, petlja se vrti samo do 10. Kada izbaciš sve brojeve deljive sa 2, 3, 5 i 7, sve što ostane je prost broj.
Ako broj nije prost, tada može da se napiš kao proizvod dva broja k=m*n.
m i n su veći od 1 (ne moraju da budu prosti) i neka je m<=n
Tada je maksimalna vrednost za m u slučaju da je m=n, pa m ne može biti veće od sqrt(k)
 
Odgovor na temu

[es] :: Python :: Zadaci za wannabe pythoniste

Strane: << < .. 2 3 4 5 6 7 8 9 10 11 ... Dalje > >>

[ Pregleda: 51014 | Odgovora: 629 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.