- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Azonnali notebookos kérdések órája
- Nyugdíjazza a tuningra szabott, első Raptor Lake-eket az Intel
- Ízlésesre sikerült a Galax alacsony profilú GeForce RTX VGA-ja
- Milyen SSD-t vegyek?
- ThinkPad (NEM IdeaPad)
- Milyen egeret válasszak?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Realme Pad – vissza az iskolapadba
Hirdetés
-
Sony Xperia bemutató lesz május 17-én
ma Különleges Xperia eseményt tart a Sony Tokióban, száz résztvevőt invitálnak.
-
The Witcher - Jön az 5. évad, ezzel együtt pedig elkaszálták a sorozatot
gp A negyedik szezon forgatása a napokban kezdődött el, kíváncsian várjuk mikor láthatjuk a végeredményt.
-
Sorra osztja a dollármilliárdokat az USA a chipgyártóknak
it Az Intel, a TSMC és a Samsung után a Micron következik, ők is tetemes összegű támogatást kapnak az USA-tól a chipgyártáshoz.
Új hozzászólás Aktív témák
-
cadtamas
tag
válasz szucstom #900 üzenetére
Ha a Gerard Swinnen könyvet használod, akkor ne tedd félre.
Az egyik legösszeszedettebb, legjobb könyv rengeteg példával és feladattal.
Kb. a felénél járok és én is 3.6-ot használok, de 1-2 ilyen parancstól eltekintve tökéletesen használható.
Ezekre meg könnyű rákeresni, hogy miért vannak.(Sokáig nem tudtam, de rengeteg feladat ki van dolgozva a könyv utolsó részében
-
cousin333
addikt
válasz EQMontoya #904 üzenetére
Ez egy nem triviális kérdés, hiszen mindenkinek mások az előismeretei, képességei és gondolkodásmenete, de szerintem a Think Python (PDF) egy ilyen kezdő-barát könyv, mert érhetően, egyszerű szavakkal, tömören elmagyarázza a programozás alapjait is. Egyébként ebből a szempontból a Swinnen könyv is ajánlható, sőt, összehasonlítva meglepően sok az egyezés a két forrás között...
Ami nekem a Swinnen könyvben nem tetszik - és amit már többször is jeleztem -, hogy elavult: 2005-ben adták ki, ami a Python 2.4 ideje... a 3-ast nem említi, hiszen az akkor még nem is létezett. Sok minden most is érvényes, más dolgok viszont megváltoztak, kibővültek azóta, akár az alap dolgokat tekintve is. Csak néhány példa:
- print: statement vs függvény
- egész osztás
- xrange vs range (izip vs zip... stb)
- sztring vs byteSzerintem ha valaki most ismerkedik vele, az egyből a 3-assal kezdjen és ne tanulja meg feleslegesen (es adott esetben hibásan) a 2-est, csak majd jóval később, ha szüksége lesz rá (ha szüksége lesz rá).
Hozzáteszem: magyar nyelven még mindig nem nagyon van alternatívája a Swinner könyvnek.
[ Szerkesztve ]
"We spared no expense"
-
szucstom
őstag
válasz cousin333 #906 üzenetére
én igaz totál kezdő vagyok, de azt mondom, igazad van. Egyetlen nagy hátrány, hogy én még most tanulom komolyabban az angolt (bár ugye kockulás és eredeti nyelven való filmnézés miatt elég sok ragadt rám), így ha nem is tudok mindent teljesen szó szerint lefordítani, de nagyjából talán megértem a leírásokat.
PS4 ID: Z0D14C_1990; Manjaro KDE
-
EQMontoya
veterán
válasz cousin333 #906 üzenetére
Az angol nem para, köszönöm a tippeket!
Igazság szerint programozni egyetemen tanultam, főleg C-t, C++, kis Java, C#, basht már magamtól, aztán utána Python, JS már ment tutorial alapján is, mert sok mást láttam. Szóval halvány fogalmam sincs, hogy milyen egy kezdőnek ajánlható könyv, sosem tanultam könyvből programozni.Same rules apply!
-
szucstom
őstag
Lehet, hogy most totál hülyeséget fogok kérdezni, de Pythonban lehet szerverautomatizáláshoz programokat írni?
(félreértés ne essék, nem pont ezért kezdtem bele, azt hallottam, hogy ezzel - is - lehet könnyen programozást tanulni).
Ha ez igaz, akkor nekem csak bónusz lenne a rendszergizda papír melléPS4 ID: Z0D14C_1990; Manjaro KDE
-
-
pvt.peter
őstag
Sziasztok,
Egy olyan programot keresek, ami kiirja azt, hogy egy adott futtathato allomany, milyen fajlmuveleteket hajtott vegre.
Egesz konkretan arra lennek kivancsi, hogy egy adott *.exe fajl milyen tovabbi fajlokat hoz letre az altala meghivott *.dll fajl segitsegevel.Elore is koszonom a segitseget.
Ez egy .50-es rombolópuska, elég szép visszarúgással.
-
sztanozs
veterán
válasz pvt.peter #917 üzenetére
Bár ennek semmi köze a pythonhoz, de process monitor
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Damateo
aktív tag
Sziasztok,
Kicsit magamról.
Jelenleg munka mellet rendszergazda iskolát végzek.
Van egy alap webfejlesztő iskolám, statikus oldalakat tudok készíteni (HTML+CSS).
Ezt a tudásom szeretném bővíteni, hogy dinamikus oldalakat is tudjak alkotni.
Tudom hogy általában ehhez a php társul.
Szeretnék olyan nyelvet tanulni ami több helyzetben is megállja helyét.
Szerintetek jelenlegi tudásom bővítésére alkalmas a Python?Válaszotokat köszönöm.
-
cadtamas
tag
Üdv, ismét elakadtam.
Van egy programom, ami egy elektromos ellenállásra rajzolja ki a megfelelő színkódokat.
Gerard Swinnen 13.4. feladat
Az lenne a feladat, hogy miután beütöm az ellenállás értékét, ne gombhoz legyen rendelve a csíkok átszínezése, hanem csak simán az <enter> gomb lenyomásával működjön.
Beleírtam amit elvileg kell, de a következő hibát írja ki:
"TypeError: changeColours() takes 1 positional argument but 2 were given"Tudna valaki segíteni, hogy mit rontottam el?
from tkinter import*
from math import log,log10
class Application:
def __init__(self):
"""A főablak constructora"""
self.root=Tk()
self.root.title('Színkódok')
self.drawResistor()
Label(self.root,text="Írja be az ellenállás értékét ohm-ban: ").grid(row=2)
from tkinter import*
from math import log,log10
class Application:
def __init__(self):
"""A főablak constructora"""
self.root=Tk()
self.root.title('Színkódok')
self.drawResistor()
Label(self.root,text="Írja be az ellenállás értékét ohm-ban: ").grid(row=2)
#Button(self.root, text='Mutat', command=self.changeColours).grid(row=3,sticky=W) #Korábban ezzel működött
self.entry=Entry(self.root,width=14)
self.entry.bind("<Return>",self.changeColours) #Ezt írtam csak bele
self.entry.grid(row=3)
#színkódok:
self.cc=['black','brown','red','orange','yellow','green','blue','purple','grey','white']
self.root.mainloop()
def drawResistor(self):
"""Vászon ellenállás modellel, amin három színes csík van"""
self.can=Canvas(self.root,width=500,height=200,bg='light blue')
self.can.grid(row=1,pady=5,padx=5)
self.can.create_line(10,100,490,100,width=3)
self.can.create_rectangle(130,60,360,140,fill='beige',width=2)
#három színes csík (feketék alapból)
self.line=[] #listában tároljuk őket
for x in range(150,250,48):
self.line.append(self.can.create_rectangle(x,60,x+30,140,fill='black',width=0))
def changeColours(self):
"""A beírt értéknek megfelelő három szín kiiratása"""
self.v1ch=self.entry.get() #A get() metódus egy stringet ad vissza (ez a bekért adat)
try:
v=float(self.v1ch) #Ha sima float értéket írtunk be akkor ezzel működik
except:
err=1 #Nem numerikus adat
else:
err=0
if err==1 or v>1e11:
self.reportError() #Nem megfelelő érték
elif v<10:
li=[0]*3
li[1]=int(v+.5)
li[2]=int((v-int(v))*10+.5)
for n in range (3):
self.can.itemconfigure(self.line[n],fill=self.cc[li[n]])
else:
li=[0]*3
logv=int(log10(v)) #logaritmus egész része
ordgr=10**logv #nagyságrend
li[0]=int(v/ordgr) #egész rész
decim=v/ordgr-li[0] #tizedes rész
li[1]=int(decim*10+.5) #+0.5 a korrekt kerekítéshez
li[2]=logv-1
#a 3. szakasz színezése:
for n in range (3):
self.can.itemconfigure(self.line[n],fill=self.cc[li[n]])
def reportError(self):
self.entry.configure(bg='red') #mező hátterének színe
self.root.after(1000,self.emptyEntry) #1 sec után törölni
def emptyEntry(self):
self.entry.configure(bg='white') #fehér háttér vissza
self.entry.delete(0, len(self.v1ch)) #karakterek törlése
####Főprogram###
f=Application()[ Szerkesztve ]
-
Lacc
aktív tag
Sziasztok!
Egy algoritmust implementáltam pythonban, de nem azt adja ki megoldásban, mint ami a pdf szerepel.
Meg tudná nekem valaki nézni, hogy mit hol ronthatam el? Lehet erősen félreértelmeztem a pseudo kódot.def pi_prefix_fuggveny(pattern):
P = list(pattern)
m = len(P)
a = [0] * m
k = 0
for q in range(2, m):
while k > 0 and P[k+1] != P[q]:
k = a[k]
if P[k+1] == P[q]:
k = k + 1
a[q] = k
return a
print pi_prefix_fuggveny("ababaca")Nekem ez a megoldás jön ki:
[0, 0, 0, 1, 2, 0, 0]
Mi közben ez lenne a jó megoldás
[0, 0, 1, 2, 3, 1, 1]Ez pedig itt a link, a 7. dián van a pseudo code-os leírás
[ Szerkesztve ]
-
cousin333
addikt
Nekem ehhez már késő van, de első ránézésre 2 dolgon úszhatott el a kódod:
- indexelés: ha jól látom a példában az a[1] a legelső elemet jelenti, Pythonban viszont ez az a[0] Nem mondom, hogy emiatt rossz, csak erre oda kell figyelni
- Python ismeret hiánya: a pszeudo-kódban a ciklus egyértelműen 2-től m-ig megy, viszont a használtrange
függvény 2-től (m-1)-ig fut csak!Erre utal az is, hogy a te eredményed látszólag eggyel elcsúszott a helyes megoldáshoz képest. Talán inkább range(1, m) kellene, de persze ez nem feltétlenül oldja meg a problémádat.
[ Szerkesztve ]
"We spared no expense"
-
axioma
veterán
KPM, de regen volt!
Egyebkent jo kerdes, hogy mi a celod, a pszeudokod pontos atirata, vagy az elofeldolgozas megertese.
Az indexek javitasaval (range(1,m) es k+1 helyett k) jol fog mukodni az algo (persze az a-ban is elcsuszva lesznek az ertekek a 0-tol szamozas miatt! marmint a vart eredmenyt adja az a mint teljes tomb; de ami a pszeudokod-ban a[2], az nalad az a[1], ez fontos lesz ha a masik felet is implementalod)
P=list(pattern) tok folosleges.[ Szerkesztve ]
-
LilProphet90
senior tag
Sziasztok! Az Udemy Python kurzusa most igen kedvező áron van, abszolút kezdő vagyok, a kérdésem, hogy ismeritek-e, és mennyire érdemes belevágni? Vagy esetleg inkább a már első posztban (is) linkelt anyagok valamelyikét ajánljátok? Köszi!
Zenei alapok, remixek: http://www.reverbnation.com/lilprophetmusic
-
Lacc
aktív tag
válasz cousin333 #928 üzenetére
Igen, eszembe jutott nekem is, hogy a matematikai indexelés 1-től az infós meg 0-tól kezdődik.
Igen, annyira nem érdekel a python, inkább ruby-t preferálom helyette.
Sosem szerettem a for ciklust kombinálva a range függvényyel, jobb szeretem a C féle for ciklust, ott mindig tudom állítani, hogy < vagy <= legyen.axioma. Köszi a segítséget.
-
Lacc
aktív tag
válasz LilProphet90 #930 üzenetére
Az alapokhoz a Coursera-s kurzusok is jók, amelyek ingyenesek (akár csak a Microsoft kurzusai pythonban amik szintén ingyenesek), de ha tényleg érdekel a NumPy, BigData és egyéb finomságok, akkor ismertető kurzusnak tökéletes. Ezt ezért gondolom így, mert a NumPy-os rész benne csak 25perc, ami szerintem igazán kevés. Bár a webes python oktató anyagok lehet hogy tényleg jók.
(Szerintem bárki lehet Udemy-s oktatók és ez néha érződött is az előadásokon - vagy amik ingyenesek voltak - nekem nem vált be, de lehet neked igen. Nekem csak azért nem mert én alapból fejlesztek napi szinten)
-
cousin333
addikt
"Sosem szerettem a for ciklust kombinálva a range függvénnyel"
Semmi gond, a Python sem szereti annyira. Inkább a listaelemeken való iterálást preferálja. Pl.:
lista = ['egy', 'ketto', 'harom']
for elem in lista:
print(elem)Ez szükség esetén megfejelhető az enumerate és a zip használatával, valamint a lista "szeletésével":
for elem in lista[1:]:
print(elem)Az persze megint egy más kérdés, hogy akkor hogyan lehetne "pythonikusan" leimplementálni a fenti példát...
[ Szerkesztve ]
"We spared no expense"
-
EQMontoya
veterán
válasz cousin333 #933 üzenetére
Hát ha utóbbit akarsz csinálni, arra van ugye enumerate meg ilyesmi.
Egyébként mostanság olvastam elég sok python kódot, és az az érzésem, hogy a legtöbben C-t írnak, csak nem annyira típusos, és python interpreterrel futtatják. Mindent, ami megvan egyébként a nyelvben a for ciklusok elkerülésére (map, filter, reduce, any, all, stb), azt szépen megírják kézzel.
[ Szerkesztve ]
Same rules apply!
-
cousin333
addikt
Van egy sztringem (pl. "X1") és abból szeretnék egy 1 elemű listát (pontosabban iterable-t). Azaz keresem a magic nevű metódust/megoldást, ami tudja az alábbit:
>>> input = "X1"
>>> magic(input)
["X1"]Eddig nem vészes. Ugyanakkor azt is szeretném, ha a magic akkor is működne, ha az input már eleve egy lista, ilyenkor viszont ne variáljon rajta semmit:
>>> input = ["X1", "X2", "X3"]
>>> magic(input)
["X1", "X2", "X3"]Nyers erővel nyilván megoldható lenne, de nekem az volna a kérdésem, hogy mi erre a "legpythonikusabb" (legelegánsabb, legegyszerűbb) megoldás? Egyáltalán létezik ilyen? Vagy éppen ellenkezőleg, túlságosan triviálisat kérdeztem?
[ Szerkesztve ]
"We spared no expense"
-
Bazs87
tag
Sziasztok!
Új vagyok még itt és egy elvileg banális kérdéssel szeretnélek röviden megzavarni titeket:
VBS kód:
data1 = 0
data2 = 0
tmp = HTTPPost("https://api.thingspeak.com/update","api_key=abcx&field1=" + cstr(data1) + "&field2=" + cstr(data2))
Function HTTPPost(sUrl, sRequest)
set oHTTP = CreateObject("Microsoft.XMLHTTP")
oHTTP.open "POST", sUrl,false
oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oHTTP.setRequestHeader "Content-Length", Len(sRequest)
oHTTP.send sRequest
HTTPPost = oHTTP.responseText
End Functionezt szeretném átülteni 1 az 1ben python3.3-ba. A gond, hogy már a google találatok első 2 oldalán végigmentem, de már a libek telepítésekor is hibák tömkelegét jelzi a python. Kell erre lennie valami egyszerű megoldásnak. (a http get csonk nélkül ment 2 perc alatt)
Lehet, hogy a lib installját rontom el, csak meghívom az install.py-t, ami nem is jelez hibát, csak utána a mintaprog lefutása.
Lib nélkül v gyári libbel még jobb lenne ugye.
Köszönöm előre is!
Bazs87 -
cousin333
addikt
Leírhattad volna a Python kódodat is. Milyen könyvtárat akartál feltenni és hogyan? Én a pip-et javaslom erre a célra (csomagtelepítésre), sokkal egyszerűbb és a megfelelő verzió megy fel. Pl. a parancssorba írva:
C:\>pip install numpy pandas matplotlib
A webes felhasználásban nem vagyok otthon, de szerintem a gyári urllib amit te keresel, pontosabban annak a request és parse moduljai.
[ Szerkesztve ]
"We spared no expense"
-
Bazs87
tag
válasz cousin333 #939 üzenetére
köszönöm a válaszod!
Python kód: azért nem másoltam be ide python kódot, mert nem találtam olyan mintát ami hiba nélkül lefordul. Nem szerettem volna 30 gagyi kódot bemásolni ide. Valszeg a lib telepítése az oka, aminek egyenlőre nem tudom megfelelően a menetét.
Az urllib2 és a [link] Home assitant libet próbáltam eddig felrakni.
Annyit csináltam, hogy letöltöttem a lib mappáját, majd kicsomagolás kattintottam a setup.py-re. Ez ugye nem jött be. (egy további libben már ott elakadtam, hogy setuptools-t kér, amit szintén nem lehet exevel telepiteni, csak python ver 2.7-ig)
Utána bemásoltm a gyökérbe ("C:\Python33") az egész lib mappán, katt, de ott sem. Amikor a setupot IDLE-ből meghívva futtattam akkor sem akarta a jót, de legalább már hibát kiírt.A pipet láttam már raspis használatban, de winen szeretnék dolgozni.
Valszeg alap dolog amit nem tudom, rá is kerestem a helyes setupleírásra, de nem segített, a libekben pedig a readme-ben sincs leírva.
Gyakorlatilag annyit szeretnék elérni, hogy pár működő vbs kódomat áthajítsam python környezetbe. (http post, webről *.xml/html letöltése, + egy home assistance vezérlőlib meghívása)
Esetleg tudnál nekem linkelni v írni egy rövid bemutatást mit és hogyan kell a python 3.3 alá feltuszkolni? Videókat is csak 2.7-hez találtam sajnos.
-
cousin333
addikt
Természetesen Windowsra is elérhető a pip. Tulajdonképpen van valamilyen jelentősége annak, hogy a 3.3-at használod, vagy csak ezt találtad meg? A 3.4-től kezdve ugyanis a pip a gyári Python telepítő része.
Ha pedig nincs fenn, akkor így tudod feltenni: [link]. Mindenképpen érdemes, mert a segítségével sokkal egyszerűbben és kényelmesebben tudsz új modulokat telepíteni. Kezeli a pontos verziót és az esetleges függőségeket is.
Ahogy nézem az urllib2 a Python 2 telepítés része (gyári modul), így használata semmiképpen sem javasolt. A Python 3-ban ehelyett van a már linkelt urllib, illetve annak almoduljai. Ezen kívül javasolják még a Request modult, mint az életedet megkönnyítő kiegészítőt, ami gondolom az urllib fölé épül.
A Request-et - csakúgy, mint a linkelt Home Assistant könyvtárat (pyHS100) -, könnyen felteheted a pip-pel, mivel mindkettő része a PyPi-nek (Python Package Index):
c:\> pip install request pyhs100
[ Szerkesztve ]
"We spared no expense"
-
cadtamas
tag
Sziasztok.
Az osztályoknál tartok és ismét sikerült elakadni.
Tudom, hogy mi a probléma, de nem tudom miként lehet megoldani."A feladat az, hogy a tkinter Frame()-osztályából kell leszármaztatni az Application osztályt, aminek a constructora egy 400x400-as vásznat hoz létre és 2 gombot. A vásznon a Visage osztály egy objektumát fogjuk létrehozni..."
from tkinter import*
def circle(can,x,y,r,color="white"):
"A <can> vásznon egy <r> sugarú kör rajza <x,y>-ban."
can.create_oval(x-r,y-r,x+r,y+r,outline=color)
class Application(Frame):
def __init__(self,boss=None):
Frame.__init__(self) #szülőosztály constructor
#Példány attribútomok inicializálása:
self.canv=Canvas(height=400,width=400)
self.canv.pack(side=TOP,padx=5,pady=5)
Visage(self.canv)
Button(self,text="Open", command=self.open).pack()
Button(self,text="Close", command=self.shout).pack()
def shout(self):
Visage.mouth=self.canv.create_line(170,270,230,270,fill='black')
def open(self):
Visage.mouth=circle(self.canv,200,270,30,color="black")
class Visage:
"""Arc rajzoló osztály"""
def __init__(self,canv_):
self.canv=canv_
circle(canv_,200,200,150,color="black") #fej
circle(canv_,160,160,30,color="black") #bal szem
circle(canv_,160,160,10,color="black")
circle(canv_,240,160,30,color="black") #jobb szem
circle(canv_,240,160,10,color="black")
circle(canv_,200,200,20,color="black") #orr
self.mouth=0 #száj
app=Application()
app.mainloop()Nem jelennek meg a gombok (Eddig egy Tk objektum kellett hozzá, de most nem tudom hogyan hozzam létre).
-
pbalintka
csendes tag
válasz cadtamas #943 üzenetére
A Frame-t elfelejtetted "pack"-olni:
from tkinter import*
def circle(can,x,y,r,color="white"):
"A <can> vásznon egy <r> sugarú kör rajza <x,y>-ban."
can.create_oval(x-r,y-r,x+r,y+r,outline=color)
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self) #szülőosztály constructor
self.master = master
self.pack(fill=BOTH, expand=1) # EZ HIANYZOTT
#Példány attribútomok inicializálása:
self.canv=Canvas(height=400,width=400)
self.canv.pack(side=TOP,padx=5,pady=5)
Visage(self.canv)
Button(self, text="Open", command=self.open).pack()
Button(self, text="Close", command=self.shout).pack()
def shout(self):
Visage.mouth=self.canv.create_line(170,270,230,270,fill='black')
def open(self):
Visage.mouth=circle(self.canv,200,270,30,color="black")
class Visage:
"""Arc rajzoló osztály"""
def __init__(self,canv_):
self.canv=canv_
circle(canv_,200,200,150,color="black") #fej
circle(canv_,160,160,30,color="black") #bal szem
circle(canv_,160,160,10,color="black")
circle(canv_,240,160,30,color="black") #jobb szem
circle(canv_,240,160,10,color="black")
circle(canv_,200,200,20,color="black") #orr
self.mouth=0 #száj
root = Tk()
app=Application(root)
app.mainloop()[ Szerkesztve ]
-
pbalintka
csendes tag
válasz cousin333 #942 üzenetére
"Ahogy nézem az urllib2 a Python 2 telepítés része (gyári modul), így használata semmiképpen sem javasolt."
Ezt nem értem. Ha valami gyári modul, akkor annak használata miért nem javasolt? Elég hardcore gyári modulok nélkül pythont használni. Tegyük fel socket-et akarok programozni, akkor keressek a neten egy másik modult hátha valaki feltalálta újra a "kereket"? Vagy egy egyszerűbb példa a re (regex ami eléggé hasznos) modul, szintén gyári.
-
cousin333
addikt
válasz pbalintka #945 üzenetére
Ez valóban félreérthető volt, a zárójeles rész csak magyarázat akart lenni. Azt szerettem volna kifejezni, hogy az urllib2 (hangsúly a "2"-n!) a Python 2 gyári modulja, és mint ilyen, nincs keresnivalója a Python 3-ban. Utóbbiban gyárilag nincs is benne (ezzel a névvel), ha megnézed a dokumentációt, és a lap tetején kiválasztod valamelyik 3-as verziót, akkor a főoldalra dob, pont emiatt.
Ő Python 3-at használ, tehát ne erőltesse az urllib2 telepítését (ő írta, hogy külön megpróbálta feltenni), használja a gyárilag meglévő "sima" urllib-et. Ha nem írja konkrétan a "2"-est, nem is akadok fenn rajta.
Magyarán nincs szó arról, hogy ne használjuk a gyári modulokat, sőt! De ne próbáljunk a 3-as Pythonba "kiselejtezett 2-es modulokat" beledrótozni.
Amúgy az utóbbi időben talán a time volt az egyetlen gyári modul, amit direktben használtam, szinte mindig külsős fejlesztéseket importáltam (amik persze építenek a gyári modulokra is, de ez legyen az ő problémájuk). Mellesleg pont azért, mert kényelmesebbek, mint a "lower level" gyáriak.
Na, jó sokat írtam kb. a semmiről, de remélem már érthetőbb voltam.
[ Szerkesztve ]
"We spared no expense"
-
cadtamas
tag
Ugyanaz a feladat, de egy olyan probléma, amit nem tudok hova tenni.
from tkinter import*
def circle(can,x,y,r,color="white"):
"A <can> vásznon egy <r> sugarú kör rajza <x,y>-ban."
can.create_oval(x-r,y-r,x+r,y+r,outline=color)
class Application(Frame):
def __init__(self,master=None):
Frame.__init__(self) #szülőosztály constructor
#self.master = master #ezt muszáj volt inaktívvá tenni, mert nem engedte bezárni a főablakot
self.pack()
#Példány attribútomok inicializálása:
self.canv=Canvas(height=400,width=400,bg='white')
self.canv.pack(side=TOP,padx=5,pady=5)
self.face=Visage(self.canv)
Button(self,text="Open", command=self.face.open).pack(side=RIGHT)
Button(self,text="Close", command=self.face.close).pack(side=RIGHT)
class Visage:
"""Arc rajzoló osztály"""
def __init__(self,canv_):
self.canv=canv_
circle(canv_,200,200,150,color="black") #fej
circle(canv_,160,160,30,color="black") #bal szem
circle(canv_,160,160,10,color="black")
circle(canv_,240,160,30,color="black") #jobb szem
circle(canv_,240,160,10,color="black")
circle(canv_,200,200,20,color="black") #orr
self.mouth=0 #száj
def open(self):
self.canv.delete(self.mouth) #törlés
self.mouth=circle(self.canv,200,270,30,color="black")
def close(self):
self.canv.delete(self.mouth) #törlés, de valamiért nem törli!!!
self.mouth=self.canv.create_line(170,270,230,270,fill='black')Az open metódus működik rendesen, de a close nem.
Arra tudok gondolni, hogy valamiért nem működik a delete metódus és az open() csak elfedi a vízszintes vonalat, de nem törli.
Az működne ha letörölném az egész vásznat és újrarajzolnám az arcot is, de szerintem ennek is kellene működnie.
Már órák óta ezen agyalok, de nem jutok dűlőre.
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- DIGI kábel TV
- LEGO klub
- Autós topik
- Rezsicsökkentés, spórolás (fűtés, szigetelés, stb.)
- Xiaomi Redmi Note 5 Global
- Moderátort keresek a fórumhoz!
- Azonnali notebookos kérdések órája
- Genshin Impact (PC, PS4, Android, iOS)
- E-roller topik
- További aktív témák...