-
1500 - 1401
4451 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
#82595328
törölt tag
Hogy őszinte legyek, már teljesen elfeledkeztem a Kivy projektről. Talán több macera lenne vele, mint a wxPythonnal viszont több platformot támogat(mobil).
Itt egy összehasonlítás:
https://www.youtube.com/watch?v=AGMvn1dP6mU -
Trakk77
csendes tag
Sziasztok!
Egy termelés tervező programot szeretnék készíteni hobbiból.
A grafikus felület megjelenítésére wxPython és a Kivy között vacillálok.
Melyiket ajánlanátok? Esetleg más?Köszönöm.
-
b.kov
senior tag
Sziasztok!
Egy kissé amatőr kérdést szeretnék feltenni, és nem is 100%-osan Pythonról lenne szó.
Szóval a lényeg, hogy egy Telegram ChatBotot írok éppen, és ugye HTTP Requestek segítségével működik a dolog (béerkező üzenetek lekérdezése, üzenetek küldése). Nem is szeretném annyira részletezni, viszont:Van egy sendMessage függvény, amellyel üzenetet lehet küldeni adott chatID-val, szöveggel, illetve meg lehet mondani, hogy a parse_mode legyen HTML formátumú (linkeket szeretnék küldeni).
Így néz ki egy ilyen egyszerű hívás:
https://api.telegram.org/bot{TOKEN}/sendMessage?
text=<a href="https://www.google.com">Google</a>
&chat_id={CHAT_ID}
&parse_mode=HTMLEnnek ugye az az eredménye, hogy a kliens kap 1 üzenetet: Google, ami egy hivatkozás is egyben.
A problémám pedig a következő lenne: ha egy speciális html entity szerepel a <a></a> tagek között, akkor értelmeszerűen hibát dob, nem küld üzenetet. Ezeket ki kellene cserélni a megfelelő azonosítóval (pl.: & -> &
. Azonban ha én ezt megteszem, akkor a következő történik: <a href="..">Dumb&Dumber</a>
esetén csak a Dumb lesz elküldve, a többi semmis lesz. Próbáltam numerikus azonosítóval is, de ugyanez a helyzet.Itt van egyébként a szóban forgó függvény formázás leírása: Formatting Options
Esetleg valakinek lenne valamilyen ötlete?

Előre is köszi, és bocsi ha túl hosszúra sikeredett.
-
#82595328
törölt tag
wxPython-nal kapcsolatban lenne kérdésem. Most váltottam tkinterről wxPythonra. A tkinterhez nincs normális grafikus tervező, meg elég csúnyácska is. Tkinterrel sokat használtam a print parancsot tesztelésre. Viszont wxPythonnál a print parancs kimenete valamiért nem jelenik meg konzolon.
A programom két fájból áll, az első tartalmazza a grafikus elemeket, a második pedig a tényleges programot. Ezt bemásoltam. A kilépés parancs működik, tehát a program jó, de a megnyitás gombra nyomva nincs hibaüzenet, és a konzolon se jelenik meg a parancs kimenete. Nem értem miért.
import wx
import mainFrame
# Implementing mainFrame
class program(mainFrame.mainFrame):
def __init__(self, parent):
mainFrame.mainFrame.__init__(self, parent)
# Handlers for mainFrame events.
def megnyitasOnMenuSelection(self, event):
# TODO: Implement megnyitasOnMenuSelection
print('valami')
def OnQuit(self, event):
# TODO: Implement OnQuit
self.Close()
if __name__ == '__main__':
app = wx.App()
frame = mainFrame.mainFrame(None)
frame.Show()
app.MainLoop()Sikerült rájönnöm a hibára. Én okoztam. Az volt a terv, hogy 2 fájllal dolgozom. Az egyik a wxFormbuilderrel létrehozott grafikus elemeket tartalmazza. A másik lesz a tényleges program, amiben én dolgozom.
Csak épp mivel nem értek hozzá ezért sikerült a programhurok létrehozásakor az első fájlra hivatkoznom.
Az alábbi programrészletet én raktam hozzá.if __name__ == '__main__':
app = wx.App()
frame = mainFrame.mainFrame(None)
frame.Show()
app.MainLoop()
Így persze figyelmen kívül hagyta a változtatásaimat. A javítás annyi volt, hogy a frame= mainFrame.mainFrame(None)-t kellett a frame = program(None)-ra cserélnem.
Magamat zavartam össze azzal, hogy a kilépés self.Close() parancsot még a saját fájlom létrehozása előtt beleraktam az első fájlba. Így aztán az később is működött.
-
#82595328
törölt tag
Azt hiszem megtaláltam itt, este kipróbálom:
https://stackoverflow.com/questions/3526461/redirecting-standard-output-to-print-messages-in-gui-instead-of-terminal
When you use the print statement with wxPython, where it ends up depends on how you called wx.App().
wx.App(redirect=False) or simply wx.App(0) will send print statements to a console window, otherwise they will be sent to a little textbox window.
Sajnos ez nem segített:
wx.App(redirect=False) or simply wx.App(0) will send print statements to a console window, otherwise they will be sent to a little textbox window. -
justmemory
senior tag
-
#82595328
törölt tag
A gtk is multiplatform:"PyGTK applications are truly multiplatform and they're able to run, unmodified, on Linux, Windows, MacOS X and other platforms." - PyGTK hivatalos oldala
De nem erőszak. Azért javasoltam csak a kipróbálását, mert nagyon könnyen használható, hamar lehet sikert elérni vele, pár sor az egész és máris van ablakod meg gombot meg kiskutyafüléd; és minél jobban beleásod magad az egyikbe, annál kevésbé veszed rá magad, hogy kipróbáld a másikat. Saját tapasztalat: sehogyan sem tudom rávenni magam, hogy kipróbáljam a qt-t, mert "óó, gtk-val ez semmi perc"...Ha jól látom az utolsó hír 2011-s? Akkor inkább nem.
-
justmemory
senior tag
Köszi a választ!
A qt-nél úgy tudom, ha fizetős programhoz használod, akkor fizetőssé válik, kivéve ha statikusan/dinamikusan(?) linkeled. Vagy valami ilyesmi. Ez egyelőre nem fenyeget, de hátha. Ezért a qt nálam kiesett. Igazából most kezdtem ismerkedni a grafikus felülettel. Mivel a két gépem közül az egyiken csak Win van, ezért fontos, hogy multiplatform legyen. Úgyhogy egyelőre marad a wxPython. Pláne ha a print függvény kimenetét át tudom irányítani konzolra! Ha nem akkor GTK.
A gtk is multiplatform:"PyGTK applications are truly multiplatform and they're able to run, unmodified, on Linux, Windows, MacOS X and other platforms." - PyGTK hivatalos oldala
De nem erőszak. Azért javasoltam csak a kipróbálását, mert nagyon könnyen használható, hamar lehet sikert elérni vele, pár sor az egész és máris van ablakod meg gombot meg kiskutyafüléd; és minél jobban beleásod magad az egyikbe, annál kevésbé veszed rá magad, hogy kipróbáld a másikat. Saját tapasztalat: sehogyan sem tudom rávenni magam, hogy kipróbáljam a qt-t, mert "óó, gtk-val ez semmi perc"... -
#82595328
törölt tag
Hát én windows-on megmondom őszintén, hogy portable pygtk-t használok. Picit talán macerásabb bizonyos szempontból, de mivel ez nem fő terület nekem, csak egyfajta kísérletezgetés, így mindegy; céges gép lévén nem is tudok python-t telepíteni rá rendesen, tehát licencelési és egyéb dolgokban nincs tapasztalatom, bár nem gondolom, hogy lenne ilyesmi, hiszen csak telepíteni kell a pygtk-t és kész, onnantól működik a dolog. Linux alatt biztosan

A qt is jó lehet, esetleg érdemes abban is elmélyedned picit; és akkor itt válaszolnék a feltett kérdésedre is: tegyél egy próbát a gtk-val, ismerd meg egy kicsit, és aztán döntsd el, hogy bejön-e neked.
Mint mondtam, én picit kényszerből használom (noha használhatnék qt-t is...), vagy kezdtem el használni, de teljesen jó, a dokumentációja is tök rendben van, eddig mindenre találtam megoldást...
Köszi a választ!
A qt-nél úgy tudom, ha fizetős programhoz használod, akkor fizetőssé válik, kivéve ha statikusan/dinamikusan(?) linkeled. Vagy valami ilyesmi. Ez egyelőre nem fenyeget, de hátha. Ezért a qt nálam kiesett. Igazából most kezdtem ismerkedni a grafikus felülettel. Mivel a két gépem közül az egyiken csak Win van, ezért fontos, hogy multiplatform legyen. Úgyhogy egyelőre marad a wxPython. Pláne ha a print függvény kimenetét át tudom irányítani konzolra! Ha nem akkor GTK.
-
justmemory
senior tag
Igaz a Libreoffice is mintha GTK lenne! Nem nehéz Windowsra gtk-t telepíteni? Nincs vele licencelési gond?
Azért választottam a wxPython-t, mert tkinter túl egyszerű és nincs hozzá grafikus tervező. A qt-nél van valami licencelési macera, amivel nem akarok bajlódni. A gtk-hoz meg a glade-t tudom, de az tudtommal nincs Windows-ra. A wxPython meg mindent tudott, amit elvártam.
- könnyen telepíthető
- van hozzá grafikus tervező
- multiplatform
- nincs vele licenc probléma
Végre megjelent a végleges verzió Python3-hoz. Így már pip-pel is lehet telepíteni. A wxFormbuilder elég jónak tűnik mint tervező. Tök könnyen megoldottam, hogy külön fájlban legyen a grafikus felület és a programmag. Csak ott akadtam el, hogy a legegyszerűbb parancsot (print) se tudtam nyomógombhoz hozzárendelni. A teszteléshez meg kell.A kérdésem, hogy érdemes inkább a GTK-t választani? Miért?
Hát én windows-on megmondom őszintén, hogy portable pygtk-t használok. Picit talán macerásabb bizonyos szempontból, de mivel ez nem fő terület nekem, csak egyfajta kísérletezgetés, így mindegy; céges gép lévén nem is tudok python-t telepíteni rá rendesen, tehát licencelési és egyéb dolgokban nincs tapasztalatom, bár nem gondolom, hogy lenne ilyesmi, hiszen csak telepíteni kell a pygtk-t és kész, onnantól működik a dolog. Linux alatt biztosan

A qt is jó lehet, esetleg érdemes abban is elmélyedned picit; és akkor itt válaszolnék a feltett kérdésedre is: tegyél egy próbát a gtk-val, ismerd meg egy kicsit, és aztán döntsd el, hogy bejön-e neked.
Mint mondtam, én picit kényszerből használom (noha használhatnék qt-t is...), vagy kezdtem el használni, de teljesen jó, a dokumentációja is tök rendben van, eddig mindenre találtam megoldást...
-
#82595328
törölt tag
Igaz a Libreoffice is mintha GTK lenne! Nem nehéz Windowsra gtk-t telepíteni? Nincs vele licencelési gond?
Azért választottam a wxPython-t, mert tkinter túl egyszerű és nincs hozzá grafikus tervező. A qt-nél van valami licencelési macera, amivel nem akarok bajlódni. A gtk-hoz meg a glade-t tudom, de az tudtommal nincs Windows-ra. A wxPython meg mindent tudott, amit elvártam.
- könnyen telepíthető
- van hozzá grafikus tervező
- multiplatform
- nincs vele licenc probléma
Végre megjelent a végleges verzió Python3-hoz. Így már pip-pel is lehet telepíteni. A wxFormbuilder elég jónak tűnik mint tervező. Tök könnyen megoldottam, hogy külön fájlban legyen a grafikus felület és a programmag. Csak ott akadtam el, hogy a legegyszerűbb parancsot (print) se tudtam nyomógombhoz hozzárendelni. A teszteléshez meg kell.A kérdésem, hogy érdemes inkább a GTK-t választani? Miért?
-
justmemory
senior tag
Ahogyan colomb2 is írta, elfut ez szépen windows-on is, noha én elsősorban linux-on, azon belül is a telefonomon (Nokia n900) veszem hasznát (a gtk egy speciális változatának, ami hildon néven fut és az ujjal történő nyomkorászáshoz lett kitalálva). Ezért tehát a gtk az én esetemben...
-
Rimuru
veterán
-
#82595328
törölt tag
Aham, tehát akkor ez ilyen wxPython sajátosság... Érdekes...
Ha már szóba került a GTK. Miért pont GTK? Nekem az a bajom vele, akkor csak linux(unix)-on fog futni. Ezzel ugrik a python egyik nagy előnye, hogy multiplatform. Vagy rosszul tudom?
-
justmemory
senior tag
Azt hiszem megtaláltam itt, este kipróbálom:
https://stackoverflow.com/questions/3526461/redirecting-standard-output-to-print-messages-in-gui-instead-of-terminal
When you use the print statement with wxPython, where it ends up depends on how you called wx.App().
wx.App(redirect=False) or simply wx.App(0) will send print statements to a console window, otherwise they will be sent to a little textbox window.
Aham, tehát akkor ez ilyen wxPython sajátosság... Érdekes...
-
#82595328
törölt tag
Szia,
én alapvetően ugyan GTK-t használok, tehát ez csak találgatás, de ott a funkciót és a gombot "össze kell kötni" pl. így:
def valami(widget):
print "akármi"
button = gtk.Button()
button.connect("clicked", valami)Ha nem rakom bele a
button.connectrészt, na akkor áll elő az a helyzet, amit te leírtál. De mondom, nem tudom, hogy a wx-ben miként van...Azt hiszem megtaláltam itt, este kipróbálom:
https://stackoverflow.com/questions/3526461/redirecting-standard-output-to-print-messages-in-gui-instead-of-terminal
When you use the print statement with wxPython, where it ends up depends on how you called wx.App().
wx.App(redirect=False) or simply wx.App(0) will send print statements to a console window, otherwise they will be sent to a little textbox window.
-
#82595328
törölt tag
Szia,
én alapvetően ugyan GTK-t használok, tehát ez csak találgatás, de ott a funkciót és a gombot "össze kell kötni" pl. így:
def valami(widget):
print "akármi"
button = gtk.Button()
button.connect("clicked", valami)Ha nem rakom bele a
button.connectrészt, na akkor áll elő az a helyzet, amit te leírtál. De mondom, nem tudom, hogy a wx-ben miként van...Nem hiszem, hogy ez a baj. A mainFrame-ben az megvan. Mint írtam a kilépés gomb működik. Ha áttenném a "self.Close()" függvényt a print helyére. Akkor ott is lefutna.
# Handlers for mainFrame events.
def megnyitasOnMenuSelection(self, event):
# TODO: Implement megnyitasOnMenuSelection
print('valami')
def OnQuit(self, event):
# TODO: Implement OnQuit
self.Close()Hibaüzenet nincs. Konzolban kimenet nincs. Én olyasmire tippelek, hogy vagy return kell, vagy kell valami külön parancs, hogy a konzolba irányítsam a kimenetet.
-
justmemory
senior tag
wxPython-nal kapcsolatban lenne kérdésem. Most váltottam tkinterről wxPythonra. A tkinterhez nincs normális grafikus tervező, meg elég csúnyácska is. Tkinterrel sokat használtam a print parancsot tesztelésre. Viszont wxPythonnál a print parancs kimenete valamiért nem jelenik meg konzolon.
A programom két fájból áll, az első tartalmazza a grafikus elemeket, a második pedig a tényleges programot. Ezt bemásoltam. A kilépés parancs működik, tehát a program jó, de a megnyitás gombra nyomva nincs hibaüzenet, és a konzolon se jelenik meg a parancs kimenete. Nem értem miért.
import wx
import mainFrame
# Implementing mainFrame
class program(mainFrame.mainFrame):
def __init__(self, parent):
mainFrame.mainFrame.__init__(self, parent)
# Handlers for mainFrame events.
def megnyitasOnMenuSelection(self, event):
# TODO: Implement megnyitasOnMenuSelection
print('valami')
def OnQuit(self, event):
# TODO: Implement OnQuit
self.Close()
if __name__ == '__main__':
app = wx.App()
frame = mainFrame.mainFrame(None)
frame.Show()
app.MainLoop()Szia,
én alapvetően ugyan GTK-t használok, tehát ez csak találgatás, de ott a funkciót és a gombot "össze kell kötni" pl. így:
def valami(widget):
print "akármi"
button = gtk.Button()
button.connect("clicked", valami)Ha nem rakom bele a
button.connectrészt, na akkor áll elő az a helyzet, amit te leírtál. De mondom, nem tudom, hogy a wx-ben miként van... -
#82595328
törölt tag
wxPython-nal kapcsolatban lenne kérdésem. Most váltottam tkinterről wxPythonra. A tkinterhez nincs normális grafikus tervező, meg elég csúnyácska is. Tkinterrel sokat használtam a print parancsot tesztelésre. Viszont wxPythonnál a print parancs kimenete valamiért nem jelenik meg konzolon.
A programom két fájból áll, az első tartalmazza a grafikus elemeket, a második pedig a tényleges programot. Ezt bemásoltam. A kilépés parancs működik, tehát a program jó, de a megnyitás gombra nyomva nincs hibaüzenet, és a konzolon se jelenik meg a parancs kimenete. Nem értem miért.
import wx
import mainFrame
# Implementing mainFrame
class program(mainFrame.mainFrame):
def __init__(self, parent):
mainFrame.mainFrame.__init__(self, parent)
# Handlers for mainFrame events.
def megnyitasOnMenuSelection(self, event):
# TODO: Implement megnyitasOnMenuSelection
print('valami')
def OnQuit(self, event):
# TODO: Implement OnQuit
self.Close()
if __name__ == '__main__':
app = wx.App()
frame = mainFrame.mainFrame(None)
frame.Show()
app.MainLoop() -
cousin333
addikt
köszi a lerövidítést, annyi, hogy a végén mindenképpen bele kell pakolnom az
ismetlodo = None-be az indexet, mert ha a tiedet használom akkor ha nincs is ismétlődés az adatokban akkor is 1-et kapok indexnek, nekem viszont ha nincs ismétlődés akkor azt ki kell írnom

Azért annak már örülök, hogy egy hónap alatt sikerült autodidakta módon felkészülnöm az érettségire programozásból. Megcsináltam minden eddig kiadott kétszintű érettségit és ha nem is lesz szép a kódóm, meg a lehető legrövidebb legalább működik ahogyan kell

Pythonba írni ezeket a feladatokat a C-hez képest ég és föld

Más: h hosszúságú random számot hogyan lehet a legegyszerűbben létrehozni?
n = 6
kodszam = random.randint(10**(n-1), (10**n)-1)
print("Egy {} hosszú kódszám: {}".format(len(ikod), kodszam))Akkor írhatod így is:
for index, kod in enumerate(adatok, 1):
szamok = set(kod)
if len(kod) != len(szamok):
ismetlodo = index
break
else:
ismetlodo = NoneA második példád elég célravezetőnek tűnik, momentán én sem tudnék egyszerűbb megoldást írni. Esetleg a
random.randrange()függvényt használhatod, akkor nincs a második "-1", de sokkal egyszerűbb nem lesz. Ha minden igaz:n = 6
kodszam = random.randrange(10**(n-1), 10**n) -
K1nG HuNp
őstag
köszi a lerövidítést, annyi, hogy a végén mindenképpen bele kell pakolnom az
ismetlodo = None-be az indexet, mert ha a tiedet használom akkor ha nincs is ismétlődés az adatokban akkor is 1-et kapok indexnek, nekem viszont ha nincs ismétlődés akkor azt ki kell írnom

Azért annak már örülök, hogy egy hónap alatt sikerült autodidakta módon felkészülnöm az érettségire programozásból. Megcsináltam minden eddig kiadott kétszintű érettségit és ha nem is lesz szép a kódóm, meg a lehető legrövidebb legalább működik ahogyan kell

Pythonba írni ezeket a feladatokat a C-hez képest ég és föld

Más: h hosszúságú random számot hogyan lehet a legegyszerűbben létrehozni?
n = 6
kodszam = random.randint(10**(n-1), (10**n)-1)
print("Egy {} hosszú kódszám: {}".format(len(ikod), kodszam))lejárt a szerk, és csak kiemeltem a kódot gyorsan a feladatból, vedd úgy hogy ott sincs az előző hszben az a rész
, szóval:import random
h = 6
szám = random.randint(10**(h-1), (10**h)-1)Van ennél egyszerűbb?
-
K1nG HuNp
őstag
Az
if-et nem tudja megszakítani, nincs is értelme. Szóval a külsőfor-ból lép ki.Ha jól látom ez a kód a listákból álló adatok nevű lista annyiadik elemét adja meg (1-essel kezdve a számozást), ahol a listában van legalább egy ismétlődő elem.
Lehetett volna egyszerűbben is:
for index, kod in enumerate(adatok, 1):
szamok = set(kod)
if len(kod) != len(szamok):
breakEkkor az index értéke eleve a keresett ismetlodo lesz. Valószínűleg létezik szebb megoldás is.
köszi a lerövidítést, annyi, hogy a végén mindenképpen bele kell pakolnom az
ismetlodo = None-be az indexet, mert ha a tiedet használom akkor ha nincs is ismétlődés az adatokban akkor is 1-et kapok indexnek, nekem viszont ha nincs ismétlődés akkor azt ki kell írnom

Azért annak már örülök, hogy egy hónap alatt sikerült autodidakta módon felkészülnöm az érettségire programozásból. Megcsináltam minden eddig kiadott kétszintű érettségit és ha nem is lesz szép a kódóm, meg a lehető legrövidebb legalább működik ahogyan kell

Pythonba írni ezeket a feladatokat a C-hez képest ég és föld

Más: h hosszúságú random számot hogyan lehet a legegyszerűbben létrehozni?
n = 6
kodszam = random.randint(10**(n-1), (10**n)-1)
print("Egy {} hosszú kódszám: {}".format(len(ikod), kodszam)) -
cousin333
addikt
for index, kod in enumerate(adatok, 1):
szamok = set()
for szam in kod:
szamok.add(szam)
if len(kod) != len(szamok):
ismetlodo = index
breakitt a break az eredeti, első for-t szakítja meg vagy csak az if-et? Működik rendesen a kód, azt csinálja amit kell, csak szeretném tudni pontosan, hogy mi mit csinál

Az
if-et nem tudja megszakítani, nincs is értelme. Szóval a külsőfor-ból lép ki.Ha jól látom ez a kód a listákból álló adatok nevű lista annyiadik elemét adja meg (1-essel kezdve a számozást), ahol a listában van legalább egy ismétlődő elem.
Lehetett volna egyszerűbben is:
for index, kod in enumerate(adatok, 1):
szamok = set(kod)
if len(kod) != len(szamok):
breakEkkor az index értéke eleve a keresett ismetlodo lesz. Valószínűleg létezik szebb megoldás is.
-
K1nG HuNp
őstag
for index, kod in enumerate(adatok, 1):
szamok = set()
for szam in kod:
szamok.add(szam)
if len(kod) != len(szamok):
ismetlodo = index
breakitt a break az eredeti, első for-t szakítja meg vagy csak az if-et? Működik rendesen a kód, azt csinálja amit kell, csak szeretném tudni pontosan, hogy mi mit csinál

-
Stanlee
őstag
Sziasztok!
Egyaltalan nem ertek python-hoz. Talaltam githubon (https://github.com/phyber/nzbchecker/blob/master/nzbchecker.py) egy egyszeru de nekem nagyszeru kis python code-ot, ami egy adott nzb file tartalmat ellenorzi egy nntp szerveren. Annyira kellene, hogy mielott elkezdem vadul letolteni a nntp szerveren levo uzeneteket meggyozodjek rola, hogy mind fenn van-e a szerveren vagy sem.
Az nzbchecker.py mar vagy 5 eves es nem Windows-ra irodott, de sikerult kigyomlalnom belole azokat a reszeket, ami miatt Windows 7-en es Python 3 alatt el sem indult (https://pastebin.com/QmrkFkLS). Jelen pillanatban mar az elejen elverzik a mutatvany:
ERROR: Could not open NZB file '<nzb xmlns="http://www.newzbin.com/DTD/2003/nzb">
<file poster=""hentaifan" <hentaifan@none.com>" date="1520732375
" subject="10 yo. 3D Movies! [2/2] - "09.jpg" yEnc (1/1)">
<groups><group>alt.binaries.anime</group></groups>
<segments>
<segment bytes="235305" number="1">LZadnY0-ytlcHjnHnZ2dnUU7-YXNnZ2d@giganews.com
</segment>
</segments>
</file>
</nzb>'Csakhogy az ERROR: Could not open NZB file utan kilistazza a nzb file tartalmat, szoval valamit tudott vele kezdeni, de lovesem sincs, hogy mi nem jo a kis programban, hogy nem akar mukodni. Ha valaki esetleg ra tudna nezni, hogy mi a baja a pastebin-en levo kodsornak, nagyon orulnek neki es ezer koszonet erte elore is!!!
-
Zuzu
csendes tag
megoldottam egyedül de azért köszi

-
K1nG HuNp
őstag
Ezt lehet rövidebben?
cuccok = dict()
for termek in adatok[isorszam-1]:
cuccok.setdefault(termek, 0)
cuccok[termek] += 1Anno használtam valami 1 sorosat, ami ugyan ezt csinálta, tehát a dict-embe berakta a jelenlegi "terméket" ha még nem volt benne, ha meg már igen akkor csak hozzáadott 1-et az értékéhez
Közben megvan:
cuccok[termek] = cuccok.get(termek,0)+1 -
K1nG HuNp
őstag
Ezt lehet rövidebben?
cuccok = dict()
for termek in adatok[isorszam-1]:
cuccok.setdefault(termek, 0)
cuccok[termek] += 1Anno használtam valami 1 sorosat, ami ugyan ezt csinálta, tehát a dict-embe berakta a jelenlegi "terméket" ha még nem volt benne, ha meg már igen akkor csak hozzáadott 1-et az értékéhez
-
Zuzu
csendes tag
Sziasztok! Szeretnék egy kis segítséget kérni a hozzáértőktöl. (Python 2.7)
át kellene írni egy .py fájt hogy PL: valami.txt be írja ki a dolgokat.
erröl lenne szó [link]
az itt megjelenő mondatot kellene txt be irni
self.result_label = Label(frame, text="")Vagy legalább az alul megjelenő mondatot lehetne egérrel kimásolni.
irj léci privát üzenetet
köszönöm előre is.
-
KEAN
tag
Üdv.
Egy kissegítséget kérnék, 100 pixelszéles sávokat akarok generálni egy képre, de nem bírok rájönni hogy hol rontom el. :/
Valmiért minden második oszlopot feketén hagy, de miért? [kép]img = np.zeros((640,480), np.uint8)
size =100
k=False
num =0;
for i in range(len(img)):
for j in range(len(img[i])):
if(i%size<=size/2):
k= not k
num = num+1
if (k):
img[i][j]=255
else:
img[i][j] = 0Üdv,
nem próbáltam ki és csak feltételezek pár dolgot, de valami hasonlóra gondolok:
size = 100
for i in range(len(img): # Ez itt gondolom a sorok szama
for j in range(len(img[i])): # Ez meg gondolom az oszlopok szama
if not (i / size) % 2: # not megletevel/elhagyasaval lehet jatszani
img[i][j] = 255
else:
img[i][j] = 0Amúgy mindenképpen ott van a hiba, hogy a
k = not kmiatt minden körben változik akértéke. -
axioma
veterán
Üdv.
Egy kissegítséget kérnék, 100 pixelszéles sávokat akarok generálni egy képre, de nem bírok rájönni hogy hol rontom el. :/
Valmiért minden második oszlopot feketén hagy, de miért? [kép]img = np.zeros((640,480), np.uint8)
size =100
k=False
num =0;
for i in range(len(img)):
for j in range(len(img[i])):
if(i%size<=size/2):
k= not k
num = num+1
if (k):
img[i][j]=255
else:
img[i][j] = 0Az i%size helyett nem num%size akart lenni??
Es/vagy a num+=1 az mar nem biztos hogy az if-en belul kene legyen.
Figy, egyszerubb ha elmondod, hogy hogyan akartad megcsinalni, sajat szavakkal leirva, es utana terunk vissza a kodra. Mert nekem a koncepcio onmagaban nem tiszta, hogy mi akart lenni. -
Gyb001
senior tag
Üdv.
Egy kissegítséget kérnék, 100 pixelszéles sávokat akarok generálni egy képre, de nem bírok rájönni hogy hol rontom el. :/
Valmiért minden második oszlopot feketén hagy, de miért? [kép]img = np.zeros((640,480), np.uint8)
size =100
k=False
num =0;
for i in range(len(img)):
for j in range(len(img[i])):
if(i%size<=size/2):
k= not k
num = num+1
if (k):
img[i][j]=255
else:
img[i][j] = 0 -
ghostie
tag
-
velizare
nagyúr
Igen, pontosan ott száll el. Az sqlq egy szöveges változó, amiben az Sql Select utasítása van benne. Teszteltem egy kicsit tovább a dolgot. Úgy néz ki, hogy magában a viszonylag hosszú SQL utasításban maradt benne egy hosszú Ű, akkor adja ezt a hibaüznetetet. Ez sem jó, de ezen a problémán még át tudunk lépni.
Viszont ha az SQL utasítában nincs hosszú ű és ő, akkor lefut a lekérdezés, de az adatbázisban eltárolt ű és ő-ket lecseréli u-ra és o-ra (ha máshonnan, pl. pl/sql developerből kérdezem, akkor jól mutatja, vagyis az adatbázisban a megfelelő ékezetes betűk vannak eltárolva). Simán kiíratva a képernyőre is így jelenik meg, illetve csv-be írva is.
import sys
import csv
import cx_Oracle
csv_file = "tabla.csv"
outputFile = open(csv_file,'w') # 'wb'
output = csv.writer(outputFile, delimiter =';',quotechar =',',quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
con = cx_Oracle.connect('**********')
cur = con.cursor()
sqlq="select * from F4101D where imitm=1"
cur.execute(sqlq)
for row_data in cur: # add table rows
output.writerow(row_data)
print (row_data)
outputFile.close()
cur.close()
con.close()illetve a biztonság kedvéért ezt még futtasd le külön:
import sys
sys.defaultencoding() -
velizare
nagyúr
Igen, pontosan ott száll el. Az sqlq egy szöveges változó, amiben az Sql Select utasítása van benne. Teszteltem egy kicsit tovább a dolgot. Úgy néz ki, hogy magában a viszonylag hosszú SQL utasításban maradt benne egy hosszú Ű, akkor adja ezt a hibaüznetetet. Ez sem jó, de ezen a problémán még át tudunk lépni.
Viszont ha az SQL utasítában nincs hosszú ű és ő, akkor lefut a lekérdezés, de az adatbázisban eltárolt ű és ő-ket lecseréli u-ra és o-ra (ha máshonnan, pl. pl/sql developerből kérdezem, akkor jól mutatja, vagyis az adatbázisban a megfelelő ékezetes betűk vannak eltárolva). Simán kiíratva a képernyőre is így jelenik meg, illetve csv-be írva is.
import sys
import csv
import cx_Oracle
csv_file = "tabla.csv"
outputFile = open(csv_file,'w') # 'wb'
output = csv.writer(outputFile, delimiter =';',quotechar =',',quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
con = cx_Oracle.connect('**********')
cur = con.cursor()
sqlq="select * from F4101D where imitm=1"
cur.execute(sqlq)
for row_data in cur: # add table rows
output.writerow(row_data)
print (row_data)
outputFile.close()
cur.close()
con.close()elég sok minden lehet. elsőre add hozzá a connection stringhez ezt:
encoding = "UTF-8", nencoding = "UTF-8" -
ghostie
tag
Tehát akkor már ott elszáll, hogy
cur.execute(sqlq). Mi az sqlq; mi van "mögötte", mit definiál?Igen, pontosan ott száll el. Az sqlq egy szöveges változó, amiben az Sql Select utasítása van benne. Teszteltem egy kicsit tovább a dolgot. Úgy néz ki, hogy magában a viszonylag hosszú SQL utasításban maradt benne egy hosszú Ű, akkor adja ezt a hibaüznetetet. Ez sem jó, de ezen a problémán még át tudunk lépni.
Viszont ha az SQL utasítában nincs hosszú ű és ő, akkor lefut a lekérdezés, de az adatbázisban eltárolt ű és ő-ket lecseréli u-ra és o-ra (ha máshonnan, pl. pl/sql developerből kérdezem, akkor jól mutatja, vagyis az adatbázisban a megfelelő ékezetes betűk vannak eltárolva). Simán kiíratva a képernyőre is így jelenik meg, illetve csv-be írva is.
import sys
import csv
import cx_Oracle
csv_file = "tabla.csv"
outputFile = open(csv_file,'w') # 'wb'
output = csv.writer(outputFile, delimiter =';',quotechar =',',quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
con = cx_Oracle.connect('**********')
cur = con.cursor()
sqlq="select * from F4101D where imitm=1"
cur.execute(sqlq)
for row_data in cur: # add table rows
output.writerow(row_data)
print (row_data)
outputFile.close()
cur.close()
con.close() -
velizare
nagyúr
-
justmemory
senior tag
-
ghostie
tag
Az a gond, hogy csv-ig már el sem jutok, már a lekérdezésnél hibát dob a program (ha kiveszem belőle a csv kezelést, akkor is).
-
velizare
nagyúr
Sziasztok,
Új vagyok még Pythonban, a célom az lenne, hogy egy Oracle lekérdezést futtassak le a szerveren majd az eredményt CSV-be írjam. A kis programom működik is, kivéve akkor ha az eredmény "ű" vagy "ő" karaktereket tartalmaz, ilyenkor már a cursor.excecute parancs elszáll hibával (cx_oracle modul):
Traceback (most recent call last):
File ".\oracle_select.py", line 32, in <module>
cur.execute(sqlq)
File "C:\Python36-32\lib\encodings\cp1252.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode character '\u0171' in position 20: character maps to <undefined>Van esetleg valakinek ötlete, hogy hogyan lehetne kiküszöbölni ezt a problémát?
Köszönöm!
karakterkészlet-konverziós probléma. nekem is volt hasonló, kb fél éve, és ha jól emlékszem, akkor azt lett a megoldás, hogy már egy ugyanolyan karakterkészletű csv-be tettem bele. kellene kód a tiédhez.
-
justmemory
senior tag
Jaaa... hmm, az lehet... Sajnos a Windows-os megoldásban nem tudok segíteni

Esetleg ez nem segít? Menet közben is lehet karakterkódolást csinálni.
-
ghostie
tag
Szia,
próbáld meg, hogy az első v. második sorba a következőt írod a kódba:
# -*- coding: utf-8 -*-Nem biztos, hogy segít, de hátha

Szia, köszönöm ezt már próbáltam de sajnos nincs változás. Korábbi keresések alapján ez megoldás lehet, de olyat is olvastam, hogy csak linuxon működik. Én Windowson szeretném futtatni.
-
justmemory
senior tag
Sziasztok
Lenne pár kérdésem, kezdő vagyok:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
input=GPIO.input(17)
while True:
GPIO
if(GPIO.input(17)):
print("pressed")
time.sleep(2)
print("1")
time.sleep(2)
print("2")
time.sleep(2)Azt szeretném, hogy ha input 17 igaz, akkor írja ki, hogy "pressed", majd 2 sec múlva "1", ismét 2 sec múlva "2".
2 problémám van a fenti kóddal:
Ha igaz a bemenet, akkor kb. fél másodperc alatt végignyomja amiket akarok, majd a következő körben íjra ki csak 2 másodpercenként.
A másik gondom az, hogy ha futás közben mégegyszer jelet adok a 17-es bemenetre, akkor újra ráindít.
A célom az, hogy ha 17-es bemeneten kap egy impulzust, akkor sorrendben nyomja végig a programot, de közbe már ne figyelje a bemenetet, tehát ne indítson rá ha véletlenül megint jel lesz a 17-en.
Kicsit bonyolultan fogalmaztam meg, de ennyire azért nem lehet bonyolult.
Köszönöm a segítséget!
Szia,
ez alapján nekem sem világos, hogy pontosan mit is szeretnél azzal a két sorral, hogy:
GPIO.setup(23, GPIO.IN) # ez alapján a 23-asra állítod
input = GPIO.input(17) # itt pedig a 17-est olvasod/olvasnád ki.Vagy lehet, hogy csak én nem értek akkor valamit...
Awhileután miért kell aGPIO, és csak utána azif?Egyébként ha folyamatosan szeretnél figyelni egy inputot, akkor lehet, hogy érdemes lenne a
threading-et használni. -
justmemory
senior tag
Sziasztok,
Új vagyok még Pythonban, a célom az lenne, hogy egy Oracle lekérdezést futtassak le a szerveren majd az eredményt CSV-be írjam. A kis programom működik is, kivéve akkor ha az eredmény "ű" vagy "ő" karaktereket tartalmaz, ilyenkor már a cursor.excecute parancs elszáll hibával (cx_oracle modul):
Traceback (most recent call last):
File ".\oracle_select.py", line 32, in <module>
cur.execute(sqlq)
File "C:\Python36-32\lib\encodings\cp1252.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode character '\u0171' in position 20: character maps to <undefined>Van esetleg valakinek ötlete, hogy hogyan lehetne kiküszöbölni ezt a problémát?
Köszönöm!
Szia,
próbáld meg, hogy az első v. második sorba a következőt írod a kódba:
# -*- coding: utf-8 -*-Nem biztos, hogy segít, de hátha

-
ghostie
tag
Sziasztok,
Új vagyok még Pythonban, a célom az lenne, hogy egy Oracle lekérdezést futtassak le a szerveren majd az eredményt CSV-be írjam. A kis programom működik is, kivéve akkor ha az eredmény "ű" vagy "ő" karaktereket tartalmaz, ilyenkor már a cursor.excecute parancs elszáll hibával (cx_oracle modul):
Traceback (most recent call last):
File ".\oracle_select.py", line 32, in <module>
cur.execute(sqlq)
File "C:\Python36-32\lib\encodings\cp1252.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode character '\u0171' in position 20: character maps to <undefined>Van esetleg valakinek ötlete, hogy hogyan lehetne kiküszöbölni ezt a problémát?
Köszönöm!
-
sonar
addikt
Sziasztok
Lenne pár kérdésem, kezdő vagyok:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
input=GPIO.input(17)
while True:
GPIO
if(GPIO.input(17)):
print("pressed")
time.sleep(2)
print("1")
time.sleep(2)
print("2")
time.sleep(2)Azt szeretném, hogy ha input 17 igaz, akkor írja ki, hogy "pressed", majd 2 sec múlva "1", ismét 2 sec múlva "2".
2 problémám van a fenti kóddal:
Ha igaz a bemenet, akkor kb. fél másodperc alatt végignyomja amiket akarok, majd a következő körben íjra ki csak 2 másodpercenként.
A másik gondom az, hogy ha futás közben mégegyszer jelet adok a 17-es bemenetre, akkor újra ráindít.
A célom az, hogy ha 17-es bemeneten kap egy impulzust, akkor sorrendben nyomja végig a programot, de közbe már ne figyelje a bemenetet, tehát ne indítson rá ha véletlenül megint jel lesz a 17-en.
Kicsit bonyolultan fogalmaztam meg, de ennyire azért nem lehet bonyolult.
Köszönöm a segítséget!
Mondjuk én speciel nem látom, hogy hol a 17-es PIN input deklarálása, csak a 23-asat látom.
szerintem ez kéne bele:GPIO.setup(17, GPIO.IN) -
RAiN91
őstag
Sziasztok
Lenne pár kérdésem, kezdő vagyok:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
input=GPIO.input(17)
while True:
GPIO
if(GPIO.input(17)):
print("pressed")
time.sleep(2)
print("1")
time.sleep(2)
print("2")
time.sleep(2)Azt szeretném, hogy ha input 17 igaz, akkor írja ki, hogy "pressed", majd 2 sec múlva "1", ismét 2 sec múlva "2".
2 problémám van a fenti kóddal:
Ha igaz a bemenet, akkor kb. fél másodperc alatt végignyomja amiket akarok, majd a következő körben íjra ki csak 2 másodpercenként.
A másik gondom az, hogy ha futás közben mégegyszer jelet adok a 17-es bemenetre, akkor újra ráindít.
A célom az, hogy ha 17-es bemeneten kap egy impulzust, akkor sorrendben nyomja végig a programot, de közbe már ne figyelje a bemenetet, tehát ne indítson rá ha véletlenül megint jel lesz a 17-en.
Kicsit bonyolultan fogalmaztam meg, de ennyire azért nem lehet bonyolult.
Köszönöm a segítséget!
-
VirsLee
támogató
Így néznek ki az adatokban az r-ek: "TI-2342", "BU-5523"
megadott = input("\n6. feladat\nAdjon meg egy rendszámot, az ismeretlent *al jelölje: ").upper()
illeszkedők = []
for o, p, mp, r in adatok:
for i in range(1, len(megadott)):
if r[i] != "*" and r[i] != megadott[i]: #nem csillag a betu tehat nezni kell de nem egyezik
break
else: #vagy csillag vagy nem csillag de egyezik:
illeszkedők.append(r)
if illeszkedők:
print("Az illeszkedő rendszámok:")
for r in illeszkedők:
print(r)
else:
print("Nincs illeszkedő rendszám!")Rendben lefut a kód, a feladatnak megfelel, csak nem értem miért van az hogy ha inputnak csak egy betüt adok meg (pl: "T") akkor nem kapok semmilyen rendszámot vissza, viszont ha már pl "TI"-t adok meg akkor az jó neki
Range nem mehet 0-tól inkább?
-
K1nG HuNp
őstag
Így néznek ki az adatokban az r-ek: "TI-2342", "BU-5523"
megadott = input("\n6. feladat\nAdjon meg egy rendszámot, az ismeretlent *al jelölje: ").upper()
illeszkedők = []
for o, p, mp, r in adatok:
for i in range(1, len(megadott)):
if r[i] != "*" and r[i] != megadott[i]: #nem csillag a betu tehat nezni kell de nem egyezik
break
else: #vagy csillag vagy nem csillag de egyezik:
illeszkedők.append(r)
if illeszkedők:
print("Az illeszkedő rendszámok:")
for r in illeszkedők:
print(r)
else:
print("Nincs illeszkedő rendszám!")Rendben lefut a kód, a feladatnak megfelel, csak nem értem miért van az hogy ha inputnak csak egy betüt adok meg (pl: "T") akkor nem kapok semmilyen rendszámot vissza, viszont ha már pl "TI"-t adok meg akkor az jó neki
-
Pulsar
veterán
Köszönöm szepen mindkettőtöknek a választ

Jelen esetben nem érdekel hogy mivel, és melyik részével van a gond, csak az hogy megy vagy sem. És ez akkor alkalmas erre. Köszönöm
-
KEAN
tag
Sziasztok,
try exceptkérdésem lenne
Ha két feltétel van benne akkor mindkét feltételnek teljesülnie kell ahhoz hogy a ne fusson le azexceptág, vagy ha az egyik teljesül, de a másik nem, akkor lefut azexcept?
(Bocsánat, ha hibásan fogalmazok, csak hobbi programozó vagyok
Tehát :
def olvasni():
try:
file = open(“testfile.txt”,”r”)
file1 = open(“testfile1.txt”,”r”)
akarmi = "1"
except:
akarmi = "0"
return akarmiItt mi történik ha file1 nem megnyitható?
vagy így a a helyes:def olvasni():
try:
file = open(“testfile.txt”,”r”)
akarmi = "1"
except:
akarmi = "0"
if akarmi == "1"
try:
file = open(“testfile.txt”,”r”)
akarmi = "2'
except:
akarmi = "0"
return akarmitry ... except szerkezetben bármilyen hiba történik, akkor aktiválódni fog az except ág, szóval a kérdésedre a válasz igen.
Amúgy lehet "szűrni" a hibákra, ha különféle módokon akarod lekezelni őket. (Persze neked most mindkét parancs IOError-t dobna, szóval ezzel itt és most nem sokra mész...)try:
some_risky_thing
except KeyError:
do_something_with_keyerror
except IndexError:
do_something_with_indexerror(A fenti példában csak a két "nevesített" hibát kapjuk el, minden más hiba a program leálláshoz vezet vagy legalábbis traceback fog keletkezni.)
-
justmemory
senior tag
Sziasztok,
try exceptkérdésem lenne
Ha két feltétel van benne akkor mindkét feltételnek teljesülnie kell ahhoz hogy a ne fusson le azexceptág, vagy ha az egyik teljesül, de a másik nem, akkor lefut azexcept?
(Bocsánat, ha hibásan fogalmazok, csak hobbi programozó vagyok
Tehát :
def olvasni():
try:
file = open(“testfile.txt”,”r”)
file1 = open(“testfile1.txt”,”r”)
akarmi = "1"
except:
akarmi = "0"
return akarmiItt mi történik ha file1 nem megnyitható?
vagy így a a helyes:def olvasni():
try:
file = open(“testfile.txt”,”r”)
akarmi = "1"
except:
akarmi = "0"
if akarmi == "1"
try:
file = open(“testfile.txt”,”r”)
akarmi = "2'
except:
akarmi = "0"
return akarmiSzia,
én úgy tudom, hogy ha a try-ban akármelyik feltétel nem teljesül, akkor már az except-re fog futni a dolog, magyarul ha a file1 nem nyitható, akkor error-t fog dobni.
Én egyébként lehet inkább így írnám (noha én is csak hobbista vagyok
):def olvasni():
try:
with open("testfile.txt”,”r”) as testfile, with open(“testfile1.txt”,”r”) as testfile1:
tartalom = testfile.readlines()
tartalom1 = testfile1.readlines()
amit_csinálni_akarsz()
akármi = "1"
except:
akármi = "0"
return akármiÍgy ha akármelyik fájlt nem tudja megnyitni, akkor az except-re fog futni.
A fenti módszer csak python 2.7 vagy afölötti verzióval működik, 2.6 és az alatt úgy kell, hogy:
try:
with open("testfile.txt”,”r”) as testfile:
with open("testfile1.txt”,”r”) as testfile1: -
Pulsar
veterán
Sziasztok,
try exceptkérdésem lenne
Ha két feltétel van benne akkor mindkét feltételnek teljesülnie kell ahhoz hogy a ne fusson le azexceptág, vagy ha az egyik teljesül, de a másik nem, akkor lefut azexcept?
(Bocsánat, ha hibásan fogalmazok, csak hobbi programozó vagyok
Tehát :
def olvasni():
try:
file = open(“testfile.txt”,”r”)
file1 = open(“testfile1.txt”,”r”)
akarmi = "1"
except:
akarmi = "0"
return akarmiItt mi történik ha file1 nem megnyitható?
vagy így a a helyes:def olvasni():
try:
file = open(“testfile.txt”,”r”)
akarmi = "1"
except:
akarmi = "0"
if akarmi == "1"
try:
file = open(“testfile.txt”,”r”)
akarmi = "2'
except:
akarmi = "0"
return akarmi -
Mr Dini
addikt
Üdv!
Tudtok ajánlani aszinkron támogató Firebase könyvtárat?
-
Vesporigo
aktív tag
Szia,
ez a
sendMailfüggvény honnét jön? Megnézve az smtplib doksiját teljesen más asendmailszintaxisa. A fentebb linkelt oldalon tök jól le van írva, hogy mit is kellene csinálnod. (Létrehozni egy MIMEMultipart objektumot és ahhoz azattach()függvénnyel hozzáadogatni a csatolmányokat, ha 3x, akkor 3x meghívva azattach()-ot.)
... vagy valamit nagyon nem értek.
Végül megoldottam a problémát.
A sendMail függvény szintaxisa a következőképpen nézett ki:def sendMail(to, subject, text, files=[])Aztán az előre definiált csatolmányokat így tudtam hozzáadni:
sendMail(TO, "Statusz", BODY, attach1 + attach2 + attach3)Nekem ez tűnt a legegyszerűbb megoldásnak, mivel amikor elhoztam a szerverekről a későbbi csatolmányokat, egyúttal változóként definiáltam őket, így már csak össze kellett őket fűznöm. Kb 3 napig böngésztem a netet megoldás után kutatva, de mind bonyolultabbnak tűnt.
Köszönöm mindenkinek a segítséget!
-
kezdosql
tag
Koszonom mindenkinek!
Igen, ok se gondoltak komolyan, ahogy azt mondtam, hogy megoldhato, kossuk meg a szerzodest, azonnal kodde valtak.

Nekem mar eleve a "telefonomon futott" dolog gyanus volt, nyilvan nem ott fut, csak a kepernyokepet viszi at, azt is erosen lebutitva.
-
KEAN
tag
Smtplibbel szeretném küldeni.
Igazából már megvan a 3 csatolmány, 3 különböző könyvtárból hozom el őket, csak szeretném mindhármat csatolni ugyanabba a levélbe.Az érdekelne, hogy ebben az esetben hogyan hivatkozhatok a több csatolmányra a sendMailben.
A másik megoldás, ami eszembe jutott, ez lenne:
sendMail(TO, "Statusz", BODY, ['attach1','attach2','attach3'])Vagyis az előzővel ellentétben itt nem fűzném össze a fájlokat, hanem egyenként hivatkoznék rájuk.
Melyik megoldás lehet működőképes?
Nincs szükségem for ciklusra, mert a fájlokat definiálom, mikor elhozom őket különböző könyvtárakból.Szia,
ez a
sendMailfüggvény honnét jön? Megnézve az smtplib doksiját teljesen más asendmailszintaxisa. A fentebb linkelt oldalon tök jól le van írva, hogy mit is kellene csinálnod. (Létrehozni egy MIMEMultipart objektumot és ahhoz azattach()függvénnyel hozzáadogatni a csatolmányokat, ha 3x, akkor 3x meghívva azattach()-ot.)
... vagy valamit nagyon nem értek.
-
Vesporigo
aktív tag
Nem írtad, hogy milyen modult használnál ehhez... Én python-t sosem használtam még ilyesmire, de csak gyorsan rákeresve azt találtam, hogy az itteni 3. példa szerint egy sima for ciklussal lehet hozzáadni több csatolmányt. De mondom, nem tudom, sosem próbáltam; hátha jön majd valaki, aki már igen...
Smtplibbel szeretném küldeni.
Igazából már megvan a 3 csatolmány, 3 különböző könyvtárból hozom el őket, csak szeretném mindhármat csatolni ugyanabba a levélbe.Az érdekelne, hogy ebben az esetben hogyan hivatkozhatok a több csatolmányra a sendMailben.
A másik megoldás, ami eszembe jutott, ez lenne:
sendMail(TO, "Statusz", BODY, ['attach1','attach2','attach3'])Vagyis az előzővel ellentétben itt nem fűzném össze a fájlokat, hanem egyenként hivatkoznék rájuk.
Melyik megoldás lehet működőképes?
Nincs szükségem for ciklusra, mert a fájlokat definiálom, mikor elhozom őket különböző könyvtárakból. -
justmemory
senior tag
Szeretnék egy emailhez csatolmányokat hozzáadni. Definiáltam 3 csatolmányt (attach1, attach2, attach3).
Valahol olvastam, hogy így is csatolhatom őket a levelemhez egyszerre:
csatolmany = attach1 + attach2 + attach3
sendMail(TO, "Statusz", BODY, csatolmany)Mit gondoltok, ez a csatolmány összefűzős megoldás működőképes? (Bocsi a buta kérdésért, még sosem írtam ilyet több csatolmánnyal.)
Nem írtad, hogy milyen modult használnál ehhez... Én python-t sosem használtam még ilyesmire, de csak gyorsan rákeresve azt találtam, hogy az itteni 3. példa szerint egy sima for ciklussal lehet hozzáadni több csatolmányt. De mondom, nem tudom, sosem próbáltam; hátha jön majd valaki, aki már igen...
-
Vesporigo
aktív tag
Szeretnék egy emailhez csatolmányokat hozzáadni. Definiáltam 3 csatolmányt (attach1, attach2, attach3).
Valahol olvastam, hogy így is csatolhatom őket a levelemhez egyszerre:
csatolmany = attach1 + attach2 + attach3
sendMail(TO, "Statusz", BODY, csatolmany)Mit gondoltok, ez a csatolmány összefűzős megoldás működőképes? (Bocsi a buta kérdésért, még sosem írtam ilyet több csatolmánnyal.)
-
Mr Dini
addikt
Köszönöm!

Végül mégis az aiohttp clientjét használtam, s nem bántam meg. Nagyon jól dokumentált, funkciódús dolog. Tökéletes a feladatra. Egy dolog hiányzik még, az pedig a timeout. Jelenleg az asyncio wait_for-ját használom, ami teszi szépen a dolgát, de érdekel, hogy lehet-e ezt valahogy "szebben" megoldani. Néztem a doksit, de nem találtam egyelőre erre vonatkozó információt.
-
EQMontoya
veterán
En egyfelekeppen, azon belul szabalyosan formazok, csak az ajanlasokbol nem mindent tartok be. A fix behuzast igen, de nem 4-gyel, hanem 2-vel. Valtozokat ertelmesen. De azt peldaul sose ertettem, miert jo a relacios jelek korul plusz space-eket hagyni... en tomenyebben irom, ebben a Python plane jo partner
[munkailag java-s vagyok, sokkal szoszatyarabb].
Termeszetesen, ahol kell, alkalmazkodom. Sot, szoftver karbantartaskor, bar nem vagyok rakenyszeritve, de ha a kod kozepebe kell beleirnom, akkor az ott aktualis stilust kovetem. Ha kulon osztaly vagy meretesebb fuggveny, akkor mar inkabb a sajatom. Ennek mar nem ront a minosegen, elottem is tobben es tobbfelekeppen irtak egyes reszeit...A fix behuzast igen, de nem 4-gyel, hanem 2-vel.
Ezzel maximálisan egyetértek, a 4-es behúzás már 3-4 mélységben nagyon sok felesleges teret hagy a sorok előtt.
-
axioma
veterán
A sorhossz limit nálam is gond szokott lenni, főleg ha van egy összetett SQL lekérdezés. (az ilyen warn-ingokat ignorálom) De alapvetően igyekszem betartani az ajánlásokat.
Szerintem ha vki igényes akkor szánjon időt a formázásra is.
Mostanában nem kódolok sokat, de ha ránézek egy összetett kódra azért abból látszik sokszor, hogy mire számitson az ember...
Falra tudnék mászni, mikor össze vissza vannak kommentelve a dolgok, idébb odébb egy-egy tab befigyel...
spacek minden fele..., meg az idióta változó nevektől, össze vissza kis és nagybetükkelEn egyfelekeppen, azon belul szabalyosan formazok, csak az ajanlasokbol nem mindent tartok be. A fix behuzast igen, de nem 4-gyel, hanem 2-vel. Valtozokat ertelmesen. De azt peldaul sose ertettem, miert jo a relacios jelek korul plusz space-eket hagyni... en tomenyebben irom, ebben a Python plane jo partner
[munkailag java-s vagyok, sokkal szoszatyarabb].
Termeszetesen, ahol kell, alkalmazkodom. Sot, szoftver karbantartaskor, bar nem vagyok rakenyszeritve, de ha a kod kozepebe kell beleirnom, akkor az ott aktualis stilust kovetem. Ha kulon osztaly vagy meretesebb fuggveny, akkor mar inkabb a sajatom. Ennek mar nem ront a minosegen, elottem is tobben es tobbfelekeppen irtak egyes reszeit... -
sonar
addikt
Igaz, hogy me'lyse'gben is ajanlott az embernek korlatoznia magat, de a 4 szokoz mint alap ajanlas nekem attol teszi nehezze olvasni, hogy erezhetoen egyre rovidebb sorokba kene beferni kommenttel egyutt (ha a sorhoz tartozik), ahogy egyre bentebbi szintrol van szo. A blokk beazonositasa meg azert mar nem olyan nagy problema ma mar, mint amikor a vi volt a prog.iras alapja...
A sorhossz limit nálam is gond szokott lenni, főleg ha van egy összetett SQL lekérdezés. (az ilyen warn-ingokat ignorálom) De alapvetően igyekszem betartani az ajánlásokat.
Szerintem ha vki igényes akkor szánjon időt a formázásra is.
Mostanában nem kódolok sokat, de ha ránézek egy összetett kódra azért abból látszik sokszor, hogy mire számitson az ember...
Falra tudnék mászni, mikor össze vissza vannak kommentelve a dolgok, idébb odébb egy-egy tab befigyel...
spacek minden fele..., meg az idióta változó nevektől, össze vissza kis és nagybetükkel -
axioma
veterán
Ha már formázás a pep8 egyértelműen meghatározza, hogy mit merre hogyan. Mindent nem lehet fejben tartani, de vannak jó kis tool-ok amiket ha ráeresztesz a kódra akkor adnak infót, hogy mi az ami stílus idegen.
pep8online.com - én legtöbbször itt ellenőrzöm a formázást.
A végén tényleg szép és olvasható kód leszIgaz, hogy me'lyse'gben is ajanlott az embernek korlatoznia magat, de a 4 szokoz mint alap ajanlas nekem attol teszi nehezze olvasni, hogy erezhetoen egyre rovidebb sorokba kene beferni kommenttel egyutt (ha a sorhoz tartozik), ahogy egyre bentebbi szintrol van szo. A blokk beazonositasa meg azert mar nem olyan nagy problema ma mar, mint amikor a vi volt a prog.iras alapja...
-
sonar
addikt
Ha már formázás a pep8 egyértelműen meghatározza, hogy mit merre hogyan. Mindent nem lehet fejben tartani, de vannak jó kis tool-ok amiket ha ráeresztesz a kódra akkor adnak infót, hogy mi az ami stílus idegen.
pep8online.com - én legtöbbször itt ellenőrzöm a formázást.
A végén tényleg szép és olvasható kód lesz -
cousin333
addikt
-
Pulsar
veterán
-
VirsLee
támogató
-
Pulsar
veterán
Meglett a hiba.
A previous_status es a test fügvenyek visszaterési éréke nem volt azonos. return int(ertek) és jo lett
-
Pulsar
veterán
-
VirsLee
támogató
Sziasztok,
hobbi programozó vagyok, és egy egyszerű if kicsit megakasztott, amit nem értek miért nem megy, ebbe kérném a segítségeteket.
Két értékem van
Az egyiket sql-ből olvasom ki a másikat pedig egy try except eredménye adja
a previous_status() jön az sql-ből, értéke 1 vagy 0 lehet,
a test() pedig a try except-ből szintén értéke 1 vagy 0 (try 1, except 0)
idáig nincs is gond, mert szépen kiírja az értékeket a printwhile shutdown() != "3":
print test()
print previous_status()
if test() == "1":
if previous_status() == test():
time.sleep(300)
else:
print "megy"
status_update(ok)
time.sleep(300)
if test() == "0":
if previous_status() == test():
time.sleep(300)
else:
print "nem megy"
status_update(nok)
time.sleep(300)A test() értéke jelenleg mindig 1.
és itt jön a gond, hogy a previous_status() 1 akkor is lefut az else, és akkor is ha az értéke 0 akkor is.
De miért?
Már kitéptem minden hajam
Azt hiszem sokat segítene egy rendesen formázott kód, mert így nem látni, hogyan vannak blokkokban a részek.
-
Pulsar
veterán
Sziasztok,
hobbi programozó vagyok, és egy egyszerű if kicsit megakasztott, amit nem értek miért nem megy, ebbe kérném a segítségeteket.
Két értékem van
Az egyiket sql-ből olvasom ki a másikat pedig egy try except eredménye adja
a previous_status() jön az sql-ből, értéke 1 vagy 0 lehet,
a test() pedig a try except-ből szintén értéke 1 vagy 0 (try 1, except 0)
idáig nincs is gond, mert szépen kiírja az értékeket a printwhile shutdown() != "3":
print test()
print previous_status()
if test() == "1":
if previous_status() == test():
time.sleep(300)
else:
print "megy"
status_update(ok)
time.sleep(300)
if test() == "0":
if previous_status() == test():
time.sleep(300)
else:
print "nem megy"
status_update(nok)
time.sleep(300)A test() értéke jelenleg mindig 1.
és itt jön a gond, hogy a previous_status() 1 akkor is lefut az else, és akkor is ha az értéke 0 akkor is.
De miért?
Már kitéptem minden hajam
-
EQMontoya
veterán
-
Mr Dini
addikt
Teljesen jogos!
Sima HTTP Get kéréseket küldenék egy API felé, akitől JSON adatot várok.
-
EQMontoya
veterán
Azért ez kicsit bonyolultabb, pl:
-Rest vagy sima http?
-Cookie-kat akarsz-e küldözgetni
Stb...Szóval ha kicsit kifejted, hogy mire is kellene, akkor könnyebb rá válaszolni szerintem.
-
Mr Dini
addikt
Az eredményt tekintve megegyeznek. A technikai hátteret nem ismerem, de a list comprehension (az első megoldás) nem csak szebb és kompaktabb, hanem valamivel gyorsabb is. A disassembly jelentősen különbözik, de az első esetben van egy függvényhívás, aminek a hossza nem ismert.
ui: Nyilván a második példád helyesen:
lista = []
for nev, sorszam, valami in adatok:
if sorszam == 2:
lista.append((nev, sorszam, valami))Szerintem a fentiek igazak a második esetben is, a
lambdajavára.Sziasztok!
Python OOP esetében melyik könyvtárat érdemes HTTP kérések lebonyolítására használni? aiohttp-t, vagy requests a gyorsabb/jobb/megbízhatóbb?
Úgy vettem észre, hogy egyébként az aiohttp gyorsabb futást eredményez...

Szerk:
Bocs, nem válasz akart lenni!
-
cousin333
addikt
Az eredményt tekintve megegyeznek. A technikai hátteret nem ismerem, de a list comprehension (az első megoldás) nem csak szebb és kompaktabb, hanem valamivel gyorsabb is. A disassembly jelentősen különbözik, de az első esetben van egy függvényhívás, aminek a hossza nem ismert.
ui: Nyilván a második példád helyesen:
lista = []
for nev, sorszam, valami in adatok:
if sorszam == 2:
lista.append((nev, sorszam, valami))Szerintem a fentiek igazak a második esetben is, a
lambdajavára. -
K1nG HuNp
őstag
Ugye:
lista = [(nev, sorszam, valami) for (nev, sorszam, valami) in adatok if sorszam == 2]és
lista = []
for nev, sorszam, valami in adatok:
if sorszam == 2
lista.append(nev, szorszam valami)megegyeznek?
ez is hasonló a def és a lambda esethez nem?
-
user112
senior tag
Sziasztok!
Tudnátok segíteni Pmw-vel kapcsolatban (2.0.0)?
Installáltam (Anaconda3), de mindig hibára fut:AttributeError: module 'Pmw' has no attribute 'initialise'
például ennél a sornál:
ablak = Pmw.initialise()vagy egy mintapélda soránál:
Pmw.initialise(root) -
axioma
veterán
Igazából az intervallumokat én így akarom megadni:
intervals = (2,4,7,12)
Az egyes intervallumokat a változó egymás utáni elemeiből rakom össze (2-4,4-7,7-12), így kevesebb adat kell, relációkkal kezelem az átfedést.
azaz
if változó > intervals[0] és változó <= intervals[1]
parancsok
if változó > intervals[1] és változó <= intervals[2]
parancsok
Ez for ciklussal is menni fog, hiszen csak léptetnem kell a változó elemeit. Szerintem ez már menni fog.Persze simán át lehet alakítani ezt (2,4,7,12) erre (2-4,4-7,7-12) akkor ez is működhet.
for x,y in intervals:
for i in xrange(x,y+1):
parancs()De ez nekem még új. Majd kipróbálom.
Köszönöm a tippeket! Azt hiszem innen már elboldogulok.
Nyilvan akkor mar pont jobb ha az indexszel mesz... de ne if-ekkel hanem tovabbra is:
for idx in xrange(len(intervals)-1):
for i in xrange(intervals[idx],intervals[idx+1]):
parancs() -
#82595328
törölt tag
1. ja hogy a listaval kapsz egy intervallumhoz tartozo argumentumot is, amit megadsz az egy darab parancsnak, igy mar ertem
2. az afor x,y in intervals:nalam mar egy koztes lepes utani: az intervallum also es felso hatara mint tuple (vagy list) gondoltam hogy johet a feluletrol, nem csak 9-15 formaban (bar az se gond, mertmap(int,intervalstring.split('-'))atalakitja. Tehat ha igy jon be, hogyintervals=[(1,5),(6,8),(9,15)]vagyintervals==[[2,3],[4,6],[7,11],[12,15]]akkor igy irnam le a felteteled:for i in xrange(szam-valami):
for x,y in intervals:
if x<=i<=y:
parancs()
Sot, ha tudod hogy a kulso ciklus mindig minden intervallumon vegigmegy, sztem ez egy sokkal robosztusabb kod:for x,y in intervals:
for i in xrange(x,y+1):
parancs()Igaz, ebbe most nem kombinaltam bele, hogy plusz jon a hozza tartozo ertek, de akkor lehet az
x,y,ertekharmasa mint tuple/list az egy listaelem, es akkor azertek-et irod a parancs() argumentumanak.Igazából az intervallumokat én így akarom megadni:
intervals = (2,4,7,12)
Az egyes intervallumokat a változó egymás utáni elemeiből rakom össze (2-4,4-7,7-12), így kevesebb adat kell, relációkkal kezelem az átfedést.
azaz
if változó > intervals[0] és változó <= intervals[1]
parancsok
if változó > intervals[1] és változó <= intervals[2]
parancsok
Ez for ciklussal is menni fog, hiszen csak léptetnem kell a változó elemeit. Szerintem ez már menni fog.Persze simán át lehet alakítani ezt (2,4,7,12) erre (2-4,4-7,7-12) akkor ez is működhet.
for x,y in intervals:
for i in xrange(x,y+1):
parancs()De ez nekem még új. Majd kipróbálom.
Köszönöm a tippeket! Azt hiszem innen már elboldogulok.
-
axioma
veterán
Pedig az tök egyszerű.
Az intervallum változó nem úgy nézne ki, hanem valahogy így
((intervallum1, hozzátartozó érték1),(intervallum2, hozzátartozó érték2),..(intervallumn, hozzátartozó értékn))
Innen már gondolom egyértelmű, hogy bármennyi elem esetén lesz külön parancs.for x,y in intervals: sajnos fogalmam sincs, hogy tudnám használni
1. ja hogy a listaval kapsz egy intervallumhoz tartozo argumentumot is, amit megadsz az egy darab parancsnak, igy mar ertem
2. az afor x,y in intervals:nalam mar egy koztes lepes utani: az intervallum also es felso hatara mint tuple (vagy list) gondoltam hogy johet a feluletrol, nem csak 9-15 formaban (bar az se gond, mertmap(int,intervalstring.split('-'))atalakitja. Tehat ha igy jon be, hogyintervals=[(1,5),(6,8),(9,15)]vagyintervals==[[2,3],[4,6],[7,11],[12,15]]akkor igy irnam le a felteteled:for i in xrange(szam-valami):
for x,y in intervals:
if x<=i<=y:
parancs()
Sot, ha tudod hogy a kulso ciklus mindig minden intervallumon vegigmegy, sztem ez egy sokkal robosztusabb kod:for x,y in intervals:
for i in xrange(x,y+1):
parancs()Igaz, ebbe most nem kombinaltam bele, hogy plusz jon a hozza tartozo ertek, de akkor lehet az
x,y,ertekharmasa mint tuple/list az egy listaelem, es akkor azertek-et irod a parancs() argumentumanak. -
justmemory
senior tag
Azt hiszem nem voltam egyértelmű, nem én adom meg, hogy hány elem lesz a listában. Grafikus felületen szeretnék egy űrlapot (kb. egy 2 oszlopos táblázat), aminek tetszőleges számú sora lehet.
for i in xrange(4):
lista.append(intervallum)Tehát ez biztos nem jó nekem.
for intervallum in lista:
if szam in intervallum:
parancs1Igen, ilyesmire gondoltam, csak lesz még egy for ciklus. Ami megmondja, hogy az egész hányszor fusson le.
Köszönöm!
Tehát a programrészlet valahogy így fog kinézni:for i in range(szam-x):
for intervallum in lista:
if szam in intervallum:
parancs1Értem...
Egyébként nem kell ámforciklussal hozzáadni, ez csak egy lehetőség volt a részemről, mert nem tudtam hogyan szeretnéd
A listához bármilyen formában, bármikor hozzá lehet adni, nem kell a ciklus... -
#82595328
törölt tag
Bocs, lejárt a szerkesztési idő...
Mármint az intervallumok darabszámára nem kellene a lista esetében külön változó, mert ha fontos, akkor azt a
len(lista)megadja.
Pl.:szam = 100
lista = []
# Ha mondjuk 4 intervallumot kérsz be, akkor pl.:
for i in xrange(4):
lista.append(intervallum) # Értelemszerűen stringben kell bekérni, különben ki fogja vonni egymásból a két számot...
# Ezt követően fog a listád úgy kinézni, hogy:
lista = ["1-10", "10-20", "50-100", "100-1000"]
for intervallum in lista:
if szam in intervallum:
parancs1 # Ha kifejezetten fontos, hogy éppen melyik intervallumban jár, akkor nyilván arra is figyelni kell.Azt hiszem nem voltam egyértelmű, nem én adom meg, hogy hány elem lesz a listában. Grafikus felületen szeretnék egy űrlapot (kb. egy 2 oszlopos táblázat), aminek tetszőleges számú sora lehet.
for i in xrange(4):
lista.append(intervallum)Tehát ez biztos nem jó nekem.
for intervallum in lista:
if szam in intervallum:
parancs1Igen, ilyesmire gondoltam, csak lesz még egy for ciklus. Ami megmondja, hogy az egész hányszor fusson le.
Köszönöm!
Tehát a programrészlet valahogy így fog kinézni:for i in range(szam-x):
for intervallum in lista:
if szam in intervallum:
parancs1 -
#82595328
törölt tag
Pedig az tök egyszerű.
Az intervallum változó nem úgy nézne ki, hanem valahogy így
((intervallum1, hozzátartozó érték1),(intervallum2, hozzátartozó érték2),..(intervallumn, hozzátartozó értékn))
Innen már gondolom egyértelmű, hogy bármennyi elem esetén lesz külön parancs.for x,y in intervals: sajnos fogalmam sincs, hogy tudnám használni
-
justmemory
senior tag
igen, ez mondjuk egy jó kérdés a parancsok kapcsán -
justmemory
senior tag
A leírásod alapján így hirtelen én is
forciklusba tenném; az intervallumokat listában tárolnám el és akkor nem kellene külön változó rá..Bocs, lejárt a szerkesztési idő...
Mármint az intervallumok darabszámára nem kellene a lista esetében külön változó, mert ha fontos, akkor azt a
len(lista)megadja.
Pl.:szam = 100
lista = []
# Ha mondjuk 4 intervallumot kérsz be, akkor pl.:
for i in xrange(4):
lista.append(intervallum) # Értelemszerűen stringben kell bekérni, különben ki fogja vonni egymásból a két számot...
# Ezt követően fog a listád úgy kinézni, hogy:
lista = ["1-10", "10-20", "50-100", "100-1000"]
for intervallum in lista:
if szam in intervallum:
parancs1 # Ha kifejezetten fontos, hogy éppen melyik intervallumban jár, akkor nyilván arra is figyelni kell. -
axioma
veterán
Olyan kérdésem van, hogy lehet-e olyan if-elif szerkezetet csinálni, aminél az if-elifek száma változó.
Egyszerű példa bekérek egy számot mondjuk:adj meg egy számot: mondjuk 100
egy másik változóban bekérek intervallumokat (1-10, 10-20, 50-100, 100-1000), de ezeknek az elemek száma változhat.A program váza így nézne ki:
for i in bármi - Az mindegy hányszor fut le a for ciklus.
if szám in intervallum1
parancsok1
elif szám in intervallum2
parancsok2
....
elif szám in intervallumn
parancsoknVan ötletem, hogy csinálnám meg. Az if-et beraknám egy for ciklusba az intervallum számát változóból illesztem be, azaz annyiszor futna le a for ciklus, amennyi eleme van a változónak. De hátha valaki csinált már ilyet, vagy jobb ötlete van.
Hat en itt mar azt nem ertem, hogy a
parancsok_ihogyan allna elo, ha semmi korlat nincs a darabszamra.
Masreszt egyaltalan, a parancsok is leirhatoak azifuggvenyeben?
Egyebkent igen, lepj ki a szamlalos for ciklus gondolkodasbol,for x,y in intervals:kell neked. -
justmemory
senior tag
Olyan kérdésem van, hogy lehet-e olyan if-elif szerkezetet csinálni, aminél az if-elifek száma változó.
Egyszerű példa bekérek egy számot mondjuk:adj meg egy számot: mondjuk 100
egy másik változóban bekérek intervallumokat (1-10, 10-20, 50-100, 100-1000), de ezeknek az elemek száma változhat.A program váza így nézne ki:
for i in bármi - Az mindegy hányszor fut le a for ciklus.
if szám in intervallum1
parancsok1
elif szám in intervallum2
parancsok2
....
elif szám in intervallumn
parancsoknVan ötletem, hogy csinálnám meg. Az if-et beraknám egy for ciklusba az intervallum számát változóból illesztem be, azaz annyiszor futna le a for ciklus, amennyi eleme van a változónak. De hátha valaki csinált már ilyet, vagy jobb ötlete van.
A leírásod alapján így hirtelen én is
forciklusba tenném; az intervallumokat listában tárolnám el és akkor nem kellene külön változó rá.. -
#82595328
törölt tag
Olyan kérdésem van, hogy lehet-e olyan if-elif szerkezetet csinálni, aminél az if-elifek száma változó.
Egyszerű példa bekérek egy számot mondjuk:adj meg egy számot: mondjuk 100
egy másik változóban bekérek intervallumokat (1-10, 10-20, 50-100, 100-1000), de ezeknek az elemek száma változhat.A program váza így nézne ki:
for i in bármi - Az mindegy hányszor fut le a for ciklus.
if szám in intervallum1
parancsok1
elif szám in intervallum2
parancsok2
....
elif szám in intervallumn
parancsoknVan ötletem, hogy csinálnám meg. Az if-et beraknám egy for ciklusba az intervallum számát változóból illesztem be, azaz annyiszor futna le a for ciklus, amennyi eleme van a változónak. De hátha valaki csinált már ilyet, vagy jobb ötlete van.
-
Pé
senior tag
Valami ilyesmire lesz szükséged:
/bin/vikings -input eggs.txt -output "spam spam.txt" -cmd "echo '$MONEY'"
args = shlex.split(command_line)
print args['/bin/vikings', '-input', 'eggs.txt', '-output', 'spam spam.txt', '-cmd', "echo '$MONEY'"]
p = subprocess.Popen(args) # Success!Az fontos, hogy popen hívásnál NEM textként, hanem listaként adjuk át az argumentumokat, mint a példában látható.
Köszönöm, megnézem ezt is.

Egyébként közben rájöttem a hibára, a (line) végén volt egy newline karakter, és ezt nem fogadta el argumentumként. Most így működik, de nem elegáns. Köszi mindenkinek
-
EQMontoya
veterán
Valami ilyesmire lesz szükséged:
/bin/vikings -input eggs.txt -output "spam spam.txt" -cmd "echo '$MONEY'"
args = shlex.split(command_line)
print args['/bin/vikings', '-input', 'eggs.txt', '-output', 'spam spam.txt', '-cmd', "echo '$MONEY'"]
p = subprocess.Popen(args) # Success!Az fontos, hogy popen hívásnál NEM textként, hanem listaként adjuk át az argumentumokat, mint a példában látható.
-
Pé
senior tag
Hali,
több megoldás is lehet, én így hirtelen ezzel próbálkoznék:os.system('parancs.exe Argument1="{}"'.format(line))
Az idézőjelekkel még lehet, hogy játszani kell egy kicsit, ez a parancs.exe működésétől függ, de remélem a lényeg érthető.Köszi, próbálgattam ezt is, ezzel se jutottam dűlőre, de majd még nézegetem.
-
KEAN
tag
Sziasztok
egy olyan problémám lenne, hogy van egy stringem :line = "egy logfileból beolvasott sor "
és ezt a változót bele kéne illesztenem egy system parancsba méghozzá ilyen formátumban :
os.system( 'parancs.exe "Argument1='változó' " ')
tehát a {változó} helyén kéne a {line} nak állnia. Próbáltam már mindenféle szimpla, dupla, ilyenolyan idézőjelekkel, zárójellel, de semmi.
Valami ötlet ?
Köszi
Hali,
több megoldás is lehet, én így hirtelen ezzel próbálkoznék:os.system('parancs.exe Argument1="{}"'.format(line))
Az idézőjelekkel még lehet, hogy játszani kell egy kicsit, ez a parancs.exe működésétől függ, de remélem a lényeg érthető. -
Pé
senior tag
Sziasztok
egy olyan problémám lenne, hogy van egy stringem :line = "egy logfileból beolvasott sor "
és ezt a változót bele kéne illesztenem egy system parancsba méghozzá ilyen formátumban :
os.system( 'parancs.exe "Argument1='változó' " ')
tehát a {változó} helyén kéne a {line} nak állnia. Próbáltam már mindenféle szimpla, dupla, ilyenolyan idézőjelekkel, zárójellel, de semmi.
Valami ötlet ?
Köszi
-
axioma
veterán
A Pycharm tudja mindazt, amit hiányolsz, de persze nem Netbeans-nek hívják, ezért máshogy működik.
16/17. sor: amint kiteszem a nyitó zárójelet (na jó, némi késéssel), kiírja a lehetséges paraméterek listáját, akárcsak a függvényhívás. Vagy Ctrl + P.

Mindkettőnél bekapcsolható, hogy a lista folyamatosan látszódjon. Ctrl + Shift + A után:

19 sor ugyanezt használhatja, de ha nem vagy biztos magadban, akkor Ctrl + Q és megkapod a hozzá tartozó dokumentációt, amit ki is tűzhetsz magadnak:

Remélem segítettem.
Nekem biztos, mert en se tudtam (bar amire en hasznalom ott nemigen kell, de lehet ebbol me'g komolyabb is). Pont netbeans ceges java mellett pycharm-ozok (es nem kapcsoltam ki a tudta-e...-t, csak mindig elnyomom
) -
cousin333
addikt
Köszi, közben újra nekiestem az IDE-nek és megtaláltam 1-2 dolgot.
Bizonyos nagyon alap metódusoknál (pl. print) Ctrl+Space hatására tényleg kiegészít, van ahol viszont nem szeretne. Például a következő kódban:
[példa]16. sor: ha nem adok meg konstruktor paramétert, fogalma sincs, hogy oda egyébként kellene egy.
Illetve van neki, sárga aláhúzás, meg "Parameter 'number' unfilled...", de amikor ott állok a kurzorral akkor ezt nem lehetne valahogyan jelezni?17. sor: dettó
17. sor: ha megadok egy paramétert, nem kínálja fel azt, hogy annak a metódusnak vannak más paraméterei is, csak éppen van default értékük.19. sor: előbbi hiba, szintén nem kapok tájékoztatást arról, hogy milyen lehetőségeim lennének a random.randrange() paraméterezésére. NetBeans alatt például megkapnám a komplett listát arról, hogy milyen paraméterezéssel hívhatnám meg az adott metódust.
Ez pedig számomra hatalmas segítség, főleg akkor amikor ismeretlen objektumokkal van dolgom és fogalmam sincs arról, hogy még 5 féle módon tudnám paraméterezni az adott objektumot, csak éppen az IDE nem tájékoztat róla.
Nagyobb projekteknél pedig szerintem nem várható el, hogy én minden paraméterlistát ismerjek, vagy állandóan ott legyen előttem az összes osztály dokumentációjával.A Pycharm tudja mindazt, amit hiányolsz, de persze nem Netbeans-nek hívják, ezért máshogy működik.
16/17. sor: amint kiteszem a nyitó zárójelet (na jó, némi késéssel), kiírja a lehetséges paraméterek listáját, akárcsak a függvényhívás. Vagy Ctrl + P.

Mindkettőnél bekapcsolható, hogy a lista folyamatosan látszódjon. Ctrl + Shift + A után:

19 sor ugyanezt használhatja, de ha nem vagy biztos magadban, akkor Ctrl + Q és megkapod a hozzá tartozó dokumentációt, amit ki is tűzhetsz magadnak:

Remélem segítettem.
-
AeSDé Team
őstag
Köszi, közben újra nekiestem az IDE-nek és megtaláltam 1-2 dolgot.
Bizonyos nagyon alap metódusoknál (pl. print) Ctrl+Space hatására tényleg kiegészít, van ahol viszont nem szeretne. Például a következő kódban:
[példa]16. sor: ha nem adok meg konstruktor paramétert, fogalma sincs, hogy oda egyébként kellene egy.
Illetve van neki, sárga aláhúzás, meg "Parameter 'number' unfilled...", de amikor ott állok a kurzorral akkor ezt nem lehetne valahogyan jelezni?17. sor: dettó
17. sor: ha megadok egy paramétert, nem kínálja fel azt, hogy annak a metódusnak vannak más paraméterei is, csak éppen van default értékük.19. sor: előbbi hiba, szintén nem kapok tájékoztatást arról, hogy milyen lehetőségeim lennének a random.randrange() paraméterezésére. NetBeans alatt például megkapnám a komplett listát arról, hogy milyen paraméterezéssel hívhatnám meg az adott metódust.
Ez pedig számomra hatalmas segítség, főleg akkor amikor ismeretlen objektumokkal van dolgom és fogalmam sincs arról, hogy még 5 féle módon tudnám paraméterezni az adott objektumot, csak éppen az IDE nem tájékoztat róla.
Nagyobb projekteknél pedig szerintem nem várható el, hogy én minden paraméterlistát ismerjek, vagy állandóan ott legyen előttem az összes osztály dokumentációjával. -
KEAN
tag
Sziasztok!
Egyetemi kurzusaim során sokat foglalkoztunk C# és Java programozással, és az őket támogató Visual Studio-val, illetve NetBeans-el.
Azt kell hogy mondjam, hogy eszméletlenül elégedett vagyok a fenti két IDE-vel, nagyon tetszenek a bennük lévő kényelmi funkciók.Például:
- Ctrl + Space-t nyomva felkínálják nekem az összes lehetőséget, amire adott ponton hivatkozhatok
- jelzik a szintaktikai hibákat
- javítási lehetőségeket kínálnak fel
- támogatják bizonyos kódrészletek generálását (kivételkezelés, class, konstruktor, ciklusok és elágazások)Python-hoz eddig IDLE-t, Atom text editort, és PyCharm-ot próbáltam, és csak nyomokban találkoztam a fenti funkciókkal. Ismertek ilyen IDE-t, esetleg olyan pluginokat, amelyekkel ezek elérhetőek lennének valamilyen környezetben?
Én is csak azt tudom mondani, hogy a PyCharm-nál jobbat nem fogsz találni, elvileg támogatja az összes általad írt funkciót. Én ugyan Eclipse + PyDev kombót használok, de én régi motoros vagyok és nehezen váltok, de tervben van már, hogy belakom magamnak a PyCharm-ot is, mert egyértelműen jobb.
Kisebb projektekhez meg a Notepad++-nál nincs egyszerűbb választás.
Új hozzászólás Aktív témák
-
1500 - 1401
4451 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- PlayStation 5
- Huawei Watch Fit 5 Pro - jó forma
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- PROHARDVER! feedback: bugok, problémák, ötletek
- Projektor topic
- Kiterjesztett valóság ASUS ROG és XREAL recept szerint
- AMD off topik: VGA, CPU, APU és minden, ami AMD
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- Apple MacBook
- Apple asztali gépek
- További aktív témák...
- HP Omen 16" FHD+ IPS Ryzen 9 8940HX RTX 5070 32GB 1TB NVMe gar
- GoPro HERO11 Black Creator Edition KOMPLETT, eredeti doboz, alig használt
- Bomba ár! Lenovo TP Yoga 370 - i5-7G I 8GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Gari
- Bomba ár! Lenovo ThinkPad X390 - i7-8G I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- playseat evolution black actifit
- Xbox Series S 512 GB + kontroller 6 hó garancia, számlával!
- Akció! Gamer PC - Számítógép! Csere-Beszámítás! I9 11900 / RTX 5070 / 32GB RAM / 512 SSD!
- BESZÁMÍTÁS! 1300W be quiet! Dark Power Pro 13 tápegység garanciával hibátlan működéssel
- Szépséghibás - Microsoft Surface Laptop 3 13.5" fekete i5-1035G7 16GB 256GB 1 év garancia
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
. Azonban ha én ezt megteszem, akkor a következő történik: <a href="..">Dumb&Dumber</a>



, szóval:


