Programiranje

Python programiranje kao hobi

Bobobo-bo Bo-bobo sub 22.10.2016 21:19

Dio koda koji si naveo je prekratak da se detektira što nije u redu. Provjeri da li je problem u zapisivanju konfiguracije u "Config.wtf" - datoteku si otvorio s mode="r+", ali je nisi zatvorio prije nego si je opet otvorio s mode="w". Pokušaj se držati ovakvog načina rada s datotekama:

 

Čitanje:

with open('Config.wtf') as config_file:  # mode="r" je default
    lines = config_file.readlines()

 

Pisanje:

with open('Config.wtf', 'w') as newfile:
    newfile.write(string)

 

Ako ovo ne pomaže, pogledaj što radi vraćaju self.Entry_account_name_to_play.get() i self.Account_name_to_play_changing_config(lines,names).

cale ned 23.10.2016 14:45

Zatvaranje datoteke mi nije rijesilo problem.

self.Entry_account_name_to_play.get() mi vraca puno ime,cak i kad sam print(self.Entry.....get()) stavio i prije i poslije """self.Turn_on.base["TBC-account"]""" koda.

 

A ne znam di bi jos mogao stvoriti problem,u kojem dijelu koda. Jer prije toga,samo postavljam GUI, i jedino sto radim s bazom osim sto je otvorim je da  vadim podatke iz nje.

 

 

Jedino sto sam primjetio,da tocno do indeksa 6 dode i poslije toga vise kao da ne sprema ostatak podatka.

Takoder kada spremim u bazu i print(self.Turn_on.base["TBC-account"]) rezultat na zaslonu je ispravan sve dok ne zatvorim program.Kada ponovo upalim program on izgubi podatke od indeksa 6 pa nadalje.

 

 

 

SOLVED: Samo sto ne razumijem "Zasto". Imam dvije skripte,jedna je bio glavni program a druga je bila Client skripta,koja je komunicirala sa serverom.Problem je bio kad bi kod izasao iz glavnog programa,na gumb [X] na glavnom prozoru,client skripta bi ostala raditi i zbog toga ne bi spremao podatke u cijelosti.

 

Samo sam dodao ovaj kod:

self.master.protocol("WM_DELETE_WINDOW",self.Quit)

 

def Quit(self):
  self.master.destroy()
  self.master.quit()

  self.Client.Socket_client.close()

somakuna uto 27.12.2016 22:00

Python mi je stvarno divan.. radio sam sebi neke programcice ali najvevi mi je problem sto je tesko koncipirati GUI npr preko tkintera.

Da li je netko vezao python s nekom sql bazom ili mysqlom (ako se uopxe moze s mysqlom)

husarim sri 28.12.2016 18:51

ovo je super tema ali

knjige mi jednostavno idu na zivce kad moram uciti iz njih :)

 

pa sam pregledao youtube i tamo hrpee sveg i svaceg pa google isti vrag

 

e sad da pitam ,, da li ima koji jednostavnim jeziku objasnjen python

kao  od pocetka pa dalje

vidio sam da ima udemi neki tutorijal ali za 2 ver

 

moze pomoc ??

koji video tut (youtube il komericijalni s torrenata:) )  da si skinem i pocmem polagano uciti

onako kao hobi ?

 

nikakvi ciljevi neg samo hobi

hvala puno

Bobobo-bo Bo-bobo čet 29.12.2016 22:45
somakuna kaže...
Python mi je stvarno divan.. radio sam sebi neke programcice ali najvevi mi je problem sto je tesko koncipirati GUI npr preko tkintera.

Da li je netko vezao python s nekom sql bazom ili mysqlom (ako se uopxe moze s mysqlom)

 

Pomoću Djanga sam se spajao na PostgreSQL i MSSQL. Out-of-the-box je podržan PostgreSQL, MySQL, SQLite i Oracle, dok mi je za MSSQL trebao 3rd-party backend.

 

Ako ti se ne koristi Django koristi SQLAlchemy.

TiMi79 pon 9.1.2017 12:10
husarim kaže...

ovo je super tema ali

knjige mi jednostavno idu na zivce kad moram uciti iz njih :)

 

pa sam pregledao youtube i tamo hrpee sveg i svaceg pa google isti vrag

 

e sad da pitam ,, da li ima koji jednostavnim jeziku objasnjen python

kao  od pocetka pa dalje

vidio sam da ima udemi neki tutorijal ali za 2 ver

 

moze pomoc ??

koji video tut (youtube il komericijalni s torrenata:) )  da si skinem i pocmem polagano uciti

onako kao hobi ?

 

nikakvi ciljevi neg samo hobi

hvala puno

 Evo i ja počeo malo istraživat Python...totalna njubara općenito u programiranju, i tražio sam hrpu tutorijala po youtube-u...codecademy i sl., ali ništa nije ni do koljena za http://cleverprogrammer.com/

Momak jednostavno zna objasnit, a i na njegovoj web stranici možeš odma i počet kodirat dok ti objašnjava. Isto tako možeš uspostaviti i izravnu vezu sa njim pomoču ugrađenog chata na web stranici (momak je iz Chicago-a).

Isto tako dok gledam njegove videe upotrebljavam repl.it tako da ne moraš niti instalirat python (koristim Operu browser zato šta ima odličnu funkciju stavljana videa u prvi plan bez obzira u kojem si tabu i programu).

Ponavljam ova stranica je za totalne njubare u Pythonu i po meni najbolja.

cale sri 15.2.2017 20:21

Izrada web servera.

 

 

Nisam nikad pokusavao i ne razumijem najbolje. Proucavao sam sockete i zagrebao sam po povrsini HTTP protokola. Ono sto sam shvatio je da je to samo striktno odredeni nacin pomocu kojeg se  moze komunicirati, nekakav standard koji se morao odrediti da bi komunikacija mogla biti sto dostupnija. Bio sam gledao kako izraditi web server pomocu pythona i naisao sam na pojam "Django" i "web aplikacija". I to sada bas ne razumijem. Recimo npr ja sam napravio ovakav kod:

 

class HTML_Server(object):

def __init__(self,HOST,PORT):

self.SocketServer=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.SocketServer.bind((HOST,PORT))





def ReadingLinesOfHTMLcode(self,Stringname):

FileHTML = open("D:/Programming/HTML_NOTEPAD++SKRIPTE/"+Stringname,"r")
StringHTML = FileHTML.read()

LinesOfHTMLcode = []

for line in StringHTML.split(sep="\n"):

line=line.strip()

if len(line)>0:
LinesOfHTMLcode.append(line)

return LinesOfHTMLcode



def SendResponse(self,clientSocket):

data=clientSocket.recv(5000)

data=data.decode()

if ("file" in data):
LinesOfHTMLcode=self.ReadingLinesOfHTMLcode("prvi.html")
else:
LinesOfHTMLcode=self.ReadingLinesOfHTMLcode("testskripta.html")


response="HTTP/1.1 200 OK"
response+="\n"
response+="\n"



for line in LinesOfHTMLcode:
response+=line
response+="\n"

print("Response sent")
clientSocket.sendall(response.encode())
clientSocket.close()



def Run(self):
while(True):
self.SocketServer.listen()

Client,client_address=self.SocketServer.accept()

print(client_address)



newClient=Thread(target=self.SendResponse,args=(Client,))
newClient.daemon=True
newClient.start()










Objekt=HTML_Server("192.168.5.14",80)




Objekt.Run()

Napravio sam dvije html skripte koje sam citao liniju po linju onda sam to poslao natrag browseru.

U principu sve radi normalno. No ne mogu shvatiti: 

Da li je ovo sad sto sam ja napravio "web aplikacija" ?

 

 

Bobobo-bo Bo-bobo sri 15.2.2017 23:34

Ovo nije web aplikacija jer je sadržaj statičan. Klijent koji se spaja na ovaj server može pogledati dva preddefinirana web dokumenta i to je sve. Da bi ovo postala "web aplikacija" trebao bi korisnicima omogućiti promjenu sadržaja: pisanje komentara, upload novih ili ažuriranje postojećih stranica, itd.

 

Inače, za ozbiljnu Python web aplikaciju nemoj koristiti ovaj tvoj web server iz kućne radinosti. Napiši WSGI aplikaciju ("ručno" ili pomoću nekog od Pythonovih web frameworka) pa je vrti reverse proxy i WSGI server:

 

1. Klijent se spaja na reverse proxy (Nginx, Apache). Ako se traži statički sadržaj (slika/ikona, .css, .js) web server odrađuje zahtjev i završava obradu.

2. Reverse proxy se spaja na WSGI server (uWSGI, Gunicorn) koji pokreće WSGI aplikaciju i prosljeđuje joj klijentov zahtjev.

3. WSGI aplikacija generira dinamički sadržaj koji se vraća klijentu.

 

 

maki023 čet 9.3.2017 21:05

Jel može netko pomoć kako ispisati iz riječnika iste ključeve.

Primjer:

rijecnik = {"111":["aa","8"], "222":["bb","10"], "111":["cc","10"]}

for key,values in rijecnik.items():

    print(key,values)

 

Dobijem:

111 ['cc', '10']
222 ['bb', '10']

 

Dali ima neko riješenje za printanje duplih ključeva?

 

mariik čet 9.3.2017 21:30
maki023 kaže...

Jel može netko pomoć kako ispisati iz riječnika iste ključeve.

Primjer:

rijecnik = {"111":["aa","8"], "222":["bb","10"], "111":["cc","10"]}

for key,values in rijecnik.items():

    print(key,values)

 

Dobijem:

111 ['cc', '10']
222 ['bb', '10']

 

Dali ima neko riješenje za printanje duplih ključeva?

 

 Ne postoje "dupli ključevi".

Izvrši print rijecnik, pa bi ti tribalo bit jasno šta se događa...

ivsim sub 1.4.2017 00:54

Pozz,

napravio sam program u pythonu koji kombinira brojeve dok ne dobije broj koji sam zadao u inputu (npr. Broj koji zadam = 1500 i python ga mora pogoditi). Sada me zanima da li je moguce taj program koristiti i za otkrivanje zaboravljenih sifri (npr. mape koje su mi zakljucane koriste brojeve kao lozinku(npr da on te brojeve koje je kombinirao unosi kao sifru za pristup mapi dok je ne 'pogodi')) i ako da na koji način.

Unaprijed hvala

Bobobo-bo Bo-bobo sri 24.5.2017 16:13
black&blue kaže...
Kako bi najlakse napravio blok za belot u pythonu?

Najlakše je ovako:

 

mi_total = vi_total = 0

while mi_total < 501 and vi_total < 501:
    mi, vi = input('Unesi rezultat:').split()
    mi_total += int(mi)
    vi_total += int(vi)
    print('Total: {} {}'.format(mi_total, vi_total))

tLeon pet 26.5.2017 00:21
black&blue kaže...

hvala. a kako bi još napisao u programu da nakon što netko prvi izađe iznad 501 program napiše pobjednici su "mi" ili "vi" 

if mi_total>vi_total:
    print("Pobjednici: mi")
elif mi_total<vi_total:
    print("Pobjednici: vi")
else:
    print("Nerjeseno")

Folija pet 17.11.2017 21:43

Pozdrav, 

 

imam za zadacu napraviti u pythonu program koji ce sam dijeliti rijeci

 

npr:

 

Danas je pone-

djeljak.

 

Kad kazem zadacu, mislim vise tipa ako to napravim, prolazim odmah i kolokvij. problem je sto nisam ni blizu tog znanja posto smo tek imali par sati u pythonu a na googlu nemam srece zasada.
ako itko ima kakve info, literature ili tutoriale za to, bio bih vrlo zahvalan

unknown sub 30.12.2017 10:39

Pozdrav!

Trebao bi pomoć oko istalacije standardnih biblioteka za "scientific computing"

Imam verziju 3.6 pythona i pokušavam instalirati scipy, numpy i ostale, ali problem je u scipy kada pokušam instalirati sa https://sourceforge.net/projects/scipy/files/scipy/Latest/  nemaju scipy za najnoviju verziju već za 3.4. kada pokušam instalirati 3.4 na 3.6 ne da mi.
Ima li netko možda savjet?

TiMi79 uto 23.1.2018 13:57

Igram se kao početnik u pythonu pa me zanima nešto u vezi indexiranja

npr imam ovaj kod:

 

product = "Ball | 10$ | New"

name = product[0:product.index("|")]

print(name)

price = product[product.index("|")+2:-product.index("|")]

print(price)

condition = product[-product.index("|")+2:]

print(condition)

 

Izbaci mi lijepo:  

Ball
10$
New

 

ali ako napravim:

 

product = "Smartphone | 200$ | New"

name = product[0:product.index("|")]

print(name)

price = product[product.index("|")+2:-product.index("|")]

print(price)

condition = product[-product.index("|")+2:]

print(condition)

 

izbaci mi:

Smartphone

00$ | New

 

Po nekoj logici bi trebao indexirati "|" ali neće, pa me zanima da li je to neki bug ili nešto radim krivo?

 

Znam da je ovo "ružna" metoda, ali kao početnika me zanima samo zašto je to tako?

Hvala unaprijed na odgovoru

Bobobo-bo Bo-bobo sri 24.1.2018 16:24

Radiš krivo, samo se potrefilo da program dobro radi kad je prva riječ za točno jedan znak dulja od zadnje riječi.

 

Program nigdje ne mijenja varijablu product pa je izraz product.index("|") uvijek jednak 5. Zbog toga je prva verzija "točna" jer

  * product[5+2:-5] (=product[7: -5] u price stavlja "10$"

  * product[-5 + 2:] (=product[-3:]) u condition stavlja "New"

 

U drugom slučaju product.index("|") iznosi 11. Program odjednom ne radi dobro jer

  * product[11+2:-11] (=product[13: -11] u price stavlja prazan string

  * product[-11 + 2:] (=product[-9:]) u condition stavlja "00$ | New"

 

Najjednostavnije rješenje je koristiti ugrađenu metodu split za razdvajanje stringa po separatoru:

product = "Smartphone | 200$ | New"

name, price, condition = product.split(' | ')

print(name)
print(price)
print(condition)

 

 

 

fredii čet 4.2.2021 18:32

Meni prave problem funckije koje korisnik sam definira. Mučim se već mjesecima i nikako da mi sjedne. Neke funkcije samo definiram, ako su jednostavne, ali čim je nešto kompleksnije, evo problema.

 

Pritom muči me pitanje, zašto negdje samo koriste print, a negdje return: 

 

def adder(x,y,z):

 

print("sum:",x+y+z)

 

adder(10,12,13)

 

zašto ovdje nema return? 

 

Molio bih neko objašnjenje funkcija na način, totalno jednostavan, a da pokrije sve vezano za njih. Naprosto sam već očajan, za popizditi.

 

Inače radim sa Pandas dominantno, pa bih htio napisati funkciju koja će provjeriti cijelu tablicu, preskočiti object, float pretvoriti u int. Šta god da probam ne ide nikako.