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

Zadaci za wannabe pythoniste

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

Strane: 1 2 3 4 5 6 ... Dalje > >>

[ Pregleda: 51023 | 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 pythoniste12.12.2019. u 08:19 - pre 52 meseci
Citat:
Evo probao da izvadim print funkciju izvan if...else statement, ali ne radi, jer naravno više ne prepoznaje promenljivu "rezultat"
Daj primer na šta konkretno misliš. Da nešto naučimo.


Dovoljno je:
Code:
if nekiBroj % 2 == 0:
    return nekiBroj // 2
else: 
    return nekiBroj * 3 + 1

ili 

nekiBroj // 2 if nekiBroj % 2 == 0 else nekiBroj * 3 + 1

Malo drugaciji primer:
Code:
from typing import Iterator

def collatz(number: int) -> Iterator[int]:
    while number != 1:
        number = number // 2 if number % 2 == 0 else number * 3 + 1
        yield number

try:
    user_input = int(input('Enter some number: '))
    for num in collatz(user_input):
        print(num)
except ValueError as err:
    print(f'Value must be an integer.\n{err}')
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste12.12.2019. u 09:09 - pre 52 meseci
Ja napravio program sa 12 redova, Panta ga slupao u jednom!!!
Šta reći do -- genije!

PANTU ZA PREDSEDNIKA

 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Zadaci za wannabe pythoniste13.12.2019. u 11:36 - pre 52 meseci
Ja sam imao sličnu ideju kao Panta, a pošto sam manijak za testiranje, program je morao da radi ispravno bez obzira na argument. Pošto je trebalo naći sekvencu, meni je bilo logično da vratim listu...
Code:
def colatz(n):

  lista = [n]
  try:
    if (n != int(n) or n<1):
      raise ValueError
  except ValueError:
    lista.append("Error: positive integer expected")
    return lista

  while (n>1):
    if(n%2==0):
      n=int(n/2)
    else:
      n=int(3*n+1)
    lista.append(n)
  return lista

print(colatz(1))
print(colatz(2))
print(colatz(10))
print(colatz(1.5))
print(colatz("a"))
print(colatz(-1))


Citat:
[1]
[2, 1]
[10, 5, 16, 8, 4, 2, 1]
[1.5, 'Error: positive integer expected']
['a', 'Error: positive integer expected']
[-1, 'Error: positive integer expected']
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste13.12.2019. u 12:11 - pre 52 meseci
Apdejtovana Pantina verzija, sad neko može da unese i frižider, a ne negativan broj, neće zabagovati!
Svaka čast, mastore.

Ubacio i tvoje i Pantino rešenje u github

Nego da ja ovde stavim i rešenje za zadatak broj 3.
To je lako, al čisto da se nađe.



[Ovu poruku je menjao a1234567 dana 13.12.2019. u 13:58 GMT+1]
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste13.12.2019. u 12:19 - pre 52 meseci
Vreme leti, a mi korak po korak, stigosmo i do četvrtog zadatka.
Za ove što vole kockarnice, prava poslastica. I to besplatna. Ne moraš posle da se vadiš :)

Daklem:

Zadatak 4: Pismo/glava

Za ovu vežbu ćemo pokušati da uradimo jedan eksperiment. Ako baciš novčić 100 puta i upišeš jedno P za „pismo“ i jedno G za „glavu“, napravićeš niz koji će izgledati otprilike ovako: “PPPPGGGGPP”. Ako pitaš drugara da napiše jedan takav niz, bez bacanja novčića, verovatno će krenuti da naizmenično stavlja „glave“ i „pisma“, nešto slično ovome: “PGPGPPGPGG”, što se ljudskom oku čini kao jedan nasumičan niz. Ali on nije matematički nasumičan. Tako čovek verovatno nikada neće napisati šest „glava“ ili šest „pisama“ u nizu, iako je vrlo verovatno da se to dogodi kada zaista bacamo novčić. Mi ljudi smo predvidljivo loši u proceni kada je u pitanju nasumičnost.

E kad ovo sve znamo, tvoj je zadatak da napišeš program koji će umesto nas utvrditi koliko puta se šest „glava“ ili šest „pisama“ zaista javlja u jednom nizu od većeg broja bacanja novčića. Tvoj program će tako ovaj eksperiment podeliti u dva dela: u prvom delu generiše listu nasumično dobijenih „pisama“ i „glava“, a u drugom delu proverava ima li i koliko nizova u njemu. Sav taj kod stavi u petlju koja će ovaj eksperiment ponoviti 10.000 puta, tako da utvrdimo koji procenat bačenih novčića sadrži niz od šest „pisama“ ili „glava“. Kao hint, napomenuću da će funkcija random.randint(0, 1) dati vrednost 0 u 50% odsto slučajeva, a vrednost 1 u ostalih 50% slučajeva.

Možeš krenuti od ovog obrasca:

Code:
import random
brojNizova = 0
for brojEksperimenata in range(10000):
    # Kod koji pravi listu od 100 glava/pismo vrednosti.

    # Kod koji proverava postoji li niz od 6 „pisama-glava“.
print('Šanse za niz: %s%%' % (brojNizova / 100))

Naravno, ovo je samo procena, ali 10.000 pokušaja je solidan uzorak.
Ukoliko znaš matematiku, mogao bi da izračunaš procente i uštediš sebi muku pisanja programa. Ali opšte je poznato da su programeri vrlo loši matematičari.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Zadaci za wannabe pythoniste13.12.2019. u 23:16 - pre 52 meseci
Programeri MORAJU da znaju verovatnoću i još neke grane matematike (na primer algebru, logiku i teoriju skupova).
Pošto su bacanja novčića međusobno nezavisni događaj, svako bacanje ima verovatnoću od 1/2 da padne pismo ili glava.

U prvom bacanju u nekom nizu verovatnoća je 1 da će pasti pismo ili glava (siguran događaj), u svakom sledećem bacanju vefrovatnoća da će pasti ista strana kau u prvom je 1/2, pa je verovatnoća da će pasti 6 puta za redom ista strana 1/32 (32=2**5), odnosno u 100 bacanja očekuje se približno tri niza od po šest pisama ili glava (100/32 = 3.125)

Moj profesor programiranja sa faksa je imao običaj da kaže: "Čuvaj se Monte Karla, kako grada, tako i metode".

Ako te zanima verovatnoća, evo jednog malo težeg zadatka sa https://projecteuler.net/ (zadatak 205)
Aca ima 9 četvorostranih kockica za igru (tetraedara) na čijim su stranicama brojevi 1,2,3 i 4
Boban ima 6 šestostranih (normalnih) kockica sa brojevima 1-6 na stranama.

Aca i Boban bacaju istovremeno kockice i pobednik je onaj koji dobije veći zbir.
Koja je verovatnoća da će Aca da pobedi? Dati verovatnoću na 7 decimala.

rešenje je 0.5731441

Zadatak je rangiran sa težinom 15% (zadaci imaju težinu od 5-100% u koracima po 5)
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste14.12.2019. u 02:23 - pre 52 meseci
Ne znam šta moraju, ali eto Sweigart kaže da slabo znaju :)
A završio je i sam computer science.
Inače, deluje mi kao jedna baš zanimljiva personality
pre svega zato što je toliko stvari postavio na svom sajtu besplatno

Zanimljiv ti je taj sajt sa problemima koji si linkovao. Vidim prvi problem rešilo skoro milion ljudi. Međutim, kako dalje, rapidno opada broj.

Inače, bacao novčić po 100 puta i evo rezultata iz tri serije:

1 glava u nizu - 12
1 pismo u nizu - 5
2 glave u nizu - 7
2 pisma u nizu - 12
3 glave u nizu - 4
3 pisma u nizu - 6
4 glave u nizu - 1
5 pisama u nizu - 1
6 pisama u nizu - 1
----------------------
1 glava u nizu - 17
1 pismo u nizu - 14
2 glave u nizu - 5
2 pisma u nizu - 11
3 glave u nizu - 3
3 pisma u nizu - 1
4 glave u nizu - 1
5 pisama u nizu - 1
8 glava u nizu - 1
8 pisama u nizu - 1
-----------------------
1 glava u nizu - 13
1 pismo u nizu - 10
2 glave u nizu - 6
2 pisma u nizu - 8
3 glave u nizu - 2
3 pisma u nizu - 5
4 glave u nizu - 3
4 pisma u nizu - 1
5 pisama u nizu - 1
7 glava u nizu - 1
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste15.12.2019. u 03:41 - pre 52 meseci
Dok čekamo odgovore ambicioznih pythonista, imam jedno pitanje.
Danas na Sololearn challenge jedno od pitanja je bilo sledeće:

x = [[0], [1]]
print(len('a'.join(list(map(str, x)))))

rešenje je 7

Međutim, meni nikako nije jasno kakva je to magija u pitanju.
Jel može neko da razjasni misteriju?

Pre svega mi ovo "map" zadaje problem, jer ne razumem šta ovde radi. Gledao nek primere i objašnjenje, ali nije mnogo pomoglo u ovom slučaju.
 
Odgovor na temu

tuxserbia
Oleg Vučković
urandom
/dev/null
Niš

Član broj: 4094
Poruke: 867

Jabber: tuxserbia@elitesecurity.org
ICQ: 65355850
Sajt: 127.0.0.1


+112 Profil

icon Re: Zadaci za wannabe pythoniste15.12.2019. u 11:32 - pre 52 meseci
Možda te zbunjuju duple, namerno stavljene uglaste zagrade?

Probaj primer bez njih

Code:

x = [0, 1]


Ako te zbunjuje kompletna linija, uvek možeš da razdvojiš funkcije koje pozivaš

Code:


x = [[0], [1]]
print(len('a'.join(list(map(str, x)))))


x = [[0], [1]]
print('a'.join(list(map(str, x))))


x = [[0], [1]]
print(list(map(str, x)))


Kako se dele racunarski programi?
Na bagovite (sa greskama) i ispravne (bez gresaka). Ovi drugi su hipoteticki.
***GPL-ovano by @Shadowed

"Ja za email koristim outlook express u virtualnoj mašini, tako da s te strane nijedan linux nije
dorastao XP-u." - pisac
 
Odgovor na temu

Panta_
Aleksandar Pantić
Kragujevac

Član broj: 214959
Poruke: 790



+162 Profil

icon Re: Zadaci za wannabe pythoniste15.12.2019. u 11:41 - pre 52 meseci
Citat:
Pre svega mi ovo "map" zadaje problem, jer ne razumem šta ovde radi.

Izvršava str za svaku stavku iz liste x, npr. str(x[0]), str(x[1]).

Code:

def add(x, y):
    return x + y

list(map(add, [1, 2, 3], [4, 5, 6]))
[5, 7, 9]

list(map(lambda x, y: x+y, [1, 2, 3], [4, 5, 6]))
[5, 7, 9]
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Zadaci za wannabe pythoniste15.12.2019. u 11:55 - pre 52 meseci
Koliko je python pozajmio iz funkcionalnog ptogramiranja:

Code:

{- x = [[0], [1]]
print(len('a'.join(list(map(str, x))))) -}
main = do
  let x = [[0],[1]]
  print $ concat $ "a":map show x

 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Zadaci za wannabe pythoniste15.12.2019. u 12:20 - pre 52 meseci
Samo sto Haskell to moze na vise nacina:
Code:

main = do
  let x = [[0],[1]]
  (print.length.concat) $ "a":map show x


ili ovako:

Code:

main = do
  let x = [[0],[1]]
  (print.length) $ 'a':(concat $ map show x)


 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste15.12.2019. u 16:41 - pre 52 meseci
