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 7 8 ... Dalje > >>

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Deunan

Član broj: 338178
Poruke: 76
*.dynamic.isp.telekom.rs.



+21 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 14:08 - pre 18 meseci
Citat:
sneguljko:
vi ste krejzi, meni mozak ne radi tako napredno. Mora da ste napredni.

------------------

Jel može sad neko da kaže, šta mi treba da se program hello world izvrši u prozoru a ne u terminalu. Jel komplikovano?

Treba ti neki compiler. Ja volim pyinstaller. Pyinstaller koristim na windowsu, nisam isprobavao na linuxu, ali bi trebalo da radi potpuno isto. Na kojem ga sistemu kompajliras, na tom ce da radi.

Ako koristis python 3.8, pyinstaller iz pip repo-a ima neki bug, skini ga ovako:
Code:
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz

Posle toga:
Code:
pyinstaller myapp.py --onefile

Pyinstaller ce sve da spakuje u jedan fajl u "dist" folderu (kreirace sam). U tom fajlu ti je ceo program i sve python skripte za izvrsenje. Ne moras da instaliras python na drugom sistemu da bi pokrenuo program. Kreirace i fajl "myapp.spec" gde mozes da podesavas: ikonu programa, fajlove koje da includuje...

Da bi imao graficke elemente (dugmice, input, select...), treba ti neka GUI biblioteka. Ja volim PyQt, imas jos Tkinter, Kiwi, ... (moraces sam da odlucis koja ti odgovara. Kao da nekog pitas sta je bolje: react.js, vue.js, angular...). Posto je Tkinter vec deo python-a, najbolje pocni malo sa njim. Recimo, kreiraj fajl myapp.py i kopiraj kod:
Code:
from tkinter import *

window = Tk()

window.title("Elitesecurity.org")
window.geometry('350x200')

lbl = Label(window, text="Hello")
lbl.grid(column=0, row=0)

def clicked():
    lbl.configure(text="Button was clicked !!")

btn = Button(window, text="Click Me", command=clicked)
btn.grid(column=1, row=0)

window.mainloop()

I pokreni. Kod je prilicno jednostavan, ali ako si ikad radio neki front end (javascript, android sdk, swift, kotlin...) vrlo lako bi trebalo da razumes kako funkcionise. Kad budes zavrsio, zapakuj ga:
Code:
pyinstaller myapp.py --onefile

 
Odgovor na temu

gglavni

Član broj: 341562
Poruke: 11
*.dynamic.vipmobile.rs.



+1 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 16:13 - pre 18 meseci
@Deunan



Izvinjavam se, promenio sam nik jer sam imao problem, zaboravio sam mail, ja sam sneguljko.
Prikačeni fajlovi
 
Odgovor na temu

Deunan

Član broj: 338178
Poruke: 76
*.dynamic.isp.telekom.rs.



+21 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 16:48 - pre 18 meseci
Kad hoces da instaliras python pakete ne ulazis u python shell. Samo otvoris cmd ili powershell i kucas.
"pip" je packet manager, kao composer za php, ili npm za js.
Vrati se jos malo na pocetne stvari, ne vredi preskakati osnove, samo ces da se pogubis. Znam da nekad zelis samo da "krenes da radis", ali cesto to oduzima vise vremena nego da se uci redom. Sve je to jednostavno.

Tkinter mozes da koristis bez instaliranja ako te interesuju desktop aplikacije. Prekopiraj gornju skriptu i pokreni program kao i do sad sto si radio.
 
Odgovor na temu

gglavni

Član broj: 341562
Poruke: 11
*.dynamic.vipmobile.rs.



+1 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 17:02 - pre 18 meseci
Hvala. Nisam dodao putanju u PATH, pip mi je već bio instaliran, ali ko što kažem problem je bio path do njega.

Sad ću da probam program.

---

radi ovaj prozorčić. Ali me nervira pyinstaller ovaj, trebao bi hello world da convertuje u exe valjda... Neće. a i "auto py to exe" neće da se instalira, izgleda da je problem verzija 3.8 pythona, pa još nisu sredili, možda sam trebao da instaliram stariju verziju pythona.

[Ovu poruku je menjao gglavni dana 17.12.2019. u 18:16 GMT+1]
 
Odgovor na temu

gglavni

Član broj: 341562
Poruke: 11
*.dynamic.vipmobile.rs.



+1 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 19:22 - pre 18 meseci
I šta je sad ovo??? Ne može običan hello world da kompajlira...

evo slike, gde grešim, pomagajte.

Prikačeni fajlovi
 
Odgovor na temu

Deunan

Član broj: 338178
Poruke: 76
*.dynamic.isp.telekom.rs.



+21 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 20:54 - pre 18 meseci
Zasto koristis python 2.7?
To je skoro drugi jezik i bukvalno se "penzionise" za 14 dana . Debagovati to nema nikakvog smisla.

 
Odgovor na temu

gglavni

Član broj: 341562
Poruke: 11
*.dynamic.vipmobile.rs.



+1 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 21:12 - pre 18 meseci
na 3.8 mi još gore radi. Probaću ponovo 3.8 ali izlaze mi silne crvene greške kad nešto kompajliram.
---
nisam zabeležio koje, ali probao sam ovako, instalirao sam pyinstaller i to je dobro prošlo, a onda 'pyinstaller helloworld.py' iz komandne linije i krene da kompajlira i silne greške, probaću sutra za danas je dosta.
 
Odgovor na temu

Deunan

Član broj: 338178
Poruke: 76
*.dynamic.isp.telekom.rs.



+21 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 21:44 - pre 18 meseci
Kako si instalirao pyinstaller?
Ako si instalirao standardno "pip install pyinstaller", ima neki bug.
Moraces da uninstaliras "pip uninstall pyinstaller" pa da instaliras ovako:
Code:
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz


P.S. Uostalom, sto ne vrati na python 3.7, gde nadje 2.7. Ima 10 godina.

[Ovu poruku je menjao Deunan dana 17.12.2019. u 22:57 GMT+1]
 
Odgovor na temu

gglavni

Član broj: 341562
Poruke: 11
*.dynamic.vipmobile.rs.



+1 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 21:55 - pre 18 meseci
Evo sad probam tako kao što si rekao. Javljam za koji minut.
----

RADI !!!

kad udjem u dist folder onda radi. To je izgleda ceo program a ne samo jedan fajl. Probao sam da ga prebacim van foldera, onda ne radi. Ukapirao sam suštinu.



p.s. Deunan imaš piće od mene. A svakako će koristiti svima, po jedan dinar svako. :)

p.s.2 Hebi ga vratih na 2.7 kao prosto program manje zahtevan, a ono karambol. Valjda će da isprave grešku na default instaliranom pyinstalleru, inače mora svako da gituje.
Prikačeni fajlovi
 
Odgovor na temu

Deunan

Član broj: 338178
Poruke: 76
*.dynamic.isp.telekom.rs.



+21 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 22:02 - pre 18 meseci
Ako hoces jedan fajl moras da uneses --onefile:
Code:
pyinstaller myapp.py --onefile

 
Odgovor na temu

gglavni

Član broj: 341562
Poruke: 11
*.dynamic.vipmobile.rs.



+1 Profil

icon Re: Zadaci za wannabe pythoniste17.12.2019. u 22:09 - pre 18 meseci
E strava. Čovek si nema dalje.
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 292
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste19.12.2019. u 08:48 - pre 18 meseci
Pošto je sve instalirano što se instalirati može, da se vratimo na zadatak 4, koji je još uvek pending

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.

Ja sam sa ovo malo znanja uspeo da napravim prvi korak, to jest da izlistam prvih 100 bacanja:

Code:
import random

print('Koliko puta da bacim novčić?')
while True:
    odgovor = input()
    if odgovor.isdecimal():
        brojBacanja = int(odgovor)
        break
for i in range (1, brojBacanja):
    if random.randint(0, 1) == 0:
        baci = '1glava'
    else:
        baci = '0pismo'
    print(baci[0], end='')


i dobijem ovaj ispis na ekranu:

Koliko puta da bacim novčić?
100
011011011111111010011101101011011111000000001000110111011110010010010110100101111101110001101001000


E sad kako dalje? Kako da u ovom nizu od 100 bacanja izbrojim nizove od 6 ponavljanja!?
 
Odgovor na temu

gglavni

Član broj: 341562
Poruke: 11
*.dynamic.vipmobile.rs.



+1 Profil

icon Re: Zadaci za wannabe pythoniste19.12.2019. u 11:53 - pre 18 meseci
lako je tebi da čitaš zadatke iz knjiga koji imaju rešenja i onda nas ovde tovariš. Ja još nisam ni junior ja sam jaje, a dal sam mućak ili plodonosno, videćemo za koji mesec kad malo proučim još knjige. Zeza me to što nemam strpljenje pa učim i C++ istovremeno.
 
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 pythoniste19.12.2019. u 12:47 - pre 18 meseci
Code:

print (string.count(‘000000’))
print (string.count(‘111111’))



Sad ti reši gde je string.
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

a1234567

Član broj: 46801
Poruke: 292
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste19.12.2019. u 16:39 - pre 18 meseci
Hvala tuxserbia na hintu.
Rešio.

Code:
import random

print('Koliko puta da bacim novčić?')
while True:
    odgovor = input()
    if odgovor.isdecimal():
        brojBacanja = int(odgovor)
        break

with open('pismo_glava.txt', 'a+') as file:
    for i in range (1, brojBacanja):
        if random.randint(0, 1) == 0:
            baci = '1'
            file.write(baci)
        else:
            baci = '0'
            file.write(baci)
file.close()

with open('pismo_glava.txt', 'r') as file:
    data = file.read()

print('Broj glava je:', data.count('000000'))
print('Broj pisama je:', data.count('111111'))


Na ekranu dobijem ovaj ispis:

Koliko puta da bacim novčić?
100000
Broj glava je: 800
Broj pisama je: 796


Ovaj kod bi sigurno mogao u tri reda da se spakuje.
Ali meni apsolutnom početniku srce puno i ovako kad sam ga rešio :)))
 
Odgovor na temu

Deunan

Član broj: 338178
Poruke: 76
*.dynamic.isp.telekom.rs.



+21 Profil

icon Re: Zadaci za wannabe pythoniste19.12.2019. u 18:26 - pre 18 meseci
Nema potrebe da kod pakujes u 2, 3... reda. Mnogo je vaznije da je razumljiv i efikasan.
Ti si verovatno zapisivao u fajl zato sto si to prethodno naucio :) Sto neko rece, "ako jedino znas da koristis cekic, svaki problem ti izgleda ko ekser".
Evo jedno resenje koje ce da razume i neko ko ne poznaje python, a koristi samo jednu "for" petlju:
Code:
import random

brojNizova = 0          # broj nizova od 6 istih
trenutniStatus = 0      # prethodni bacen status, pismo ili glava (0 ili 1)
brojPonavljanja = 0

for i in range(10000):
    rand = random.randint(0, 1)
    if trenutniStatus == rand:
        brojPonavljanja += 1
    else:
        trenutniStatus = rand
        brojPonavljanja = 1

    if brojPonavljanja == 6:
        brojNizova += 1
        brojPonavljanja = 0

print(f"Broj nizova: {brojNizova}")

 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 292
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste20.12.2019. u 01:33 - pre 18 meseci
Hvala na komentaru.

Zapisivao sam u fajl zato što nisam znao kako da posle te petnje dobijeni niz nula i jedinica stavim u neku varijablu,
pa da prebrojavam nizove sa count.
Bogami sam se i oko tog zapisivanja namučio dok nisam prokljuvio, ali sam tako valjda nešto i naučio.

Ono što mene buni kod tvog koda je da mi se čini da on broji samo niz od 6 ponavljanja, ili nula ili jedinica,
a ne pravi razliku koliko jednih koliko drugih.

Druga stvar o kojoj sam počeo da razmišljam kad sam napravio ovaj moj kod je kako da ga apdejujem :))
Naime, ako imam string
0011101011110000000101011111000111111111110000011
kako da pronađem koliko u njemu ima nizova od recimo 2, 3, 4, 5 i 6 istih karaktera?

Naravno, mogao bih sa
print('Broj glava je:', data.count('00'))
print('Broj glava je:', data.count('000'))
print('Broj glava je:', data.count('0000'))
print('Broj glava je:', data.count('00000'))

pa isto za jedinice, ali mora da ima neke elegantnije rešenje.
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 292
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste20.12.2019. u 08:03 - pre 18 meseci
Moram da se podelim događaj

Danas naiđem na rečenicu

“MAN IS A ROPE
STRETCHED
BETWEEN THE
ANIMAL AND
THE SUPERMAN –
A ROPE OVER
AN ABYSS.”
Friedrich Nietzsche, Thus Spoke Zarathustra

koja mi treba, ali napisana redovno, a ne velikim slovima.
Ništa, šta ću, otvorim dokument i krenem da je prekucam. Posle prve reči zastanem i "programer" u glavi mi kaže... alo, prijatelju, šta to radiš!? pa jesmo već zaboravili na x.lower()!

I konvertujem je programski. Niko srećniji od mene, kez od uveta do uveta.

Posle pogledam, ima i funkcija capitalize. Sad sam i nju naučio.
Svakog dana u svakom pogledu...
 
Odgovor na temu

Panta_
Aleksandar Pantić
Kragujevac

Član broj: 214959
Poruke: 721



+126 Profil

icon Re: Zadaci za wannabe pythoniste20.12.2019. u 09:51 - pre 18 meseci
Citat:
Naime, ako imam string
0011101011110000000101011111000111111111110000011
kako da pronađem koliko u njemu ima nizova od recimo 2, 3, 4, 5 i 6 istih karaktera?

Code:
for i in range(2, 7):
    print(f"{'0' * i} = {'0011101011110000000101011111000111111111110000011'.count('0' * i)}")

00 = 7
000 = 4
0000 = 2
00000 = 2
000000 = 1
 
Odgovor na temu

a1234567

Član broj: 46801
Poruke: 292
136.228.174.*



+3 Profil

icon Re: Zadaci za wannabe pythoniste20.12.2019. u 14:51 - pre 18 meseci
Panto, samo ću reći - magija

Inače, postavio sam rešenja zadatka broj 4 ovde.
 
Odgovor na temu

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

Strane: < .. 1 2 3 4 5 6 7 8 ... Dalje > >>

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

Postavi temu Odgovori

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