Keresés

Új hozzászólás Aktív témák

  • AeSDé Team

    őstag

    Sziasztok!
    Szeretnék jövőre emelt szintű infó érettségit tenni és ezen a pályán tanulni tovább, de egyedül vagyok ezzel az évfolyamomon és egyik tanár sem szeretne nekem különórákat adni programozásból.
    Elkezdtem tehát otthon tanulni a python nyelvet ingyenes oktató anyagok és youtube videók alapján. Ebben a formában viszont már kissé unom a dolgot, szeretnék már alkotni is, és ilyen módon tanulni új dolgokat. Csináltam már néhány saját projektet, például egy kérdés-válaszon alapuló "játékok" aminek a mentési/visszatöltési rendszerén és logikai felépítésén napokat dolgoztam, vagy például egy oszthatósággal foglalkozó programot aminek ismereteim bővülésével folyamatosan írom az újabb, egyszerűsített verzióit.

    Szóval szeretnék tippeket kérni arra hogy mihez fogjak hozzá, esetleg örülnék ha tudnátok pár olyan oldalt amik fokozatosan nehezedő feladatokat tartalmaznak, ilyeneket egyenlőre nem találtam. Érettségi feladatokkal próbálkoztam, de azok egyenlőre túl bonyolultak nekem, ennyire még nem vagyok jártas a programozásban.

    Köszönöm a segítséget, és bocs a regényért :D

  • AeSDé Team

    őstag

    Sziasztok!
    Lenne egy kérdésem FTP-vel kapcsolatban :)
    Az ftplib .storlines parancsával fájl objektumokat lehet eltárolni FTP szerverre. A kérdésem az lenne hogy hogyan lehetne ezt a függvényt string-el etetni fájl objektum helyett? (ergó hogyan konvertálhatok stringet "file-objectté)
    Jelenleg úgy néz ki a programom, hogy a stringet lementi fájlba, majd beolvassa a fájlt bufferelve, és a beolvasott objektumot küldi FTP szerverre. Hogyan ugorhatnám át a felesleges írást/olvasást HDD-ről?

  • AeSDé Team

    őstag

    válasz sonar #428 üzenetére

    Köszi, próbálkoztam de valami nem stimmel.
    Létre tudom hozni a StringIO objektumot, és a .write -al hozzáadom a szükséges adatot.
    Ezután a .getvalue() beolvassa az adatokat, és minden stimmel.
    A gond az hogy az ftplib .storelines funkciója nem getvalue, hanem .readline -al olvas, és valamilyen okból az üresen tér vissza. Nincs error, de a fájl amit a szerveren létrehozok, üres lesz.

    Kódrészlet röviden:

    # FTP upload
    import ftplib
    import io

    ftp = ftplib.FTP(SERVER_IP)
    ftp.login(USER, PASSWORD)

    myfile = io.StringIO()
    myfile.write(CONTENT)
    ftp.storlines("STOR " + NAME, myfile)

    print (myfile.getvalue()) # Itt nincs gond, megvan az adat
    print (myfile.readline()) # Ez üresen tér vissza

    [ Szerkesztve ]

  • AeSDé Team

    őstag

    A bemásolt leegyszerűsített kód nem tartalmaz directory váltást, de az eredetiben szerepel a megfelelő rész. Nem is ott lesz a gond, hanem valahol máshol. Most egy lépést tettem előre a .seek(0) beépítésével, mert most már a readline működik, de az FTP feltöltős odul még mindig nem hajlandó elfogadni az adatot, ezúttal errorral.

    File "D:\Applications\Python\lib\ftplib.py", line 537, in storlines
    if buf[-1] in B_CRLF: buf = buf[:-1]
    TypeError: 'str' does not support the buffer interface

    # FTP upload
    import ftplib
    import io

    ftp = ftplib.FTP(SERVER_IP)
    ftp.login(USER, PASSWORD)
    if DIR:
    ftp.cwd(DIR)
    myfile = io.StringIO()
    myfile.write(CONTENT)
    myfile.seek(0)
    ftp.storlines("STOR " + NAME, myfile) # Ez a sor ad hibaüzenetet

    [ Szerkesztve ]

  • AeSDé Team

    őstag

    válasz AeSDé Team #431 üzenetére

    Éljenek a bájtok :D Már működik.
    Egy dolog maradt amire rá kell még jöjjek, a fájlba írt adat végére tesz egy pontot, ami nem tetszik.

    myfile = io.BytesIO()
    myfile.write(bytes(CONTENT, 'UTF-8'))
    myfile.seek(0)
    ftp.storlines("STOR " + NAME, myfile)
    print("OK")

    Köszönöm a segítségeteket :R

    [ Szerkesztve ]

  • AeSDé Team

    őstag

    Vajon hogyan valósíthatnám ezt meg?
    Szeretnék egy színes LED-et relatíve sötét háttér mellett követni webkamerával, és kalibrálható koordináta transzformációs megoldással az egeret mozgatni vele.
    Úgy néztem hogy az OpenCV bővítmények bírnak hasonló képességekkel, valaki tudna tippet adni hogy merre induljak el? Bármilyen webkamera ideális lehet vagy vannak fejlesztő-barátabb példányok? Izgalmas projekt lenne a nyárra.

    Később érdekes lehetne egy pisztoly-szerű hardvert építeni hozzá ami több színkódra is képes, pl. jobb és bal kattintások is jelezhetőek lennének. De egyenlőre maradjunk 1 színnél.

  • AeSDé Team

    őstag

    válasz cousin333 #680 üzenetére

    Az egér mozgatósdit a ctypes könyvtárral oldottam meg, ez már működő rendszer, tudom pl. X360 gamepaddel mozgatni és kattintgatni is.
    A képfeldolgozásban viszont nem vagyok otthon, de szeretném beleásni magam. Köszi a linket, ez tényleg jónak tűnik :K

    [ Szerkesztve ]

  • AeSDé Team

    őstag

    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?

    [ Szerkesztve ]

  • 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.

    [ Szerkesztve ]

  • AeSDé Team

    őstag

    Sziasztok!

    Készítenem kell egy Python alkalmazást Linux platformra, amely röviden a következő koncepciókat foglalja majd magában:
    - több panelből álló grafikus interfész
    - eseményvezérelt logika, mely mind az interfész, mind pedig soros-porton érkező bemenetekre képes reagálni
    - több felhasználó munkájának asszinkron követése

    Valaki tud olyan kurzust, oldalt, irodalmat ajánlani, ahol arról regélnek, hogy hogyan lehet jól strukturáltan létrehozni egy ilyen komplexitású, grafikus interfészt is tartalmazó projektet?
    Nem egészen tiszta számomra, hogy hogyan is kellene megvalósítanom Pythonban egy MVC dizájnt, hogyan szeparálom a kódomat több fájlba az importok teljes összekavarodása nélkül, és hogyan fogom a GUI-tól független szálon csekkolgatni az egyéb folyamatokat.

    Nem új számomra a koncepció, írtam már Java-ban, C#-ban hasonlóan bonyolult grafikus alkalmazást, viszont szükségem lenne egy kis útmutatásra hogy hogyan valósíthatom meg ezt a dizájnt Python-ban.

  • AeSDé Team

    őstag

    Sziasztok!

    Próbálok egy MVC modellre hajazó GUI alkalmazást létrehozni, és készítése közben bele futottam pár körkörös import problémába.
    Van például egy controller.py fájlban lévő Controller osztályom, ami létrehoz egy app.py fájlban lévő App objektumot, és átad neki egy referenciát önmagára azért, hogy később az App osztály példánya tudjon információt kérni a Controller osztály példányától, és ne kelljen direktben az adatelérési réteghez fordulnia.

    A program egyszerűsített vázlata:

    controller.py:

    from app import App

    class Controller:
    def __init__(self):
    self.app = App(self)

    def get_information(self):
    return "some information"

    app.py:

    from controller import Controller

    class App:
    def __init__(self, controller: Controller):
    self.controller = controller
    print(self.controller.get_information())

    Az app.py -ban található Controller import pusztán azt a célt szolgálja, hogy működjön PyCharm-ban a kódkiegészítés, és lássam a Controller osztály metódusait.
    Emlékeim szerint Java nyelven simán megtehettem, hogy két osztály egymást importálja és egymásra hivatkoznak, persze egészen addig amíg nem írok végtelen ciklust. Pythonban hogyan érhetem el ugyan ezt a hatást? Azon kívül persze, hogy a két osztályt azonos .py fájlban helyezném el.

    Amennyiben az app.py definíciójából kihagyom a Controller osztály importját, és a konstruktorában a controller paramétert nem típusosan adom meg, a probléma megszűnik. Én viszont szeretném ha meglenne az az import hogy kódkiegészítést kaphassak az objektumra, ezt milyen módon érhetném el?

    [ Szerkesztve ]

Új hozzászólás Aktív témák