Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 629 odgovora
  • 108.109 pregleda

Najnovija ↓

Re: Zadaci za wannabe pythoniste 28.12.2019. u 07:35 · pre 83 meseca #121
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)

1 
2 2 
3 3 3 
4 4 4 4 
5 5 5 5 5
Re: Zadaci za wannabe pythoniste 28.12.2019. u 13:23 · pre 83 meseca #122
Evo Panto ja još skratio :D

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.
Re: Zadaci za wannabe pythoniste 28.12.2019. u 14:26 · pre 83 meseca #123
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

Re: Zadaci za wannabe pythoniste 28.12.2019. u 15:37 · pre 83 meseca #124
Lepo, lepo.

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

Re: Zadaci za wannabe pythoniste 28.12.2019. u 15:39 · pre 83 meseca #125
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.
Re: Zadaci za wannabe pythoniste 28.12.2019. u 16:31 · pre 83 meseca #126
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?
Re: Zadaci za wannabe pythoniste 28.12.2019. u 16:37 · pre 83 meseca #127
Pa kad smo već krenuli u minimalizam, ja reko da zakinem što je moguće više :D


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!
Re: Zadaci za wannabe pythoniste 28.12.2019. u 17:04 · pre 83 meseca #129
Code:
True if lista == sorted(lista) or lista == sorted(lista)[::-1] else False
Re: Zadaci za wannabe pythoniste 29.12.2019. u 07:47 · pre 83 meseca #131
True, zato što operator vraća boolean vrednost (True ili False), ali mi je sa if else za ovaj primer delovalo čitkije.
Re: Zadaci za wannabe pythoniste 29.12.2019. u 12:32 · pre 83 meseca #132
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
Re: Zadaci za wannabe pythoniste 29.12.2019. u 12:34 · pre 83 meseca #133
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 :D
Re: Zadaci za wannabe pythoniste 29.12.2019. u 15:19 · pre 83 meseca
izmenjeno 2 puta, poslednji put Panta_ 29.12.2019. u 16:08
  1. Panta_29.12.2019. u 16:08zapis iz teksta poruke
  2. Panta_29.12.2019. u 15:54zapis iz teksta poruke
#134
Chain them up:

Code:
from itertools import chain
for x in chain(range(1,6), range(6, 0, -1)):
    print((str(x) + ' ') * x)
     
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
Re: Zadaci za wannabe pythoniste 29.12.2019. u 15:25 · pre 83 meseca #135
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

Re: Zadaci za wannabe pythoniste 30.12.2019. u 14:46 · pre 83 meseca #136
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.


Re: Zadaci za wannabe pythoniste 30.12.2019. u 21:59 · pre 83 meseca #137
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".
Potpis
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
Re: Zadaci za wannabe pythoniste 31.12.2019. u 05:17 · pre 83 meseca #138
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
Re: Zadaci za wannabe pythoniste 31.12.2019. u 08:39 · pre 83 meseca #140
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)
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme