Új hozzászólás Aktív témák
-
Lacces
őstag
Sziasztok!
Milyen praktikák, trükkök, kiegészítők, webszerverek, leírás stb. van arra, hogy egy python webalkalmazás (django) sebességét megnöveljük?

Főleg a PHP7 közeledtével nálam aktuális a téma, de mivel a matematikai számításokban gyorsabb a python, ezért nála teszem le a voksomat egyelőre. -
Lacces
őstag
:-) Igen, nem rossz objektumokra szétszedni, csak az objektumok összekötése az már egy érdekes dolog.
Ez a könyv amiből tanultam, az alapokat adja meg a programozásra, ami nem rossz, lehet majd megnézem magamnak azt a komolyabbat is amiből te is tanultál. De az objektumokkal való szórakozás, amikor sok van, és azokat összekapcsolni, nah arra talán egy ilyen projekt példa volt, na majd az alapján összeeszkábálom majd szerintem.
Nem rossz nyelv, ez a python, nekem tetszik, bár sosem gondoltam, hogy komolyabban foglalkoznék vele, hobbi szinten nekem tetszik.
Olyan oldal létezik a python alá, mint például a www.codeproject.com ?
Ahol opensource projektek, tutorialok vannak fent? Egy komplett kis alkalmazás elkészítése.Google-el az a baj, hogy beírom, hogy java file manager vagy python file manager code source / tutorial / project, akkor nem igazán ad ki rá értelmes találatot.
Ilyen jó lenne, és főleg olyan, ahol sok objektum-orientált szemlélet van benne.

-
Lacces
őstag
Sziasztok!
Ismét jelentkezem.
Most egy GUI-s feladatot csináltam meg a könyv alapján. Egy kis vonatot rajzol ki, színezve a vagonok, ablakok, arcok.
Első kérdésem, ami talán egyszerűbb:
Tudtok benne kód rövidítést? Esetleg "szebb" kódot? Már kaptam jobb megoldásokat itt a fórumon.Második kérdésem:
Van egy adott light() és egy light34(). Az előbbi az ablak színét feketéről sárgára változtatja. Az utóbbi, a 3. és 4. vagon ablakit változtatja meg.
Ez ügyben a kérdésem: Hogyan lehet azt elérni, hogy, adott indexű ablakokat világítson csak meg?Próbálkoztam vele, de nem jött össze:
light()-ot így módosítani, hogy kap egy index nevű paramétert, ha az f == index, akkor azt az f-et fogja csak módosítani.
def light(self, index):
"felkapcsolja a vagon belső világítását"
for f in self.ablakIndex:
if f==index:
self.canvas_.itemconfigure(f, fill="yellow")
def light34(self):
"ablak színének megváltoztatása a 3.és 4. vagonban"
self.v3.light(1)
self.v4.light(2)És egy másik kérdés is érdekelne, hogyan lehetne, egyszerre több ablak indexét is átadni? Én tömbre gondoltam, vagy numerikus listára. És akkor az elágazás a for ciklusban így nézne ki (light metódusban)
if f in numerikuslista
Bár ezt sem tartom szép megoldásnak...Teljes, működő kód:
# coding: iso-8859-2
from Tkinter import *
def circle(can,x,y,r, colour="white"):
"a <can> vászon egy <r> sugarú kör rajza <x,y> pontban"
can.create_oval(x-r, y-r, x+r, y+r, fill=colour) # kör rajzolása elipszisből
class Application(Tk):
def __init__(self):
#Szülőosztály konstruktora:
Tk.__init__(self)
self.can=Canvas(self, width=475, height=130, bg="white")
self.can.pack(side=TOP, padx=5, pady=5)
Button(self, text="Train", command=self.rajzolas).pack(side=LEFT)
Button(self, text="Hello", command=self.kineznek).pack(side=LEFT)
Button(self, text="Világítás", command=self.light34).pack(side=LEFT)
def rajzolas(self):
"4 vasúti kocsi létrehozása vásznon"
# a vasúti kocsikat a vagon osztályban vannak definiálva
self.v1=vagon(self.can, 10, 30)
self.v2=vagon(self.can, 130,30, "dark green")
self.v3=vagon(self.can, 250,30, "maroon")
self.v4=vagon(self.can, 370, 30, "purple")
def kineznek(self):
"személyek megjelenése bizonyos ablakokban"
self.v1.perso(3) # 1.vagon, 3.ablak
self.v3.perso(1) # 3.vagon, 1.ablak
self.v3.perso(2) # 3.vagon, 2.ablak
self.v4.perso(2) # 4.vagon, 1.ablak
def light34(self):
"ablak színének megváltoztatása a 3.és 4. vagonban"
self.v3.light()
self.v4.light()
class vagon:
# a paramétereket a rajzolás függvényben kapja
# a kosntruktorhoz hozzáadtam a colour paramétert
def __init__(self, canvas_, x, y, colour="navy"):
"egy kis vagon rajza a <canvas> vásznon <x,y> pontban"
# paraméterek tárolása példány-változókban
self.canvas_, self.x, self.y=canvas_, x, y
# alap téglalap rajzolása
canvas_.create_rectangle(x,y, x+95, y+60, fill=colour)
# 3 ablak 25x40 pixel, 5 pixel távolságra
self.ablakIndex=[] # ablak hivatkozásainak tárolása egy lista
for ablak in range(x+5, x+90, 30):
#az ablak index-hez listához (hozzáfűzi) hozzáadja a következő canvas-okat.
self.ablakIndex.append(canvas_.create_rectangle(ablak, y+5, ablak+25, y+40, fill="black"))
# két 12 pixel sugarú kerék
circle(canvas_, x+18, y+73, 12, "gray")
circle(canvas_, x+77, y+73, 12, "gray")
def perso(self, wind):
"egy személy mejelenése a <wind> ablakban"
# minden egyes ablak közepe koordinátájának a kiszámítása:
xm=self.x+wind*30-12
ym=self.y+25
circle(self.canvas_, xm, ym, 10, "pink") #arc
circle(self.canvas_, xm-5, ym-3, 2) #balszem
circle(self.canvas_, xm+5, ym-3, 2) #jobszem
circle(self.canvas_, xm, ym+5, 3) #száj
def light(self):
"felkapcsolja a vagon belső világítását"
for f in self.ablakIndex:
self.canvas_.itemconfigure(f, fill="yellow")
Application().mainloop() -
Lacces
őstag
Aham, most már így értem. Igen, egy csomó dolgot értelmezte félre, és írtam le rosszul, most akkor egy kis pihenés jön.
Igen, így már leesett a zip.
Vagy még jobban:
def inverse(dico):
return dict(zip(dico.values(), dico.keys()))Itt mi a "dict"?
Beírtam ezt a kódot a másik helyett, és elfogadta, de anélkül is elfogadta ha nem volt ott a "dict"És köszönöm a türelmedet!
-
Lacces
őstag
Meg még egy kérdésem, a get()-el kapcsolatban:
for m in words:
dico[m] = dico.get(m, 0) +1
lista = dico.items()Úgy tűnik a szótár használata nem tiszta számomra...
a get() - azt csinálja, hogy megnézi a dico szótárban az "m" kulcshoz tartozó értéket, ha szerepel benne akkor az m-et ad neki (m értéket, ami a "words" aktuális eleme), ha nem, akkor 0-t. Én így tudtam. De miért van ott az a +1 ?
Itt a könyv teljes példájának a kód sorozata:
nFile = raw_input('Kezelendo file neve : ')
fi = open(nFile, 'r')
text = fi.read()
fi.close()
# annak erdekeben, hogy a szoeg szavai konnyen elklulonithetok legyenek, a nem
# betu karaktereket betukozze alakitjuk :?
alpha = "abcdefghijklmnopqrstuvwxyzíéáúóüöÍÉÁűőŰŐÚÓÜÖ"
betuk = '' # a lerehozand uj karakterlanc
for c in text:
c = c.lower() # minden betut kisbetuve alakit
if c in alpha:
betuk = betuk + c
else:
betuk = betuk + ' '
# az eredménystring átalakítása szavak listájává :
words = betuk.split()
# a hisztogram elkészítése :
dico ={}
for m in words:
dico[m] = dico.get(m, 0) +1
lista = dico.items()
# az eredménylista rendezése :
lista.sort()
# kiiratas :
for item in lista:
print item[0], ":", item[1]
-
Lacces
őstag
Aham, igaz
for key in dico - értem, úgy mint a listáknál, ez egy bejárás. Ilyenkor mindig kulcs alapján járja be a szótárt?
dico[key], igen leesett, ami nem más mint a "key" kulcshoz tarotzó értéket írja ki:
dico={'computer':'számítógép'}, akkor ebben az esetben a
print dico[computer] eredménye a számítógép lesz.
Így már eszembe jutott. Még meg kell szokni. Köszönöm szépen!def inverse(dico):
dic_inv={}
for key, value in dico.items()
div_inv[value]=key
return dic_inv
Ebben az esetben, a szótárt úgy kezelem, mint egy objektum. a key az adott elem kulcsa, a value az adott elem értéke. És akkor simán kicseréli a kettőt.A zip-hez szeretnék magyarázatot kérni. Megnéztem angolul, de a fordítással sem értettem meg. Ez összefűzés lenne egyenként? Példákból is így vettem ki.
a dico.values() és dico.keys()-t ismerem.Amúgy erre gondoltál? (hogy a visszatérési érték egy szótár, ami dic_inv a jelen példában) végül is mindegy, az a lényeg, hogy nem a "dico" szótár.
def inverse(dico):
return dic_inv(zip(dico.values(), dico.keys())) -
Lacces
őstag
Sziasztok!
Ez a következő függvény, ami nem mást csinál, mint a kulcs-érték párokat kicseréli.
def inverse(dico):
"egy új szótár létrehozása lépésről lépésre"
dic_inv={}
for key in dico:
item=dico[key]
dic_inv[item]=key
return dic_invEnnél a résznél a dic_inv[item]=key részt nem értem. Ismerem a szótárakat, átnéztem, de valamiért átcsúszok a logikáján.
for key in dico: - kulcs alapján a dico szótárban keres
item=dico[key] - az item változóban a dico kulcsait tárolom.
dic_inv[item]=key - na én itt valamiért úgy értelmezem, hogy dic_inv[dicokey]=key (ami ismét a dico-nak a kulcsai) -
Lacces
őstag
Ismét egy kérdésem van:
Van ez a jó tulajdonsága Pythonnak, hogy objektumokból alkotott objektumot lehet létrehozni. Ami nekem nagyon tetszik. És őszintén szólva nagyon király programozási nyelvnek tartom a Python-t és viccen kívül most kezdem megérteni a .Net és Java-t is nagyjából. Kiváló tanuló nyelv, nekem legalább is.
Viszont azt kérdezném, hogy ez a lehetőség megvalósítható-e C# és Java alatt is? (objektumból alkotott objektum). Így konkrétan példát még nem láttam rá. De az interfész-re gondoltam, de az másról szól. Talán az öröklődés még ami szóba jöhet. De nem emlékszem így vissza. És nem tudom, hogy angolul is hogyan kéne rákeresnem.
doboz=Teglalap()
doboz.sarok=Pont() #Erre a részre gondolokA teljes példakód:
# coding: iso-8859-2
class Pont:
"Egy matematikai pont definíciója"
# Egy Pont objektum létrehozása
p1=Pont()
# Példány attribútomok vagy változok
# Nem kell semmilyen konstruktor stb.
p1.x=3.0
p1.y=4.0
# Objektumokból alkotott Objektum
class Teglalap:
"egy téglalap osztály definicója"
doboz = Teglalap()
doboz.szeles=50.0
doboz.magas=40.0
# Példányváltozó(sarok) egy Pont objektum
doboz.sarok=Pont()
doboz.sarok.x=12.0
doboz.sarok.y=27.0 -
Lacces
őstag
Sziasztok
slicing eljárás, vagy szeletelés a listánál
úgy működik. Pl.: lista[2:6]
hogy a lista elemei közül a 2. 3. 4. 5. indexű elemet vágja ki?A következő példát nem értem, hogy miért van ott a 3-as?
>>> szavak[1:3] = ['saláta']
>>> szavak
['sonka', 'saláta', 'ketchup']Miért nem csak simán szavak[1]=['saláta'] van ott?