Citat:
tuxserbia:
Možda te zbunjuju duple, namerno stavljene uglaste zagrade?

Probaj primer bez njih
x = [0, 1]

Razumeo sam da se radi o listi koja u sebi ima dve liste od jednog člana.
Ako uklonim zagrade, onda je to jedna lista [0, 1] i rezultat je drugačiji:

0a1
len = 3

Citat:

Ako te zbunjuje kompletna linija, uvek možeš da razdvojiš funkcije koje pozivaš

Odlična ideja. Hvala!

Code:

x = [[0], [1]]
print(list(map(str, x)))

>>> ['[0]', '[1]']


Code:

print('a'.join(list(map(str, x))))

>>> [0]a[1]


i na kraju:

Code:

print(len('a'.join(list(map(str, x)))))

>>>7


Pa jel moguće da ga na kraju čita kao string '[0]a[1]' koji ima 7 karaktera!?




 
Odgovor na temu

sneguljko
Sneguljko doo

Član broj: 341399
Poruke: 51
*.dynamic.vipmobile.rs.

Sajt: https://sneguljko.com


+6 Profil

icon Re: Zadaci za wannabe pythoniste15.12.2019. u 19:05 - pre 52 meseci
Gledam ovo pa me sramota koliko malo znam. Tri dana sam učio payton, dobio online sertifikat.... i MISLIO SAM da nešto znam. Bruka. Moram još da bistrim vodu. Sad ću jednu fuka vruću pa da se bacim na video tutorijale ili pdf na srpskom, videću. :) :(
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste16.12.2019. u 01:51 - pre 52 meseci
Ako ti je za utehu, nisi jedini.
Ali dan po dan, naučićemo i nas dvojica nešto. :)

Evo vežbe radi jedan ne suviše težak zadatak:

Napravi program u kojem korisnik prvo unese tri integera, a potom ih program ispiše sortirane po veličini (od najmanjeg do najvećeg). Koristi min i max funkciju da nađeš najmanji i najveći broj. Srednju vrednost ćeš utvrditi računajući zbir sve tri vrednosti i onda od njega oduzeti najmanju i najveću.

Eto, probaj pa da vidimo kakva ćemo rešenja pronaći.

Ako zapne, a neće, ja sam moje rešenje stavio ovde:

[Ovu poruku je menjao a1234567 dana 16.12.2019. u 03:27 GMT+1]
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Zadaci za wannabe pythoniste16.12.2019. u 07:30 - pre 52 meseci
Hm malo mi je to glupo da prvo racunas zbir 3 vrednosti a onda da oduzimas dve. Zar srednja vrednost nije sum(niz)/len niz?
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 297
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste16.12.2019. u 08:09 - pre 52 meseci
Koliko ja razumem, tvojim metodom ćemo dobiti srednju vrednost

4 + 7 + 8 = 19 / 3 = 6.3333

a nama treba srednji broj po veličini, dakle 7
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Zadaci za wannabe pythoniste16.12.2019. u 08:21 - pre 52 meseci
ako znas najmanji i najveci preostali je srednji, ne treba ti tu nikakva matematika...
 
Odgovor na temu

sneguljko
Sneguljko doo

Član broj: 341399
Poruke: 51
*.dynamic.vipmobile.rs.

Sajt: https://sneguljko.com


+6 Profil

icon Re: Zadaci za wannabe pythoniste16.12.2019. u 08:39 - pre 52 meseci
brano malo si zabrazdio, to je aritmetička sredina a ne traženi broj.
 
Odgovor na temu

sneguljko
Sneguljko doo

Član broj: 341399
Poruke: 51
*.dynamic.vipmobile.rs.

Sajt: https://sneguljko.com


+6 Profil

icon Re: Zadaci za wannabe pythoniste16.12.2019. u 08:59 - pre 52 meseci
Rešio sam problem na identičan način :) Idemo nešto teže.
 
Odgovor na temu

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

Strane: 1 2 3 4 5 6 ... Dalje > >>

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

Postavi temu Odgovori

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