-
Lacces
őstag
Sziasztok!
Valaki ért a Komodo Edithez? Hogyan lehet elérni, hogy futtassa a python kódot?
Új hozzászólás Aktív témák
- Beszámítás! Apple Mac Mini M4 16GB 256GB számítógép garanciával, hibátlan működéssel
- Beszámítás! Apple Mac Mini 2020 M1 8GB 512GB számítógép garanciával, hibátlan működéssel
- Beszámítás! Asus ROG Phone 9 256GB mobiltelefon garanciával hibátlan működéssel
- Beszámítás! Dell SE2222H 22 60Hz FHD VA 8ms monitor garanciával hibátlan működéssel
- Beszámítás! Asus VZ239HE-W White 75Hz FHD IPS 5ms monitor garanciával hibátlan működéssel
- AKCIÓ! Apple iPad Pro 13 M5 1TB Wifi tablet garanciával hibátlan működéssel
- iPhone 17 256 GB Black - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok - Számlás
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
- iKing.hu Apple iPhone 12 mini 64GB Black használt megkímélt 100% akku 6 hónap garancia
- Óriás! Gamer PC-Számítógép! Csere-Beszámítás! R5 5600XT / RTX 3070 8GB / 16GB DDR4 / 1TB SSD Nvme.
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

