Hirdetés

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

  • Siriusb
    veterán

    Hello, látom nemigen él ez a fórum, de hátha választ kapok egy egyszerű kérdésre.
    Miért nem tudok .py kiterjesztésű egyszerű scripteket futtatni a ">>> python fajl.py" paranccsal? A fájl helye rendben van, hibaüzenetként sytax errort kapok. ">>> execfile(fajl.py)"-vel működik...

    Szerk.: Python 2.7.2-vel, meg 3.2-vel is próbáltam, egyikkel sem megy.

    Tudom amatőr kérdés, de elég noob vagyok a témában.

    Szia!

    Ha terminálban kiadod a python parancsot, a shell elindul?
    A fájl nevében nincs space?
    Esetleg még próbáld meg a script első sorában megadni az interpretert, pl.:
    #!/usr/bin/python3

  • Hello, látom nemigen él ez a fórum, de hátha választ kapok egy egyszerű kérdésre.
    Miért nem tudok .py kiterjesztésű egyszerű scripteket futtatni a ">>> python fajl.py" paranccsal? A fájl helye rendben van, hibaüzenetként sytax errort kapok. ">>> execfile(fajl.py)"-vel működik...

    Szerk.: Python 2.7.2-vel, meg 3.2-vel is próbáltam, egyikkel sem megy.

    Tudom amatőr kérdés, de elég noob vagyok a témában.

  • Siriusb
    veterán

    Adj' Isten!

    Python 3-mal kezdtem el ismerkedni és GUI-t szeretnék klszíteni a tkinter-rel. Kérdésem, amire nem találtam választ: Miként lehetne a root-on belül több különálló (toplevel) ablakot gyártani, amik a szülő keretén kívül nem tartózkodhatnak. Tehát egy szülő ablak foglaljon magába több leszármazott ablakot, vizuálisan is.

    Vagy ezt tkinterrel nem lehet megoldani?

  • nicknev
    csendes tag

    Az nem segít, ha a .py elejére beírom hogy :
    Mert mit gondoltál, a python interpreter majd megérti az angol nyelvű leírást? :D

    A unicode stringeket definiáld unicode típusúnak, továbbá kezdd ezzel a file-odat:
    # coding=utf8

    Egyébként javaslom, hogy unicode karaktereket tartalmazó dict. kulcsok helyett oldd meg máshogy a feladatot.

    Mert mit gondoltál, a python interpreter majd megérti az angol nyelvű leírást?

    Elvileg meg kéne, mármint a PEP 0263 szerint ez egy semi-comment, és értenie kellene.

    Egyébként javaslom, hogy unicode karaktereket tartalmazó dict. kulcsok helyett oldd meg máshogy a feladatot.

    Máshogy meg nem tudom megoldani, mert a feladat az, hogy egy Morse szótárat csináljak (beírod a szöveget, az meg lefordítja, majd le is sípolja.az angol karakterekkel már működik)

    Szerk.: Megpróbáltam amit írtál, de így is KeyErrort kapok, nem látok különbséget.De azért köszi.

    Valaki, valami megoldás?

  • cucka
    addikt

    Üdv!
    Van valami módszer arra, hogy a szótárakban használhassak magyar betűket, meg inputot is kaphassak? pl
    a = {'árvíztűrő tükörfúrógép':'valami'}
    Az nem segít, ha a .py elejére beírom hogy :
    # This Python file uses the following encoding: utf-8

    Köszi előre is a segítséget.

    Az nem segít, ha a .py elejére beírom hogy :
    Mert mit gondoltál, a python interpreter majd megérti az angol nyelvű leírást? :D

    A unicode stringeket definiáld unicode típusúnak, továbbá kezdd ezzel a file-odat:
    # coding=utf8

    Egyébként javaslom, hogy unicode karaktereket tartalmazó dict. kulcsok helyett oldd meg máshogy a feladatot.

  • nicknev
    csendes tag

    Üdv!
    Van valami módszer arra, hogy a szótárakban használhassak magyar betűket, meg inputot is kaphassak? pl
    a = {'árvíztűrő tükörfúrógép':'valami'}
    Az nem segít, ha a .py elejére beírom hogy :
    # This Python file uses the following encoding: utf-8

    Köszi előre is a segítséget.

  • cucka
    addikt

    Csak rátaláltam végre - az úgy tűnik - helyes útra. :)
    Először azt hittem php-ra lesz szükségem de pár óra netes keresés és info gyűjtés után (perl vs python többek között...) rájöttem, hogy a py egy jó alap lenne ahhoz amit meg akarok valósítani.
    A könyvvel már találkoztam régebben, elolvastam az első kb 30 oldalt, még egy másik "feladat" miatt kellett, de segített.

    Az projectem első fázisa:
    egy aktív watchdir létrehozása .sfv (crc) checkerrel, majd egy parancs elküldése 100%-nál a következő rutinnak.

    Tesztkörnyezetnek mit ajánlotok? Remélem elég hatékonyan lehet windows környezetben is programozni vele ( a leírás alapján igen), mert linux nékem túlnyomó részt ismeretlen.

    Tesztkörnyezetnek mit ajánlotok?
    Lehet. Van a sima windows-os python illetve létezik egy ActivePython nevű környezet is, mindkettő problémamentesen működik.
    Javaslom, fejlesztés előtt döntsd el, hogy 2.x vagy 3.x verziójú python-t használsz, vannak eltérések.
    Fejlesztőeszköznek Netbeans-t használok python-hoz, teljesen jó.

  • Cheesy
    őstag

    Csak rátaláltam végre - az úgy tűnik - helyes útra. :)
    Először azt hittem php-ra lesz szükségem de pár óra netes keresés és info gyűjtés után (perl vs python többek között...) rájöttem, hogy a py egy jó alap lenne ahhoz amit meg akarok valósítani.
    A könyvvel már találkoztam régebben, elolvastam az első kb 30 oldalt, még egy másik "feladat" miatt kellett, de segített.

    Az projectem első fázisa:
    egy aktív watchdir létrehozása .sfv (crc) checkerrel, majd egy parancs elküldése 100%-nál a következő rutinnak.

    Tesztkörnyezetnek mit ajánlotok? Remélem elég hatékonyan lehet windows környezetben is programozni vele ( a leírás alapján igen), mert linux nékem túlnyomó részt ismeretlen.

  • Frigo
    őstag

    Sziasztok!
    Szeretnék csinálni egy 2D-s platformert (mint mario pl) pythonban. Tudnátok egy tutorialt és egy enginet ajánlani? Kezdő vagyok.

    üdv

    Pygame itt találsz modult és tutorialokat

  • nicknev
    csendes tag

    Sziasztok!
    Szeretnék csinálni egy 2D-s platformert (mint mario pl) pythonban. Tudnátok egy tutorialt és egy enginet ajánlani? Kezdő vagyok.

    üdv

  • ftc
    nagyúr

    Egy kis helpet kérnék...most kezdtem el pythonban programozni...eddig jobban bejön mint C...de megakadtam

    ha else-t irok minig kidob invalid syntaxal......mi a hiba?

    csak példa
    if (a>100):
    print "a blbla"
    else : s itt annyi is

    mit csinálok rosszul?

    ok rájöttem hibás a könyv :D

  • ftc
    nagyúr

    Egy kis helpet kérnék...most kezdtem el pythonban programozni...eddig jobban bejön mint C...de megakadtam

    ha else-t irok minig kidob invalid syntaxal......mi a hiba?

    csak példa
    if (a>100):
    print "a blbla"
    else : s itt annyi is

    mit csinálok rosszul?

  • bucsupeti
    senior tag

    Ha a rendszered támogatja 3-as vonalat, akkor azt. Persze attól is függ, hogy használsz-e (illetve szeretnél-e használni) olyan könyvtárakat, amelyek csak az egyik vagy másik verzióra készültek el. Akkor ugye azt vagy kénytelen használni.
    A 3-asban van egy csomó újdonság (néhányat részben vagy egészben backport-oltak 2.x verziókra is), szóval, ha minden megvan neked a 3-as verzióban akkor az ajánlott.
    Amúgy még mindkét vonalat fejlesztik.

    AE

    Köszönöm!

  • ArchElf
    addikt

    Szintén most kezdek pythonozni. Egy egyszerű kérdést had tegyek fel. Mi a különbség a 2.7.x és a 3.2.x verziók között, miért fejlesztik mindkét vonalat? A hivatalos oldalon olvastam hogy a 2.7.x sokkal több egyéb rendszerrel kompatibilis mind a 3.x sorozat. Melyiket érdemes feltelepíteni?

    Ha a rendszered támogatja 3-as vonalat, akkor azt. Persze attól is függ, hogy használsz-e (illetve szeretnél-e használni) olyan könyvtárakat, amelyek csak az egyik vagy másik verzióra készültek el. Akkor ugye azt vagy kénytelen használni.
    A 3-asban van egy csomó újdonság (néhányat részben vagy egészben backport-oltak 2.x verziókra is), szóval, ha minden megvan neked a 3-as verzióban akkor az ajánlott.
    Amúgy még mindkét vonalat fejlesztik.

    AE

  • bucsupeti
    senior tag

    Szintén most kezdek pythonozni. Egy egyszerű kérdést had tegyek fel. Mi a különbség a 2.7.x és a 3.2.x verziók között, miért fejlesztik mindkét vonalat? A hivatalos oldalon olvastam hogy a 2.7.x sokkal több egyéb rendszerrel kompatibilis mind a 3.x sorozat. Melyiket érdemes feltelepíteni?

  • n00n
    őstag

    Én is pár hónapja kezdtem el Pythont tanulni. Lényegében az első (sulis Turbo Pascalozást inkább nem sorolom ide :P ) programozási nyelvem lesz. Könyvnek Gérard Swinnen : Tanuljunk meg programozni Python nyelvét (magyar fordítás) választottam [link]

    Viszont itt grafikus felületnek a Tkintert használja, ami valljuk be nem éppen a legpraktikusabb grafikus könyvtár.

    (A hozzászólásom egy rejtett subscribe lenne. ;] )

  • nicknev
    csendes tag

    :-) Igen, nem rossz objektumokra szétszedni, csak az objektumok összekötése az már egy érdekes dolog.

    Ez a könyv amiből tanultam, az alapokat adja meg a programozásra, ami nem rossz, lehet majd megnézem magamnak azt a komolyabbat is amiből te is tanultál. De az objektumokkal való szórakozás, amikor sok van, és azokat összekapcsolni, nah arra talán egy ilyen projekt példa volt, na majd az alapján összeeszkábálom majd szerintem.

    Nem rossz nyelv, ez a python, nekem tetszik, bár sosem gondoltam, hogy komolyabban foglalkoznék vele, hobbi szinten nekem tetszik.

    Olyan oldal létezik a python alá, mint például a www.codeproject.com ?
    Ahol opensource projektek, tutorialok vannak fent? Egy komplett kis alkalmazás elkészítése.

    Google-el az a baj, hogy beírom, hogy java file manager vagy python file manager code source / tutorial / project, akkor nem igazán ad ki rá értelmes találatot.

    Ilyen jó lenne, és főleg olyan, ahol sok objektum-orientált szemlélet van benne. :R

    Üdv
    Kezdő programozó vagyok, de ezeket ismerem, jó kis oldalak:
    github.com
    launchpad.net
    koders.com
    bitbucket.org
    Ezek mind-mind tele vannak open source projektekkel, de nem csak Python van.
    De nemhiszem, hogy ezeken lennének tutorialok, szerintem csak forráskódok.

  • Lacces
    őstag

    Tudtok benne kód rövidítést? Esetleg "szebb" kódot?
    Rövidítést nem, mert ez így pont elég rövid. Esetleg írhatnál kevesebb, de jobb minőségű kommentet :) .

    Szebb kódhoz meg írd át szépen teljesen oop-s re.
    Van egy vonat objektumod, aminek vannak vagonjai (ez egy lista, mert fontos a sorrend). A vagonoknak vannak ablakai (ezek nem feltétlenül osztályok), meg vannak emberek, akik a vagonban ülnek.
    A vagonok tudják, hogy hanyadikak a sorban (ezt biztosítja nekik a vonat objektum) és ki tudják rajzolni magukat, illetve fel-le tudják kapcsolni egy adott ablakukat.
    Nagyjából valami hasonló, sokáig el lehet ezzel szórakozni.

    :-) Igen, nem rossz objektumokra szétszedni, csak az objektumok összekötése az már egy érdekes dolog.

    Ez a könyv amiből tanultam, az alapokat adja meg a programozásra, ami nem rossz, lehet majd megnézem magamnak azt a komolyabbat is amiből te is tanultál. De az objektumokkal való szórakozás, amikor sok van, és azokat összekapcsolni, nah arra talán egy ilyen projekt példa volt, na majd az alapján összeeszkábálom majd szerintem.

    Nem rossz nyelv, ez a python, nekem tetszik, bár sosem gondoltam, hogy komolyabban foglalkoznék vele, hobbi szinten nekem tetszik.

    Olyan oldal létezik a python alá, mint például a www.codeproject.com ?
    Ahol opensource projektek, tutorialok vannak fent? Egy komplett kis alkalmazás elkészítése.

    Google-el az a baj, hogy beírom, hogy java file manager vagy python file manager code source / tutorial / project, akkor nem igazán ad ki rá értelmes találatot.

    Ilyen jó lenne, és főleg olyan, ahol sok objektum-orientált szemlélet van benne. :R

  • cucka
    addikt

    Sziasztok!

    Ismét jelentkezem.

    Most egy GUI-s feladatot csináltam meg a könyv alapján. Egy kis vonatot rajzol ki, színezve a vagonok, ablakok, arcok.

    Első kérdésem, ami talán egyszerűbb:
    Tudtok benne kód rövidítést? Esetleg "szebb" kódot? Már kaptam jobb megoldásokat itt a fórumon.

    Második kérdésem:
    Van egy adott light() és egy light34(). Az előbbi az ablak színét feketéről sárgára változtatja. Az utóbbi, a 3. és 4. vagon ablakit változtatja meg.
    Ez ügyben a kérdésem: Hogyan lehet azt elérni, hogy, adott indexű ablakokat világítson csak meg?

    Próbálkoztam vele, de nem jött össze:

    light()-ot így módosítani, hogy kap egy index nevű paramétert, ha az f == index, akkor azt az f-et fogja csak módosítani.
    def light(self, index):
    "felkapcsolja a vagon belső világítását"
    for f in self.ablakIndex:
    if f==index:
    self.canvas_.itemconfigure(f, fill="yellow")

    def light34(self):
    "ablak színének megváltoztatása a 3.és 4. vagonban"
    self.v3.light(1)
    self.v4.light(2)

    És egy másik kérdés is érdekelne, hogyan lehetne, egyszerre több ablak indexét is átadni? Én tömbre gondoltam, vagy numerikus listára. És akkor az elágazás a for ciklusban így nézne ki (light metódusban)
    if f in numerikuslista
    Bár ezt sem tartom szép megoldásnak...

    Teljes, működő kód:
    # coding: iso-8859-2

    from Tkinter import *

    def circle(can,x,y,r, colour="white"):
    "a <can> vászon egy <r> sugarú kör rajza <x,y> pontban"
    can.create_oval(x-r, y-r, x+r, y+r, fill=colour) # kör rajzolása elipszisből

    class Application(Tk):
    def __init__(self):
    #Szülőosztály konstruktora:
    Tk.__init__(self)
    self.can=Canvas(self, width=475, height=130, bg="white")
    self.can.pack(side=TOP, padx=5, pady=5)
    Button(self, text="Train", command=self.rajzolas).pack(side=LEFT)
    Button(self, text="Hello", command=self.kineznek).pack(side=LEFT)
    Button(self, text="Világítás", command=self.light34).pack(side=LEFT)

    def rajzolas(self):
    "4 vasúti kocsi létrehozása vásznon"
    # a vasúti kocsikat a vagon osztályban vannak definiálva
    self.v1=vagon(self.can, 10, 30)
    self.v2=vagon(self.can, 130,30, "dark green")
    self.v3=vagon(self.can, 250,30, "maroon")
    self.v4=vagon(self.can, 370, 30, "purple")

    def kineznek(self):
    "személyek megjelenése bizonyos ablakokban"
    self.v1.perso(3) # 1.vagon, 3.ablak
    self.v3.perso(1) # 3.vagon, 1.ablak
    self.v3.perso(2) # 3.vagon, 2.ablak
    self.v4.perso(2) # 4.vagon, 1.ablak

    def light34(self):
    "ablak színének megváltoztatása a 3.és 4. vagonban"
    self.v3.light()
    self.v4.light()


    class vagon:
    # a paramétereket a rajzolás függvényben kapja
    # a kosntruktorhoz hozzáadtam a colour paramétert
    def __init__(self, canvas_, x, y, colour="navy"):
    "egy kis vagon rajza a <canvas> vásznon <x,y> pontban"
    # paraméterek tárolása példány-változókban
    self.canvas_, self.x, self.y=canvas_, x, y
    # alap téglalap rajzolása
    canvas_.create_rectangle(x,y, x+95, y+60, fill=colour)
    # 3 ablak 25x40 pixel, 5 pixel távolságra
    self.ablakIndex=[] # ablak hivatkozásainak tárolása egy lista
    for ablak in range(x+5, x+90, 30):
    #az ablak index-hez listához (hozzáfűzi) hozzáadja a következő canvas-okat.
    self.ablakIndex.append(canvas_.create_rectangle(ablak, y+5, ablak+25, y+40, fill="black"))
    # két 12 pixel sugarú kerék
    circle(canvas_, x+18, y+73, 12, "gray")
    circle(canvas_, x+77, y+73, 12, "gray")

    def perso(self, wind):
    "egy személy mejelenése a <wind> ablakban"
    # minden egyes ablak közepe koordinátájának a kiszámítása:
    xm=self.x+wind*30-12
    ym=self.y+25
    circle(self.canvas_, xm, ym, 10, "pink") #arc
    circle(self.canvas_, xm-5, ym-3, 2) #balszem
    circle(self.canvas_, xm+5, ym-3, 2) #jobszem
    circle(self.canvas_, xm, ym+5, 3) #száj

    def light(self):
    "felkapcsolja a vagon belső világítását"
    for f in self.ablakIndex:
    self.canvas_.itemconfigure(f, fill="yellow")

    Application().mainloop()

    Tudtok benne kód rövidítést? Esetleg "szebb" kódot?
    Rövidítést nem, mert ez így pont elég rövid. Esetleg írhatnál kevesebb, de jobb minőségű kommentet :) .

    Szebb kódhoz meg írd át szépen teljesen oop-s re.
    Van egy vonat objektumod, aminek vannak vagonjai (ez egy lista, mert fontos a sorrend). A vagonoknak vannak ablakai (ezek nem feltétlenül osztályok), meg vannak emberek, akik a vagonban ülnek.
    A vagonok tudják, hogy hanyadikak a sorban (ezt biztosítja nekik a vonat objektum) és ki tudják rajzolni magukat, illetve fel-le tudják kapcsolni egy adott ablakukat.
    Nagyjából valami hasonló, sokáig el lehet ezzel szórakozni.

  • Lacces
    őstag

    Sziasztok!

    Ismét jelentkezem.

    Most egy GUI-s feladatot csináltam meg a könyv alapján. Egy kis vonatot rajzol ki, színezve a vagonok, ablakok, arcok.

    Első kérdésem, ami talán egyszerűbb:
    Tudtok benne kód rövidítést? Esetleg "szebb" kódot? Már kaptam jobb megoldásokat itt a fórumon.

    Második kérdésem:
    Van egy adott light() és egy light34(). Az előbbi az ablak színét feketéről sárgára változtatja. Az utóbbi, a 3. és 4. vagon ablakit változtatja meg.
    Ez ügyben a kérdésem: Hogyan lehet azt elérni, hogy, adott indexű ablakokat világítson csak meg?

    Próbálkoztam vele, de nem jött össze:

    light()-ot így módosítani, hogy kap egy index nevű paramétert, ha az f == index, akkor azt az f-et fogja csak módosítani.
    def light(self, index):
    "felkapcsolja a vagon belső világítását"
    for f in self.ablakIndex:
    if f==index:
    self.canvas_.itemconfigure(f, fill="yellow")

    def light34(self):
    "ablak színének megváltoztatása a 3.és 4. vagonban"
    self.v3.light(1)
    self.v4.light(2)

    És egy másik kérdés is érdekelne, hogyan lehetne, egyszerre több ablak indexét is átadni? Én tömbre gondoltam, vagy numerikus listára. És akkor az elágazás a for ciklusban így nézne ki (light metódusban)
    if f in numerikuslista
    Bár ezt sem tartom szép megoldásnak...

    Teljes, működő kód:
    # coding: iso-8859-2

    from Tkinter import *

    def circle(can,x,y,r, colour="white"):
    "a <can> vászon egy <r> sugarú kör rajza <x,y> pontban"
    can.create_oval(x-r, y-r, x+r, y+r, fill=colour) # kör rajzolása elipszisből

    class Application(Tk):
    def __init__(self):
    #Szülőosztály konstruktora:
    Tk.__init__(self)
    self.can=Canvas(self, width=475, height=130, bg="white")
    self.can.pack(side=TOP, padx=5, pady=5)
    Button(self, text="Train", command=self.rajzolas).pack(side=LEFT)
    Button(self, text="Hello", command=self.kineznek).pack(side=LEFT)
    Button(self, text="Világítás", command=self.light34).pack(side=LEFT)

    def rajzolas(self):
    "4 vasúti kocsi létrehozása vásznon"
    # a vasúti kocsikat a vagon osztályban vannak definiálva
    self.v1=vagon(self.can, 10, 30)
    self.v2=vagon(self.can, 130,30, "dark green")
    self.v3=vagon(self.can, 250,30, "maroon")
    self.v4=vagon(self.can, 370, 30, "purple")

    def kineznek(self):
    "személyek megjelenése bizonyos ablakokban"
    self.v1.perso(3) # 1.vagon, 3.ablak
    self.v3.perso(1) # 3.vagon, 1.ablak
    self.v3.perso(2) # 3.vagon, 2.ablak
    self.v4.perso(2) # 4.vagon, 1.ablak

    def light34(self):
    "ablak színének megváltoztatása a 3.és 4. vagonban"
    self.v3.light()
    self.v4.light()


    class vagon:
    # a paramétereket a rajzolás függvényben kapja
    # a kosntruktorhoz hozzáadtam a colour paramétert
    def __init__(self, canvas_, x, y, colour="navy"):
    "egy kis vagon rajza a <canvas> vásznon <x,y> pontban"
    # paraméterek tárolása példány-változókban
    self.canvas_, self.x, self.y=canvas_, x, y
    # alap téglalap rajzolása
    canvas_.create_rectangle(x,y, x+95, y+60, fill=colour)
    # 3 ablak 25x40 pixel, 5 pixel távolságra
    self.ablakIndex=[] # ablak hivatkozásainak tárolása egy lista
    for ablak in range(x+5, x+90, 30):
    #az ablak index-hez listához (hozzáfűzi) hozzáadja a következő canvas-okat.
    self.ablakIndex.append(canvas_.create_rectangle(ablak, y+5, ablak+25, y+40, fill="black"))
    # két 12 pixel sugarú kerék
    circle(canvas_, x+18, y+73, 12, "gray")
    circle(canvas_, x+77, y+73, 12, "gray")

    def perso(self, wind):
    "egy személy mejelenése a <wind> ablakban"
    # minden egyes ablak közepe koordinátájának a kiszámítása:
    xm=self.x+wind*30-12
    ym=self.y+25
    circle(self.canvas_, xm, ym, 10, "pink") #arc
    circle(self.canvas_, xm-5, ym-3, 2) #balszem
    circle(self.canvas_, xm+5, ym-3, 2) #jobszem
    circle(self.canvas_, xm, ym+5, 3) #száj

    def light(self):
    "felkapcsolja a vagon belső világítását"
    for f in self.ablakIndex:
    self.canvas_.itemconfigure(f, fill="yellow")

    Application().mainloop()

  • Lacces
    őstag

    A zip az egy listát csinál, aminek az elemei tuple-k (párok vagy n-esek)
    A dict() az a dictionary konstruktor, ami egy ilyen listából dictionary-t csinál.

    A függvény return sorába meg bármit beírhatsz, mivel Pythonban a függvényeknél nincs előre meghatározva, hogy milyen típusú értékkel térnek vissza.

    értem, köszönöm!

  • cucka
    addikt

    Aham, most már így értem. Igen, egy csomó dolgot értelmezte félre, és írtam le rosszul, most akkor egy kis pihenés jön.

    Igen, így már leesett a zip.

    Vagy még jobban:
    def inverse(dico):
    return dict(zip(dico.values(), dico.keys()))

    Itt mi a "dict"?
    Beírtam ezt a kódot a másik helyett, és elfogadta, de anélkül is elfogadta ha nem volt ott a "dict"

    És köszönöm a türelmedet!

    A zip az egy listát csinál, aminek az elemei tuple-k (párok vagy n-esek)
    A dict() az a dictionary konstruktor, ami egy ilyen listából dictionary-t csinál.

    A függvény return sorába meg bármit beírhatsz, mivel Pythonban a függvényeknél nincs előre meghatározva, hogy milyen típusú értékkel térnek vissza.

  • Lacces
    őstag

    Ilyenkor mindig kulcs alapján járja be a szótárt?
    Nem kulcs alapján járja be, hanem a kucsot kapod meg alapesetben ciklusváltozónak.

    ebben az esetben a print dico[computer] eredménye a számítógép lesz.
    Nem, ennek az eredménye általában egy hibaüzenet lesz. Esetleg így érdemes:
    print dicto['computer']

    Ebben az esetben, a szótárt úgy kezelem, mint egy objektum. a key az adott elem kulcsa, a value az adott elem értéke.
    A szótár az egy objektum. Mindig.
    Ebben az esetben nem a szótáron iterálsz végig, hanem a szótár.items() függvény visszatérési értékén, ami egy lista, aminek elemei (kulcs,érték) párok.

    A zip-hez szeretnék magyarázatot kérni.
    Elmagyarázni hosszú, itt egy példakód, ami alapján le kell essen, hogy mire jó:
    >>> digits=[1,2,3]
    >>> hungarian=['egy', 'ketto', 'harom']
    >>> english=['one', 'two', 'three']
    >>> zip(digits,hungarian,english)
    [(1, 'egy', 'one'), (2, 'ketto', 'two'), (3, 'harom', 'three')]

    Amúgy erre gondoltál? (hogy a visszatérési érték egy szótár, ami dic_inv a jelen példában) végül is mindegy, az a lényeg, hogy nem a "dico" szótár.
    Ezt nem értem, a mellékelt kódot sem.

    Aham, most már így értem. Igen, egy csomó dolgot értelmezte félre, és írtam le rosszul, most akkor egy kis pihenés jön.

    Igen, így már leesett a zip.

    Vagy még jobban:
    def inverse(dico):
    return dict(zip(dico.values(), dico.keys()))

    Itt mi a "dict"?
    Beírtam ezt a kódot a másik helyett, és elfogadta, de anélkül is elfogadta ha nem volt ott a "dict"

    És köszönöm a türelmedet!

  • cucka
    addikt

    Aham, igaz

    for key in dico - értem, úgy mint a listáknál, ez egy bejárás. Ilyenkor mindig kulcs alapján járja be a szótárt?

    dico[key], igen leesett, ami nem más mint a "key" kulcshoz tarotzó értéket írja ki:
    dico={'computer':'számítógép'}, akkor ebben az esetben a
    print dico[computer] eredménye a számítógép lesz.
    Így már eszembe jutott. Még meg kell szokni. Köszönöm szépen!

    def inverse(dico):
    dic_inv={}
    for key, value in dico.items()
    div_inv[value]=key
    return dic_inv

    Ebben az esetben, a szótárt úgy kezelem, mint egy objektum. a key az adott elem kulcsa, a value az adott elem értéke. És akkor simán kicseréli a kettőt.

    A zip-hez szeretnék magyarázatot kérni. Megnéztem angolul, de a fordítással sem értettem meg. Ez összefűzés lenne egyenként? Példákból is így vettem ki.
    a dico.values() és dico.keys()-t ismerem.

    Amúgy erre gondoltál? (hogy a visszatérési érték egy szótár, ami dic_inv a jelen példában) végül is mindegy, az a lényeg, hogy nem a "dico" szótár.
    def inverse(dico):
    return dic_inv(zip(dico.values(), dico.keys()))

    Ilyenkor mindig kulcs alapján járja be a szótárt?
    Nem kulcs alapján járja be, hanem a kucsot kapod meg alapesetben ciklusváltozónak.

    ebben az esetben a print dico[computer] eredménye a számítógép lesz.
    Nem, ennek az eredménye általában egy hibaüzenet lesz. Esetleg így érdemes:
    print dicto['computer']

    Ebben az esetben, a szótárt úgy kezelem, mint egy objektum. a key az adott elem kulcsa, a value az adott elem értéke.
    A szótár az egy objektum. Mindig.
    Ebben az esetben nem a szótáron iterálsz végig, hanem a szótár.items() függvény visszatérési értékén, ami egy lista, aminek elemei (kulcs,érték) párok.

    A zip-hez szeretnék magyarázatot kérni.
    Elmagyarázni hosszú, itt egy példakód, ami alapján le kell essen, hogy mire jó:
    >>> digits=[1,2,3]
    >>> hungarian=['egy', 'ketto', 'harom']
    >>> english=['one', 'two', 'three']
    >>> zip(digits,hungarian,english)
    [(1, 'egy', 'one'), (2, 'ketto', 'two'), (3, 'harom', 'three')]

    Amúgy erre gondoltál? (hogy a visszatérési érték egy szótár, ami dic_inv a jelen példában) végül is mindegy, az a lényeg, hogy nem a "dico" szótár.
    Ezt nem értem, a mellékelt kódot sem.

  • Lacces
    őstag

    Meg még egy kérdésem, a get()-el kapcsolatban:

    for m in words:
    dico[m] = dico.get(m, 0) +1
    lista = dico.items()

    Úgy tűnik a szótár használata nem tiszta számomra...

    a get() - azt csinálja, hogy megnézi a dico szótárban az "m" kulcshoz tartozó értéket, ha szerepel benne akkor az m-et ad neki (m értéket, ami a "words" aktuális eleme), ha nem, akkor 0-t. Én így tudtam. De miért van ott az a +1 ?

    Itt a könyv teljes példájának a kód sorozata:

    nFile = raw_input('Kezelendo file neve : ')
    fi = open(nFile, 'r')
    text = fi.read()
    fi.close()
    # annak erdekeben, hogy a szoeg szavai konnyen elklulonithetok legyenek, a nem
    # betu karaktereket betukozze alakitjuk :?
    alpha = "abcdefghijklmnopqrstuvwxyzíéáúóüöÍÉÁűőŰŐÚÓÜÖ"
    betuk = '' # a lerehozand uj karakterlanc
    for c in text:
    c = c.lower() # minden betut kisbetuve alakit
    if c in alpha:
    betuk = betuk + c
    else:
    betuk = betuk + ' '
    # az eredménystring átalakítása szavak listájává :
    words = betuk.split()

    # a hisztogram elkészítése :
    dico ={}
    for m in words:
    dico[m] = dico.get(m, 0) +1
    lista = dico.items()
    # az eredménylista rendezése :
    lista.sort()
    # kiiratas :
    for item in lista:
    print item[0], ":", item[1]

    :R

  • Lacces
    őstag

    for key in dico: - kulcs alapján a dico szótárban keres
    Nem nyert. Ez egy ciklus, ami végigfut a dico nevű dictionary-n és a ciklus magjában a "key" nevű változóban találod az adott elem kulcsát.

    item=dico[key] - az item változóban a dico kulcsait tárolom.
    Nem nyert. Az item változóhoz hozzárendeled a "dico" dictionaryból a "key" kulcs által meghatározott értéket. (Gy.k. - a dictionary az kulcs-érték párok halmaza)

    dic_inv[item]=key - na én itt valamiért úgy értelmezem, hogy dic_inv[dicokey]=key (ami ismét a dico-nak a kulcsai)
    A dic_inv dictionary-hoz hozzáadsz egy új elemet, aminek a kulcsa a dico aktuális elemének az értéke, az értéke meg a dico aktuális elemének a kulcsa.

    Egyébként meg meg lehet ezt jobban is írni:
    def inverse(dico):
    dic_inv={}
    for key, value in dico.items()
    div_inv[value]=key
    return dic_inv

    Vagy még jobban:
    def inverse(dico):
    return dict(zip(dico.values(), dico.keys()))

    Javaslom, próbáld megemészteni ezeket a verziókat is. :)

    Aham, igaz

    for key in dico - értem, úgy mint a listáknál, ez egy bejárás. Ilyenkor mindig kulcs alapján járja be a szótárt?

    dico[key], igen leesett, ami nem más mint a "key" kulcshoz tarotzó értéket írja ki:
    dico={'computer':'számítógép'}, akkor ebben az esetben a
    print dico[computer] eredménye a számítógép lesz.
    Így már eszembe jutott. Még meg kell szokni. Köszönöm szépen!

    def inverse(dico):
    dic_inv={}
    for key, value in dico.items()
    div_inv[value]=key
    return dic_inv

    Ebben az esetben, a szótárt úgy kezelem, mint egy objektum. a key az adott elem kulcsa, a value az adott elem értéke. És akkor simán kicseréli a kettőt.

    A zip-hez szeretnék magyarázatot kérni. Megnéztem angolul, de a fordítással sem értettem meg. Ez összefűzés lenne egyenként? Példákból is így vettem ki.
    a dico.values() és dico.keys()-t ismerem.

    Amúgy erre gondoltál? (hogy a visszatérési érték egy szótár, ami dic_inv a jelen példában) végül is mindegy, az a lényeg, hogy nem a "dico" szótár.
    def inverse(dico):
    return dic_inv(zip(dico.values(), dico.keys()))

  • cucka
    addikt

    Sziasztok!

    Ez a következő függvény, ami nem mást csinál, mint a kulcs-érték párokat kicseréli.
    def inverse(dico):
    "egy új szótár létrehozása lépésről lépésre"
    dic_inv={}
    for key in dico:
    item=dico[key]
    dic_inv[item]=key
    return dic_inv

    Ennél a résznél a dic_inv[item]=key részt nem értem. Ismerem a szótárakat, átnéztem, de valamiért átcsúszok a logikáján.

    for key in dico: - kulcs alapján a dico szótárban keres
    item=dico[key] - az item változóban a dico kulcsait tárolom.
    dic_inv[item]=key - na én itt valamiért úgy értelmezem, hogy dic_inv[dicokey]=key (ami ismét a dico-nak a kulcsai)

    for key in dico: - kulcs alapján a dico szótárban keres
    Nem nyert. Ez egy ciklus, ami végigfut a dico nevű dictionary-n és a ciklus magjában a "key" nevű változóban találod az adott elem kulcsát.

    item=dico[key] - az item változóban a dico kulcsait tárolom.
    Nem nyert. Az item változóhoz hozzárendeled a "dico" dictionaryból a "key" kulcs által meghatározott értéket. (Gy.k. - a dictionary az kulcs-érték párok halmaza)

    dic_inv[item]=key - na én itt valamiért úgy értelmezem, hogy dic_inv[dicokey]=key (ami ismét a dico-nak a kulcsai)
    A dic_inv dictionary-hoz hozzáadsz egy új elemet, aminek a kulcsa a dico aktuális elemének az értéke, az értéke meg a dico aktuális elemének a kulcsa.

    Egyébként meg meg lehet ezt jobban is írni:
    def inverse(dico):
    dic_inv={}
    for key, value in dico.items()
    div_inv[value]=key
    return dic_inv

    Vagy még jobban:
    def inverse(dico):
    return dict(zip(dico.values(), dico.keys()))

    Javaslom, próbáld megemészteni ezeket a verziókat is. :)

  • Lacces
    őstag

    Sziasztok!

    Ez a következő függvény, ami nem mást csinál, mint a kulcs-érték párokat kicseréli.
    def inverse(dico):
    "egy új szótár létrehozása lépésről lépésre"
    dic_inv={}
    for key in dico:
    item=dico[key]
    dic_inv[item]=key
    return dic_inv

    Ennél a résznél a dic_inv[item]=key részt nem értem. Ismerem a szótárakat, átnéztem, de valamiért átcsúszok a logikáján.

    for key in dico: - kulcs alapján a dico szótárban keres
    item=dico[key] - az item változóban a dico kulcsait tárolom.
    dic_inv[item]=key - na én itt valamiért úgy értelmezem, hogy dic_inv[dicokey]=key (ami ismét a dico-nak a kulcsai)

  • ArchElf
    addikt

    Ismét egy kérdésem van:

    Van ez a jó tulajdonsága Pythonnak, hogy objektumokból alkotott objektumot lehet létrehozni. Ami nekem nagyon tetszik. És őszintén szólva nagyon király programozási nyelvnek tartom a Python-t és viccen kívül most kezdem megérteni a .Net és Java-t is nagyjából. Kiváló tanuló nyelv, nekem legalább is.

    Viszont azt kérdezném, hogy ez a lehetőség megvalósítható-e C# és Java alatt is? (objektumból alkotott objektum). Így konkrétan példát még nem láttam rá. De az interfész-re gondoltam, de az másról szól. Talán az öröklődés még ami szóba jöhet. De nem emlékszem így vissza. És nem tudom, hogy angolul is hogyan kéne rákeresnem.

    doboz=Teglalap()
    doboz.sarok=Pont() #Erre a részre gondolok

    A teljes példakód:
    # coding: iso-8859-2

    class Pont:
    "Egy matematikai pont definíciója"

    # Egy Pont objektum létrehozása
    p1=Pont()

    # Példány attribútomok vagy változok
    # Nem kell semmilyen konstruktor stb.
    p1.x=3.0
    p1.y=4.0


    # Objektumokból alkotott Objektum

    class Teglalap:
    "egy téglalap osztály definicója"

    doboz = Teglalap()
    doboz.szeles=50.0
    doboz.magas=40.0
    # Példányváltozó(sarok) egy Pont objektum
    doboz.sarok=Pont()
    doboz.sarok.x=12.0
    doboz.sarok.y=27.0

    Persze, de c#-os kérdésben nézz be ide ;)

    Egyébként az alapvető különbség a py és pl. a c# között az az objektumok/tagok láthatósága. A py-ban minden objektum minden tagja látható: az osztályok belső szerkezét, vagy annak egy részét nem lehet elrejteni a külső szemlélő elől, míg ez erősebb nyelvek esetében ez alapkövetelmény.

    AE

  • Lacces
    őstag

    Ismét egy kérdésem van:

    Van ez a jó tulajdonsága Pythonnak, hogy objektumokból alkotott objektumot lehet létrehozni. Ami nekem nagyon tetszik. És őszintén szólva nagyon király programozási nyelvnek tartom a Python-t és viccen kívül most kezdem megérteni a .Net és Java-t is nagyjából. Kiváló tanuló nyelv, nekem legalább is.

    Viszont azt kérdezném, hogy ez a lehetőség megvalósítható-e C# és Java alatt is? (objektumból alkotott objektum). Így konkrétan példát még nem láttam rá. De az interfész-re gondoltam, de az másról szól. Talán az öröklődés még ami szóba jöhet. De nem emlékszem így vissza. És nem tudom, hogy angolul is hogyan kéne rákeresnem.

    doboz=Teglalap()
    doboz.sarok=Pont() #Erre a részre gondolok

    A teljes példakód:
    # coding: iso-8859-2

    class Pont:
    "Egy matematikai pont definíciója"

    # Egy Pont objektum létrehozása
    p1=Pont()

    # Példány attribútomok vagy változok
    # Nem kell semmilyen konstruktor stb.
    p1.x=3.0
    p1.y=4.0


    # Objektumokból alkotott Objektum

    class Teglalap:
    "egy téglalap osztály definicója"

    doboz = Teglalap()
    doboz.szeles=50.0
    doboz.magas=40.0
    # Példányváltozó(sarok) egy Pont objektum
    doboz.sarok=Pont()
    doboz.sarok.x=12.0
    doboz.sarok.y=27.0

  • Lacces
    őstag

    úgy működik. Pl.: lista[2:6]
    hogy a lista elemei közül a 2. 3. 4. 5. indexű elemet vágja ki?

    nem, a 2-es indexű elemtő számítva 6 db elemet vág ki.
    kivéve
    ha nincs második szám:

    Vagy én emlékeztem rosszul és de :)
    Szóval
    szamok[start:stop]
    vagy
    szamok[start:stop:lépésköz]
    plusz
    lista[2:] - a 2.-től az összeset adja vissza
    ha a második szám negatív
    lista[2:-2] - a 2. től az utolsó-előtti-előttiig adja vissza

    A következő példát nem értem, hogy miért van ott a 3-as?
    >>> szavak[1:3] = ['saláta']>>> szavak['sonka', 'saláta', 'ketchup']
    Miért nem csak simán szavak[1]=['saláta'] van ott?

    de lehetne, viszont az előző példa nem szemléletes, mert a szavak[1:3] = ... tömb jellegű felülírást jelent... Látványosabb példa volna:
    1)
    >>> betuk = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
    >>> szamok = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
    >>> betuk[2:3] = szamok
    >>> print betuk
    ['a', 'b', '0', '1', 'e', 'f', 'g', 'h', 'i']

    2)
    >>> betuk = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
    >>> szamok = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
    >>> betuk[2:5] = szamok[7:]
    >>> print betuk
    ['a', 'b', '7', '8', 'e', 'f', 'g', 'h', 'i']

    AE

    Köszönöm szépen!

    Ez nagyon jó válasz! Nagyon jó a példád! Köszönöm!

    Így már megértettem! :R

  • ArchElf
    addikt

    Sziasztok

    slicing eljárás, vagy szeletelés a listánál

    úgy működik. Pl.: lista[2:6]
    hogy a lista elemei közül a 2. 3. 4. 5. indexű elemet vágja ki?

    A következő példát nem értem, hogy miért van ott a 3-as?
    >>> szavak[1:3] = ['saláta']
    >>> szavak
    ['sonka', 'saláta', 'ketchup']

    Miért nem csak simán szavak[1]=['saláta'] van ott?

    :R

    úgy működik. Pl.: lista[2:6]
    hogy a lista elemei közül a 2. 3. 4. 5. indexű elemet vágja ki?

    nem, a 2-es indexű elemtő számítva 6 db elemet vág ki.
    kivéve
    ha nincs második szám:

    Vagy én emlékeztem rosszul és de :)
    Szóval
    szamok[start:stop]
    vagy
    szamok[start:stop:lépésköz]
    plusz
    lista[2:] - a 2.-től az összeset adja vissza
    ha a második szám negatív
    lista[2:-2] - a 2. től az utolsó-előtti-előttiig adja vissza

    A következő példát nem értem, hogy miért van ott a 3-as?
    >>> szavak[1:3] = ['saláta']>>> szavak['sonka', 'saláta', 'ketchup']
    Miért nem csak simán szavak[1]=['saláta'] van ott?

    de lehetne, viszont az előző példa nem szemléletes, mert a szavak[1:3] = ... tömb jellegű felülírást jelent... Látványosabb példa volna:
    1)
    >>> betuk = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
    >>> szamok = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
    >>> betuk[2:3] = szamok
    >>> print betuk
    ['a', 'b', '0', '1', 'e', 'f', 'g', 'h', 'i']

    2)
    >>> betuk = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
    >>> szamok = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
    >>> betuk[2:5] = szamok[7:]
    >>> print betuk
    ['a', 'b', '7', '8', 'e', 'f', 'g', 'h', 'i']

    AE

  • Lacces
    őstag

    Sziasztok

    slicing eljárás, vagy szeletelés a listánál

    úgy működik. Pl.: lista[2:6]
    hogy a lista elemei közül a 2. 3. 4. 5. indexű elemet vágja ki?

    A következő példát nem értem, hogy miért van ott a 3-as?
    >>> szavak[1:3] = ['saláta']
    >>> szavak
    ['sonka', 'saláta', 'ketchup']

    Miért nem csak simán szavak[1]=['saláta'] van ott?

    :R

  • Lacces
    őstag

    Sziasztok!

    Valaki ért a Komodo Edithez? Hogyan lehet elérni, hogy futtassa a python kódot?

  • nicknev
    csendes tag

    valoszinuleg nem adtal neki eleg parametert. hogyan hivod meg a scriptet?. valahogy igy kellene:
    python ex13.py egy ketto harom

    Köszi szépen mindkettőtöknek :R , máskor alaposabban kell majd elolvasnom a szöveget :( :U

  • Gyuri16
    senior tag

    Na megint nekem van problémám :DDD
    Zed A. Shaw Learn Python The Hard Way, 2nd Edition könyvét olvasom, 13-ik leckénél tartok, és elakadtam.A következő kódot hiába csinálom meg rendesen nem működik (Azt írja ki a piton, hogy
    File "C:\Users\valami\Desktop\cucc\ex13.py", line 3, in <module>
    script, first, second, third = argv
    ValueError: need more than 1 value to unpack

    A script pedig ez lenne:
    from sys import argv

    script, first, second, third = argv

    print "The script is called:", script
    print "Your first variable is:", first
    print "Your second variable is:", second
    print "Your third variable is:", third

    Mi lehet baja?
    Win7et használok, és 2.7-es pythont
    Köszi a segítséget előre is :)

    valoszinuleg nem adtal neki eleg parametert. hogyan hivod meg a scriptet?. valahogy igy kellene:
    python ex13.py egy ketto harom

  • rt06
    veterán

    Na megint nekem van problémám :DDD
    Zed A. Shaw Learn Python The Hard Way, 2nd Edition könyvét olvasom, 13-ik leckénél tartok, és elakadtam.A következő kódot hiába csinálom meg rendesen nem működik (Azt írja ki a piton, hogy
    File "C:\Users\valami\Desktop\cucc\ex13.py", line 3, in <module>
    script, first, second, third = argv
    ValueError: need more than 1 value to unpack

    A script pedig ez lenne:
    from sys import argv

    script, first, second, third = argv

    print "The script is called:", script
    print "Your first variable is:", first
    print "Your second variable is:", second
    print "Your third variable is:", third

    Mi lehet baja?
    Win7et használok, és 2.7-es pythont
    Köszi a segítséget előre is :)

    ott van a linken szereplo lecke vegen a megoldas

  • nicknev
    csendes tag

    Na megint nekem van problémám :DDD
    Zed A. Shaw Learn Python The Hard Way, 2nd Edition könyvét olvasom, 13-ik leckénél tartok, és elakadtam.A következő kódot hiába csinálom meg rendesen nem működik (Azt írja ki a piton, hogy
    File "C:\Users\valami\Desktop\cucc\ex13.py", line 3, in <module>
    script, first, second, third = argv
    ValueError: need more than 1 value to unpack

    A script pedig ez lenne:
    from sys import argv

    script, first, second, third = argv

    print "The script is called:", script
    print "Your first variable is:", first
    print "Your second variable is:", second
    print "Your third variable is:", third

    Mi lehet baja?
    Win7et használok, és 2.7-es pythont
    Köszi a segítséget előre is :)

  • nicknev
    csendes tag

    A % jel a programozásban a modulo művelet azaz a maradékképzés jele ami az osztás utáni maradékot adja vissza, ami 4 esetében : 1,2,3 lehet.

    Köszönöm szépen, így már világosabb :)) :DD :R

  • Frigo
    őstag

    Sziasztok!
    Nemrég kezdtem el a programozással foglalkozni, és úgy döntöttem hogy a Python nyelvet fogom megtanulni, mert azt hallottam róla, hogy egyszerű megtanulni, és érthetőbb mint pl.: a c++ vagy a c#.
    El is kezdtem olvasni egy online "könyvet" (Learn Python The Hard Way, 2nd Edition) és a 3-ik leckében volt egy ilyen művelet hogy print "Roosters", 100 - 25 * 3 % 4 amiből a 100 - 25 * 3 % 4 a lényeg számomra, ugyanis nem nagyon értem (és megköszönném ha valaki elmagyarázná), hogy a százalékjeles művelet mit csinál.
    Ebből, hogy: 100 - 25 * 3 % 4 hogy lesz 97, míg 100-25*3%5 eredménye 100?Vagy sokat felejtettem a matekból, vagy egyszerűen láma vagyok, de 100-25*(3*0,04)=97, de viszont 100-25*(3*0,05)=96,25 és nem 100. nem tudok rájönni, hogy miért van ez, vagy ha nem így, akkor hogy működne itt ez a %. (Esetleg ez egy bug lenne?) Köszönöm előre is a segítségeteket.
    Üdv
    nn

    A % jel a programozásban a modulo művelet azaz a maradékképzés jele ami az osztás utáni maradékot adja vissza, ami 4 esetében : 1,2,3 lehet.

  • nicknev
    csendes tag

    Sziasztok!
    Nemrég kezdtem el a programozással foglalkozni, és úgy döntöttem hogy a Python nyelvet fogom megtanulni, mert azt hallottam róla, hogy egyszerű megtanulni, és érthetőbb mint pl.: a c++ vagy a c#.
    El is kezdtem olvasni egy online "könyvet" (Learn Python The Hard Way, 2nd Edition) és a 3-ik leckében volt egy ilyen művelet hogy print "Roosters", 100 - 25 * 3 % 4 amiből a 100 - 25 * 3 % 4 a lényeg számomra, ugyanis nem nagyon értem (és megköszönném ha valaki elmagyarázná), hogy a százalékjeles művelet mit csinál.
    Ebből, hogy: 100 - 25 * 3 % 4 hogy lesz 97, míg 100-25*3%5 eredménye 100?Vagy sokat felejtettem a matekból, vagy egyszerűen láma vagyok, de 100-25*(3*0,04)=97, de viszont 100-25*(3*0,05)=96,25 és nem 100. nem tudok rájönni, hogy miért van ez, vagy ha nem így, akkor hogy működne itt ez a %. (Esetleg ez egy bug lenne?) Köszönöm előre is a segítségeteket.
    Üdv
    nn

  • gela90
    csendes tag

    Sziasztok!
    Kezdo kerdesem lenne, ismetlodo loopot szeretnek csinalni a "szamologephez" mert ha elvegzett egy szamolast kilep, vissza kene ugrania az elejere

    http://img109.imageshack.us/img109/2690/asdyg.png

  • Abadus
    csendes tag

    Tisztelt Programozók!

    A következő programozási munkára keresünk szakembert:

    http://www.abadus.hu/Project/Python_programozot_keresek_kisebb_projektmunkara

    Regisztráció után közvetlenül a munkaadónak tehetnek ajánlatot!

    Üdvözlettel

    Az Abadus csapata

  • ArchElf
    addikt

    Köszi szépen,

    Igazából az első kérdésemre való válaszra rájöttem közben (talán), a fő kérdés az maradt, hogyan tudok később visszatérni az egész procedúra elejére ha egy későbbi feltétel nem teljesül. ezekszerint csak úgy megy, hogy az egész egy while ciklusban van

    Persze - a goto az ördög műve :)

    AE

  • mzprox
    aktív tag

    while ciklusban:

    lista=[a,b,c,d]
    while True :
    string1=raw_input("elso")
    jostring = True
    for i in string1:
    if i not in lista:
    csináljon valamit (hibaüzenet 1)
    jostring = False
    break
    if jostring:
    string2=raw_input("masodik")
    for i in string2:
    if i not in lista:
    csináljon valamit (hibaüzenet 2)
    jostring = False
    break
    if jostring:
    break

    csináljon valamit (string1, string2 feldolgozása)

    Csak összedobtam, nem teljesen tuti, hogy hibamentes...

    AE

    Köszi szépen,

    Igazából az első kérdésemre való válaszra rájöttem közben (talán), a fő kérdés az maradt, hogyan tudok később visszatérni az egész procedúra elejére ha egy későbbi feltétel nem teljesül. ezekszerint csak úgy megy, hogy az egész egy while ciklusban van

  • ArchElf
    addikt

    Üdv,
    lenne egy (szerintem) egyszerű fealadat amihez segítséget kérnék, hátha erre téved valak :) i:
    A feladat: bekérni egy stringet, megnézni az összes betűjéről., hogy szerepel e egy előre definiált listában és ha van olyan betű, ami nincs benne akkor hibaüzenet és új string kérése. ha minden elem megvan a listában akkor kérjen egy másik stringet, ezt is ellenőrizze le, ha oké akkor folytatás, ha van oylan elem, ami nincs a listában akkor kezdje a legelejétől.

    valahogy így kezdődne:

    lista=[a,b,c,d]
    string1=raw_input("elso")
    for i in string1:
    ....if i not in lista:
    .........csináljon valamit
    ...else:
    ......string2=raw_input("masodik")

    stb

    innen jöhetne a segítség

    A fő kérdés az, hogy hogyan érem el, hogy az összes elemet megvizsgálja és csak azután folytassa, ha minden oké.
    A b kérdés, hogyan tudok visszalépni a teljes procedura elejére ha egy későbbi feltétel nem teljesül.

    Kösz

    while ciklusban:

    lista=[a,b,c,d]
    while True :
    string1=raw_input("elso")
    jostring = True
    for i in string1:
    if i not in lista:
    csináljon valamit (hibaüzenet 1)
    jostring = False
    break
    if jostring:
    string2=raw_input("masodik")
    for i in string2:
    if i not in lista:
    csináljon valamit (hibaüzenet 2)
    jostring = False
    break
    if jostring:
    break

    csináljon valamit (string1, string2 feldolgozása)

    Csak összedobtam, nem teljesen tuti, hogy hibamentes...

    AE

  • mzprox
    aktív tag

    Még annyit a fentihez, hogy nem kell pontosan megírni nekem a kódot és még a python se fontos csak az elv a lényeg, gondolom, minden nyelven hasonlóan működik.

  • mzprox
    aktív tag

    Üdv,
    lenne egy (szerintem) egyszerű fealadat amihez segítséget kérnék, hátha erre téved valak :) i:
    A feladat: bekérni egy stringet, megnézni az összes betűjéről., hogy szerepel e egy előre definiált listában és ha van olyan betű, ami nincs benne akkor hibaüzenet és új string kérése. ha minden elem megvan a listában akkor kérjen egy másik stringet, ezt is ellenőrizze le, ha oké akkor folytatás, ha van oylan elem, ami nincs a listában akkor kezdje a legelejétől.

    valahogy így kezdődne:

    lista=[a,b,c,d]
    string1=raw_input("elso")
    for i in string1:
    ....if i not in lista:
    .........csináljon valamit
    ...else:
    ......string2=raw_input("masodik")

    stb

    innen jöhetne a segítség

    A fő kérdés az, hogy hogyan érem el, hogy az összes elemet megvizsgálja és csak azután folytassa, ha minden oké.
    A b kérdés, hogyan tudok visszalépni a teljes procedura elejére ha egy későbbi feltétel nem teljesül.

    Kösz

  • sekli
    addikt

    Sziasztok!

    Írtam egy szkriptet, ami folyamatosan lekér egy oldalt. A gong viszont az, hogy a Python 3.1-es verziónál korábbi urllib2 modulban memory leak van, mivel a pys60 port a 2.5.4-est használja ezzel nem nagyon tudok mit tenni. A bug egyébként ismert, itt adnak is egykét tippet, hogy lehetne megoldani, de nálam semelyik nem működik. A probléma az, hogy a telefonon körülbelül hetven kapcsolódás után elfogy a memória, nekem meg futnia kéne órákig (azaz jó lenne, ha nem fogyna a memória egyáltalán). A szerverről letöltött adatokkal egyébként nem is csinálok semmit, a lényeg, hogy a PHP-nek átadjam az URL-ben lévő paraméterek értékeit.

    szerintem már mindent kipróbáltam, amit a google-lel találni lehet az ügyben. most így néz ki a kód, minden apró trükkel együtt:

    import urrlib2, httplib, gc
    while(true):
    url = "http://something.com/foo.php?parameter=" + value
    f = urllib2.urlopen(url)
    f.read(1)
    f.fp._sock.recv=None # hacky avoidance
    f.close()
    del f
    gc.collect()

    gc sem gyűjti be, de legalább jól lelassítja a szkriptet,

    valakinek van valami javaslata?

  • cousin333
    addikt

    Kernem valaki segitsen ezt kaptam vizsgapeldarah javitsam ki belole a hibakat es komentaljam a program mukodeset es nem nagyon megy :( segitene valaki ?

    import GUI, menu
    choices :=array("Subotica";t"Palic");
    index == appuifw.popup_array(choicess: u"Select:");
    $prom = 12;
    def calculate($prom);
    echo $prom+50

    calculate();

    if index = 0:
    appuifw.note(u"Subotica");
    elseif index = 1;
    {
    appiufw.note(u"Palic")
    }

    Nem állítom, hogy mindent értek az itt szereplőkből (array-t például még sosem használtam), de azért pár dolog nyitásnak. Ha hülyeséget írtam, akkor javítsatok! :)

    Globális hibák:

    - a sorok végére nem kell pontosvessző
    - a behúzás mértéke nagyon is számít
    - nincs kapcsos zárójel sem (legalábbis nem ebben a formában)

    import GUI, menu
    importálja a GUI és menu modulokat, ha jól láttam, ezek nincsenek benne az alap nyelvben

    choices :=array("Subotica";t"Palic");
    egy tömb létrehozása; értékadás, tehát kettőspont nem kell; "t" típuskódot én nem látok, és nem is oda kell tenni (az array azonos típusú elemek listája); az elválasztó a vessző, nem a pontosvessző, szóval inkább:
    choices = array('u', ['Subotica', 'Palic'])

    index == appuifw.popup_array(choicess: u"Select:");
    Őszintén szólva ez nem tudom, mi akar lenni, az appuifw valami Symbianos cucc :F Ami biztos rossz, az a kettős egyenlőségjel, illetve a pontosvessző a végén, valamint a choices változónév el lett írva.

    $prom = 12;
    Nem kezdődhet dollárjellel a változó neve, és pontosvessző sem kell.
    prom = 12

    def calculate($prom);
    echo $prom+50

    Inkább így kellene:
    def calculate(prom):
    return prom+50

    calculate();
    Pontosvessző nem kell, függvényparaméter viszont igen. Pl.:
    calculate(13)

    if index = 0:
    appuifw.note(u"Subotica");
    elseif index = 1;
    {
    appiufw.note(u"Palic")
    }

    Ez sem az igazi, inkább:
    if index == 0:
    appuifw.note(u'Subotica')
    elif index == 1:
    appiufw.note(u'Palic')

    Remélem azért segítettem valamelyest...

  • kopasza
    csendes tag

    Kernem valaki segitsen ezt kaptam vizsgapeldarah javitsam ki belole a hibakat es komentaljam a program mukodeset es nem nagyon megy :( segitene valaki ?

    import GUI, menu
    choices :=array("Subotica";t"Palic");
    index == appuifw.popup_array(choicess: u"Select:");
    $prom = 12;
    def calculate($prom);
    echo $prom+50

    calculate();

    if index = 0:
    appuifw.note(u"Subotica");
    elseif index = 1;
    {
    appiufw.note(u"Palic")
    }

  • altec
    csendes tag

    Hello mindenkinek!

    Egy olyan programra lenne szükségem, ami ebből:

    Csanak Dávid
    12
    20
    Borbély András
    27
    Pál Balázs
    26
    13
    18

    ilyet ilyet tud csinálni:

    Csanak Dávid 32
    Borbély András 27
    Pál Balázs 57

    A nevekhez pontszámok tartoznak. Csak az van itt, akinek legalább egy pontszáma van, akinek nincs pontja, az nem szerepel a fájlban. Az adatokat fájlból olvassa be. Az inputfájl a program parancssori paramétere. Ha nincs paraméter, hibát írjon ki.

    :( nem nagyon vágom a pythont (és a többi nyelvet se)! :(
    Nagyon örülnék :DD , ha segítene vki, még mára kellene.

  • ZeUS2140
    aktív tag

    Sziasztok.

    L2j server-t babrálok, modolok (100% legális...) és a quest-ek py-ben vannak megírva.
    Elég jól átlátom és módosítgatom, igazítom a saját igényeimhez, de egy résznél elakadtam.
    Szóval röviden, hogy felkeltsem a kedveteket: :)
    Adott egy quest, ahol 5 dolog választható. Van 5 változó, amit a meghívott html file-ok választanak ki. Pl egyik html file-ban a linkre kattintva SK paraméter jön vissza.
    Ezt az elején a definiálásnál leírt SK : [.........] rész tartalmával fel is tölti.
    Utána a SK változó tartalmával lefut 3-4 sql írás és kész.

    Na a problémám: nekem a 3-4 sql-be írás előtt, közvetlen után kellene egy SK változóban lévő paraméter alapján egy IF ellenőrzés.
    Ezt akár milyen formában írom be, már a py file elején megáll.

    Vagy az IF részt tolom el, de hibát nem ír sehol, szóval durva hibát nem követek el.

    Aki tudna segíteni írjon már rám msn-ben kérem. Küldök egy file-t, elküldöm, hogy mit szeretnék, és hogy csináltam és csak azt kellene megnézni, hogy ez így jó-e, miért nem jó és esetleg egy hogyan kellene.

    Eddig így próbáltam: ha SK jön vissza html-ből, akkor SK első változója a newclass = 33

    Az sql módosítások elé beírtam:

    if newclass = 33 :
    st.giveItems(620,1)

    Szóval egy sima változó alapján 5 IF rész kellene nekem.

    Aki tud, akar segíteni előre is köszönöm. PM-ben, vagy MSN-en megtalál.
    MSN: zeus2140@hotmail.com

    rájöttem, megoldottam...
    Lényeg, hogy tárgytalan a kérdésem.

  • ZeUS2140
    aktív tag

    Sziasztok.

    L2j server-t babrálok, modolok (100% legális...) és a quest-ek py-ben vannak megírva.
    Elég jól átlátom és módosítgatom, igazítom a saját igényeimhez, de egy résznél elakadtam.
    Szóval röviden, hogy felkeltsem a kedveteket: :)
    Adott egy quest, ahol 5 dolog választható. Van 5 változó, amit a meghívott html file-ok választanak ki. Pl egyik html file-ban a linkre kattintva SK paraméter jön vissza.
    Ezt az elején a definiálásnál leírt SK : [.........] rész tartalmával fel is tölti.
    Utána a SK változó tartalmával lefut 3-4 sql írás és kész.

    Na a problémám: nekem a 3-4 sql-be írás előtt, közvetlen után kellene egy SK változóban lévő paraméter alapján egy IF ellenőrzés.
    Ezt akár milyen formában írom be, már a py file elején megáll.

    Vagy az IF részt tolom el, de hibát nem ír sehol, szóval durva hibát nem követek el.

    Aki tudna segíteni írjon már rám msn-ben kérem. Küldök egy file-t, elküldöm, hogy mit szeretnék, és hogy csináltam és csak azt kellene megnézni, hogy ez így jó-e, miért nem jó és esetleg egy hogyan kellene.

    Eddig így próbáltam: ha SK jön vissza html-ből, akkor SK első változója a newclass = 33

    Az sql módosítások elé beírtam:

    if newclass = 33 :
    st.giveItems(620,1)

    Szóval egy sima változó alapján 5 IF rész kellene nekem.

    Aki tud, akar segíteni előre is köszönöm. PM-ben, vagy MSN-en megtalál.
    MSN: zeus2140@hotmail.com

  • Sanyix
    őstag

    A PyXML-et régóta nem tartják karban, de miért akarnád azt használni? 2.6-ba be van építve minden ami xml feldolgozáshoz kellhet.

    ahhoz képest ez a pyffi nevű másik fos állandóan azért sír hogy nincs xml parser.

  • RedAnt
    aktív tag

    hogy lehet ebben a fosban ezt a pyxml libet életrekelteni? Mert az az ősrégi verziós win32-es telepít azt írja hogy nincs python 2.4-em (igen mert 2.6 van). A setup.py-vel buildolva meg mindig elszáll azzal hogy unable to find "vcvarsall.bat".

    A PyXML-et régóta nem tartják karban, de miért akarnád azt használni? 2.6-ba be van építve minden ami xml feldolgozáshoz kellhet.

  • Sanyix
    őstag

    hogy lehet ebben a fosban ezt a pyxml libet életrekelteni? Mert az az ősrégi verziós win32-es telepít azt írja hogy nincs python 2.4-em (igen mert 2.6 van). A setup.py-vel buildolva meg mindig elszáll azzal hogy unable to find "vcvarsall.bat".

  • sekli
    addikt

    a=Cube

    Így zárójelek nélkül "a" a Cube osztályra fog mutatni, ahelyett hogy egy új objektumot inicializálnál.
    Helyesen:

    def __init__(self, x=0, y=0, size=0)
    ...
    a = Cube()

    vagy
    a = Cube(0, 0, 0)

    Érdemes még az osztály definiálásánál megadni az objectet szülőosztálynak:
    class Cube(object):

    köszönöm szépen!

  • RedAnt
    aktív tag

    heló,

    ugyan rettentően kihalt a topik, én mégis megpróbálkozom egy rém buta kérdéssel, egyszerűen csak nem értem, hogy miert nem jó, pedig annyira egyszerű dolog:

    van egy osztály:

    import random

    class Cube():
    def __init__(self,x,y,size):
    self.x = x
    self.y = y
    self.size = size

    cubes = []

    ( két dimenziós kocka, nincs harmadik koordinátája, ez most ilyen :) )

    feltoltok egy tombot elemekkel:

    for i in xrange(0,5,1):
    a=Cube
    a.x=random.randrange(320)
    a.y=80+random.randrange(160)
    a.size=(a.y-80)/4
    cubes.append(a)
    print cubes[i].x #itt ki is irja szepen mindegyik (kulonbozo x-et)

    es ezek mar nem mukodnek, egyik sem:

    for kocka in cubes:
    print kocka.x

    mindig a 4-es indexu (utolso) elemet irja ki, xrange()-el sem megy, sot, igy sem:

    print cubes[2].x

    a=Cube

    Így zárójelek nélkül "a" a Cube osztályra fog mutatni, ahelyett hogy egy új objektumot inicializálnál.
    Helyesen:

    def __init__(self, x=0, y=0, size=0)
    ...
    a = Cube()

    vagy
    a = Cube(0, 0, 0)

    Érdemes még az osztály definiálásánál megadni az objectet szülőosztálynak:
    class Cube(object):

  • sekli
    addikt

    heló,

    ugyan rettentően kihalt a topik, én mégis megpróbálkozom egy rém buta kérdéssel, egyszerűen csak nem értem, hogy miert nem jó, pedig annyira egyszerű dolog:

    van egy osztály:

    import random

    class Cube():
    def __init__(self,x,y,size):
    self.x = x
    self.y = y
    self.size = size

    cubes = []

    ( két dimenziós kocka, nincs harmadik koordinátája, ez most ilyen :) )

    feltoltok egy tombot elemekkel:

    for i in xrange(0,5,1):
    a=Cube
    a.x=random.randrange(320)
    a.y=80+random.randrange(160)
    a.size=(a.y-80)/4
    cubes.append(a)
    print cubes[i].x #itt ki is irja szepen mindegyik (kulonbozo x-et)

    es ezek mar nem mukodnek, egyik sem:

    for kocka in cubes:
    print kocka.x

    mindig a 4-es indexu (utolso) elemet irja ki, xrange()-el sem megy, sot, igy sem:

    print cubes[2].x

  • cousin333
    addikt

    Na, megint megkísérlem feldobni a topikot. Szóval volt egy problémám, amit szerencsére már sikerült megoldani.

    Adva van egy függvény, az egyszerűség kedvéért ez (a lényeg a több argumentum):

    >>> def osszeg(a,b):
    return a+b

    Adott emellett két (nem feltétlenül, de most jelenesetben) egyforma hosszúságú lista:

    >>> a = [1,2,3,4]
    >>> b = [5,6,7,8]

    A cél az volna, hogy párosával hívjuk meg velük az osszeg függvényünket. Erre egy megoldás lehet a map függvény használata.

    >>> x = list(map(osszeg, a, b))
    >>> print(x)

    [6, 8, 10, 12]

    Látható tehát, hogy a kívánt eredményt kaptuk. De mi van akkor, ha nem ilyen listáink vannak, hanem tuple-jet tartalmazó lista, amiket például így kaphatunk:

    >>> c = list(zip(a,b))
    >>> print(c)

    [(1, 5), (2, 6), (3, 7), (4, 8)]

    A kérdés, hogy ezt hogyan rakhatjuk be a map függvényünkbe. Nekem úgy tűnik, sehogy, helyette list comprehension-t kell használni, valahogy így:

    >>> d = [osszeg(i,j) for i,j in zip(a,b)]
    >>> print(d)

    [6, 8, 10, 12]

    A kérdés azonban nem a-ra és b-re vonatkozott elsősorban, hanem c-re, tehát egy tuple-kből álló listára. Mint mondtam, a map-al nekem nem sikerült a list comprehension-nal (ennek mi a magyar neve?) viszont igen. Így:

    >>> e = [osszeg(i,j) for i,j in c]
    >>> print(e)

    [6, 8, 10, 12]

    Köszönöm, csak ennyit akartam mondani, hátha valakinek segítségére voltam. :B

    ui: Tényleg ennyire nem használja senki ezt a programnyelvet? :F

    Lehet, hogy kellene írnom valami ismertetőt róla, bár én magam sem vagyok egy guru. De ebben a nyelvben éppen az a jó, hogy egyszerűen megtanulható, könnyen használható már alapszintű ismeretekkel is...

  • zotya7895
    csendes tag

    Üdv!

    Nem kell, mindenesetre nem árt. A legfontosabb, hogy magyar nyelvű segítséged legyen, a Pythonhoz (is) léteznek magyar nyelvű könyvek. Az utasítások angolul vannak a programokban, így az angoltudás megkönnyíti a memorizálásukat és a használatukat, de nem követelmény, elég, ha bebiflázod.

    Ami még fontos, az az angol szemlélet: magyarul max. kommentezni szabad,magyar változónevek határesetet képeznek, a lényeg az angol karakterek használata (ékezetmentesség).

    Köszönöm a válaszod.

  • cousin333
    addikt

    Helló!
    A programozáshoz kell angol tudás vagy ha elindulsz a programozás felé akkor megtanulsz annyit hogy elég legyen?
    részben ide vág :)

    Üdv!

    Nem kell, mindenesetre nem árt. A legfontosabb, hogy magyar nyelvű segítséged legyen, a Pythonhoz (is) léteznek magyar nyelvű könyvek. Az utasítások angolul vannak a programokban, így az angoltudás megkönnyíti a memorizálásukat és a használatukat, de nem követelmény, elég, ha bebiflázod.

    Ami még fontos, az az angol szemlélet: magyarul max. kommentezni szabad,magyar változónevek határesetet képeznek, a lényeg az angol karakterek használata (ékezetmentesség).

  • zotya7895
    csendes tag

    Helló!
    A programozáshoz kell angol tudás vagy ha elindulsz a programozás felé akkor megtanulsz annyit hogy elég legyen?
    részben ide vág :)

  • cousin333
    addikt

    A fordítással a compile-ra gondoltam, exe-t gyártani a forrásból (ami jelen esetben nem is egy fájl, hanem több mappában jópár fájl; de project fájl meg nincs ami Visual C-nél lenne :F ).
    És akkor ehhez a forráshoz a régebbi változatú Python fog kelleni ?

    És milyen fejlesztőkörnyezetet tudnál ajánlani, aminek valamilyen jól használható, a Microsoft Visual C-hez hasonló kialakítású kezelőfelülete van ?
    Vagy ponthogy abban bonyolultabb lenne így elsőre ?

    Találtam egy ilyet: [link]
    Itt Eclipse + PyDev plug-in-ról írnak, de itt van egy csomó más SDK neve is: [link]
    De elöször akkor a python.org-ról a "Python 2.6.2 Windows installer (Windows binary -- does not include source) ", meg a Java Runtime enviroment kell, nem ?

    A Python meg interpretált nyelv, nem kell feltétlenül lefordítani...
    "This program has been tested with python2.4 on both linux and OSX (in theory it should work on any system that has python2.4+ installed). "
    Én csak ebből gondolom, hogy menne Windows XP-n is, egyébként nem értek a Pythonhoz.

    "A fordítással a compile-ra gondoltam, exe-t gyártani a forrásból"

    Értem én, de mondom, hogy erre nincsen szükség, ha egyszer fenn van a Python futtatókörnyezet.

    "És milyen fejlesztőkörnyezetet tudnál ajánlani, aminek valamilyen jól használható, a Microsoft Visual C-hez hasonló kialakítású kezelőfelülete van ?"

    Igazság szerint nem ismerem különösebben a Visual C-t. Alapfokúbb dolgokhoz szerintem jó a "gyári" környezet, esetleg megtámogatva egy Notepad++-szerű alkalmazással. Komolyabbakhoz valóban rendelkezésre áll az említett Eclipse + PyDev. Működni működik, mert próbáltam, de nekem nincs rá szükségem.

    "De elöször akkor a python.org-ról a "Python 2.6.2 Windows installer (Windows binary -- does not include source) ", meg a Java Runtime enviroment kell, nem ?"

    Igen. A Java az alap Pythonhoz nem szükséges és szerintem az Eclipse is tartalmazza, ami neki kell.

    "Én csak ebből gondolom, hogy menne Windows XP-n is, egyébként nem értek a Pythonhoz."

    Letöltöd a win-es telepítőt és felteszed, onnantól kezdve mennie kellene, mert abban minden benne van, ami kell. A 3-assal azért nem volt jó, mert az visszafelé nem kompatibilis.

  • atesss
    addikt

    Python 2.6.2-et tedd fel, vagy régebbit, mert a 3-as verzió visszafelé nem kompatibilis.

    A Python meg interpretált nyelv, nem kell feltétlenül lefordítani...

    A fordítással a compile-ra gondoltam, exe-t gyártani a forrásból (ami jelen esetben nem is egy fájl, hanem több mappában jópár fájl; de project fájl meg nincs ami Visual C-nél lenne :F ).
    És akkor ehhez a forráshoz a régebbi változatú Python fog kelleni ?

    És milyen fejlesztőkörnyezetet tudnál ajánlani, aminek valamilyen jól használható, a Microsoft Visual C-hez hasonló kialakítású kezelőfelülete van ?
    Vagy ponthogy abban bonyolultabb lenne így elsőre ?

    Találtam egy ilyet: [link]
    Itt Eclipse + PyDev plug-in-ról írnak, de itt van egy csomó más SDK neve is: [link]
    De elöször akkor a python.org-ról a "Python 2.6.2 Windows installer (Windows binary -- does not include source) ", meg a Java Runtime enviroment kell, nem ?

    A Python meg interpretált nyelv, nem kell feltétlenül lefordítani...
    "This program has been tested with python2.4 on both linux and OSX (in theory it should work on any system that has python2.4+ installed). "
    Én csak ebből gondolom, hogy menne Windows XP-n is, egyébként nem értek a Pythonhoz.

  • cousin333
    addikt

    Üdv !
    Egy kis segítségre lenne szükségem:
    Találtam egy cuTorrent nevű kiegészitést a uTorrenthez (illetve a WebUI-jához), amivel egy bat fájlon keresztül le tudnám állítani a seed-elést, ha elérem a napi 5GB-os feltöltési limitet (az adatforgalmat figyelő program már megvan).
    Hiába keresgéltem, csak Pythonos forráskódot találtam:
    [link] és letöltgető innen: [link]
    Na ezt le kéne fordítani még, Windows alá...
    Próbálkoztam is vele, de amilyen fejlesztői környezetet letöltöttem hozzá (a python.org -ról), azzal nem sikerült boldogulni, pl. rögtön sytax errort dobott.
    Tudnátok ajánlani valamilyen grafikus felületű (igazából a Visual Studiohoz hasonló lenne a legjobb, mivel abban tanultam C-t ) SDK-t ? Meg valami tutorial is jó lenne, hogy hogyan is működik ez.

    Vagy ha valaki meg tudná tenni nekem, hogy lefordítja a programot Windows alá, és elküldi nekem, azt nagyon megköszöném. :R

    Mégiscsak egyszerűbb lenne, mert ha valakinek fent van az SDK, és tudja is használni, akkor kb. 1 perc alatt le lehet fordítani gondolom, nekem meg akár több óra is lehet, mire tényleg kiismerem, hogy hogyan is kellene ezt csinálni.

    Python 2.6.2-et tedd fel, vagy régebbit, mert a 3-as verzió visszafelé nem kompatibilis.

    A Python meg interpretált nyelv, nem kell feltétlenül lefordítani...

  • atesss
    addikt

    Üdv !
    Egy kis segítségre lenne szükségem:
    Találtam egy cuTorrent nevű kiegészitést a uTorrenthez (illetve a WebUI-jához), amivel egy bat fájlon keresztül le tudnám állítani a seed-elést, ha elérem a napi 5GB-os feltöltési limitet (az adatforgalmat figyelő program már megvan).
    Hiába keresgéltem, csak Pythonos forráskódot találtam:
    [link] és letöltgető innen: [link]
    Na ezt le kéne fordítani még, Windows alá...
    Próbálkoztam is vele, de amilyen fejlesztői környezetet letöltöttem hozzá (a python.org -ról), azzal nem sikerült boldogulni, pl. rögtön sytax errort dobott.
    Tudnátok ajánlani valamilyen grafikus felületű (igazából a Visual Studiohoz hasonló lenne a legjobb, mivel abban tanultam C-t ) SDK-t ? Meg valami tutorial is jó lenne, hogy hogyan is működik ez.

    Vagy ha valaki meg tudná tenni nekem, hogy lefordítja a programot Windows alá, és elküldi nekem, azt nagyon megköszöném. :R

    Mégiscsak egyszerűbb lenne, mert ha valakinek fent van az SDK, és tudja is használni, akkor kb. 1 perc alatt le lehet fordítani gondolom, nekem meg akár több óra is lehet, mire tényleg kiismerem, hogy hogyan is kellene ezt csinálni.

  • cousin333
    addikt

    Helló!
    Írtad hogy "először jó lenne magával a programozással kapcsolatos könyvet is olvasgatni"
    Erre tudsz valami könyvet?
    Válaszod előre is köszönöm! :)

    Látod, most megfogtál :)

    Olyan könyvre gondolok itt elsősorban, ami a programozás folyamatával és nem konkrétan egy adott programozással kapcsolatos. Tudom, hogy léteznek ilyen könyvek, de nekem személyesen még nem volt hozzájuk szerencsém. :U

    Ezt mondjuk nem ismerem, de jónak tűnik, ilyesmire gondoltam.

    Az "először"-t inkább visszavonom, legalábbis "párhuzamosan"-ra módosítanám. Egy olyan nyelvvel kellene kezdeni, mint a Python, mert egyszerű és könnyen átlátható. Ennek gyakorlati eredménye is van (a program, amit írsz), és mindjárt példákat látsz az egyes témákra, nem csak a száraz elméletet. Általában a jobbfajta, az egyes programozási nyelvekkel kapcsolatos könyvek is nyújtanak némi általános programozási ismereteket.

  • zotya7895
    csendes tag

    Szerintem az ilyesmit nem lehet elég korán kezdeni. Esetleg érdemes lehet alapvetően a számítógépek működésével, és magával a programozással (tehát nem egy konkrét nyelvvel) kapcsolatos könyveket is olvasgatni, de a programozói gondolkodást el lehet sajátítani egy programnyelven keresztül is (valamilyen szinten).

    Kezdő nyelvként a Python szerintem ideális, mert egyszerűen el lehet vele indulni (minden benne van, ami kell, könnyen telepíthető, a kód akár soronként futtatható), logikus, egyszerű, és rákényszeríti a felhasználót a szép, strukturált kódra. Mindemellett kellően komplex dolgok is megvalósíthatók vele a későbbiek folyamán.

    Ha valami kérdésed van, tedd fel nyugodtan, ha tudok, válaszolok rá (én sem vagyok egy guru, de majd igyekszem).

    Helló!
    Írtad hogy "először jó lenne magával a programozással kapcsolatos könyvet is olvasgatni"
    Erre tudsz valami könyvet?
    Válaszod előre is köszönöm! :)

  • zotya7895
    csendes tag

    Szerintem az ilyesmit nem lehet elég korán kezdeni. Esetleg érdemes lehet alapvetően a számítógépek működésével, és magával a programozással (tehát nem egy konkrét nyelvvel) kapcsolatos könyveket is olvasgatni, de a programozói gondolkodást el lehet sajátítani egy programnyelven keresztül is (valamilyen szinten).

    Kezdő nyelvként a Python szerintem ideális, mert egyszerűen el lehet vele indulni (minden benne van, ami kell, könnyen telepíthető, a kód akár soronként futtatható), logikus, egyszerű, és rákényszeríti a felhasználót a szép, strukturált kódra. Mindemellett kellően komplex dolgok is megvalósíthatók vele a későbbiek folyamán.

    Ha valami kérdésed van, tedd fel nyugodtan, ha tudok, válaszolok rá (én sem vagyok egy guru, de majd igyekszem).

    köszönöm a válaszod!
    :)

  • zotya7895
    csendes tag

    Szerintem az ilyesmit nem lehet elég korán kezdeni. Esetleg érdemes lehet alapvetően a számítógépek működésével, és magával a programozással (tehát nem egy konkrét nyelvvel) kapcsolatos könyveket is olvasgatni, de a programozói gondolkodást el lehet sajátítani egy programnyelven keresztül is (valamilyen szinten).

    Kezdő nyelvként a Python szerintem ideális, mert egyszerűen el lehet vele indulni (minden benne van, ami kell, könnyen telepíthető, a kód akár soronként futtatható), logikus, egyszerű, és rákényszeríti a felhasználót a szép, strukturált kódra. Mindemellett kellően komplex dolgok is megvalósíthatók vele a későbbiek folyamán.

    Ha valami kérdésed van, tedd fel nyugodtan, ha tudok, válaszolok rá (én sem vagyok egy guru, de majd igyekszem).

    köszönöm a válaszod!
    :)

  • cousin333
    addikt

    Köszönöm a válaszod!
    És mikor ajánlatos kezdeni? (már mint a programozást)
    Mert én ugyanis 13 éves vagyok. :DD
    De remélem ez nem hátrány? :DD

    Szerintem az ilyesmit nem lehet elég korán kezdeni. Esetleg érdemes lehet alapvetően a számítógépek működésével, és magával a programozással (tehát nem egy konkrét nyelvvel) kapcsolatos könyveket is olvasgatni, de a programozói gondolkodást el lehet sajátítani egy programnyelven keresztül is (valamilyen szinten).

    Kezdő nyelvként a Python szerintem ideális, mert egyszerűen el lehet vele indulni (minden benne van, ami kell, könnyen telepíthető, a kód akár soronként futtatható), logikus, egyszerű, és rákényszeríti a felhasználót a szép, strukturált kódra. Mindemellett kellően komplex dolgok is megvalósíthatók vele a későbbiek folyamán.

    Ha valami kérdésed van, tedd fel nyugodtan, ha tudok, válaszolok rá (én sem vagyok egy guru, de majd igyekszem).

  • zotya7895
    csendes tag

    Üdv!

    Elég nagy a pangás ebben a fórumban, szóval nézd el nekem , hogy csak most válaszolok. Szóval előbb a hivatalos oldalról le kell tölteni a legfrissebb verziót (ami jelenleg a 3.0.1-es). Ezt feltelepíted, és elindítod az IDLE nevű környezetet. Innentől kezdve már írogathatod is a programokat. A mikéntről olvashatsz magyar nyelvű könyvet, amiben az alapoktól indulnak.

    Amúgy leginkább programot, vagy játékot készíthetsz vele. Honlapot is lehet, csak ahhoz kevés lesz, más nyelvek is kellenek mellé (sőt, inkább azok).

    Szerintem a futtatókörnyezettel meg az ajánlott könyvvel el lehet sajátítani az alapokat, onnan meg már tudni fogod, merre szeretnél tovább menni.

    Köszönöm a válaszod!
    És mikor ajánlatos kezdeni? (már mint a programozást)
    Mert én ugyanis 13 éves vagyok. :DD
    De remélem ez nem hátrány? :DD

  • cousin333
    addikt

    Sziasztok!
    Én is most ismerkedek a python nyelvel és nagyon kezdő vagyok ugyanis még a program sincs meg amivel tudnák alkotni :D , és abban a programban konkréten mit lehet csinálni? Játékot vagy programot vagy weboldalt lehet vele szerkeszteni?
    És hol kezdjem a tanulást? valami könyvet tudtok ajánlani? én ugyanis már néztem az előttem hozzászóltakat és ott is volt egy pár könyv meg doksik meg minden, de ezeket rágjam át? :) és utána kezdjek programozni? Ti hol kezdtétek? Könyvet olvastatok először és utána programoztatok? Válaszotokat előre is köszsönöm :)

    Üdv!

    Elég nagy a pangás ebben a fórumban, szóval nézd el nekem , hogy csak most válaszolok. Szóval előbb a hivatalos oldalról le kell tölteni a legfrissebb verziót (ami jelenleg a 3.0.1-es). Ezt feltelepíted, és elindítod az IDLE nevű környezetet. Innentől kezdve már írogathatod is a programokat. A mikéntről olvashatsz magyar nyelvű könyvet, amiben az alapoktól indulnak.

    Amúgy leginkább programot, vagy játékot készíthetsz vele. Honlapot is lehet, csak ahhoz kevés lesz, más nyelvek is kellenek mellé (sőt, inkább azok).

    Szerintem a futtatókörnyezettel meg az ajánlott könyvvel el lehet sajátítani az alapokat, onnan meg már tudni fogod, merre szeretnél tovább menni.

  • zotya7895
    csendes tag

    Sziasztok!
    Én is most ismerkedek a python nyelvel és nagyon kezdő vagyok ugyanis még a program sincs meg amivel tudnák alkotni :D , és abban a programban konkréten mit lehet csinálni? Játékot vagy programot vagy weboldalt lehet vele szerkeszteni?
    És hol kezdjem a tanulást? valami könyvet tudtok ajánlani? én ugyanis már néztem az előttem hozzászóltakat és ott is volt egy pár könyv meg doksik meg minden, de ezeket rágjam át? :) és utána kezdjek programozni? Ti hol kezdtétek? Könyvet olvastatok először és utána programoztatok? Válaszotokat előre is köszsönöm :)

  • zotya7895
    csendes tag

    Sziasztok!
    Én is most ismerkedek a python nyelvel és nagyon kezdő vagyok ugyanis még a program sincs meg amivel tudnák szerkeszteni a nyelvet, és abban a programban konkréten mit lehet csinálni? Játékot vagy programot vagy weboldalt lehet vele szerkeszteni?
    És hol kezdjem a tanulást? valami könyvet tudtok ajánlani? én ugyanis már nézztem az előttem hozzászóltakat és ott is volt egy pár könyv meg doksik meg minden de ezeket rágjam át? :) és utána kezdjek programozni? Ti hol kezdtétek? könyvet olvastatok először és utána programoztatok? Remélem minden kérdésre választ fogok majd kapni :)

  • cousin333
    addikt

    Na, akkor kissé pörgessük meg a topikok...

    Szóval, lenne egy feladatom. Adott egy szöveges fájl az alábbi felépítéssel:

    a b c d
    1 2 3 4
    5 6 7 8
    9 8 7 6
    5 4 3 2

    Tehát van egy x hosszúságú fejléc, és alatta soronként azonos számú szám. A fejléc az első sor, a számsorokból száma tízezres nagyságrendű (egy sorban kb. 10 elem található, de ez az érték - elvileg - minden sornál fix). A sorok elemei között tabulátor karakter található.

    A feladat egy olyan csv fájl létrehozása lenne, ami az említett fejléccel kezdődik, megadott számú sort átlagol és kiírja az eredményt az új fájl egyetlen sorába. Tehát, a fenti példánál maradva a kiírt fájl ez lenne (ha a megadott sorszám mondjuk 2):

    a b c d
    3 4 5 6
    7 6 5 4

    Mert a 3 az az eredeti fájl első két sora első elemeinek az átlaga: (1+5)/2, a 4 az a másodiké: (2+6)/2 és így tovább, remélem érthető. Ha a számsorok száma nem egésszámú többszöröse az átlagolás számának, akkor a kimaradó elemek nyugodtan elhagyhatóak. A programnak nem kell hülyebiztosnak lennie, tehát nem kellenek bele mindenféle extra ellenőrzések, kivételkezelések, meg ilyesmik.

    A programnak a feldolgozandó fájl nevét, és az osztások számát (hogy hány soronként átlagoljon) kellene bekérnie a futás során. A kimeneti fájl neve nyugodtan lehet a bemeneti fájl módosított verziója.

    A cél az lenne, hogy egy minél egyszerűbb, minél hatékonyabb és minél "Pythonosabb" kód szülessen.

    +1 feladat: Képes legyen felismerni, ha egy számsor esetleg a kelleténél kevesebb elemből áll, és kijelezze a sor számát, ahol ez először előfordul.

    Ennyire ne tépjétek magatokat... :D

    Amúgy alant látható a saját megoldásom, hátha az meghozza a vitakedvet...

    fileName, cnt = input('Fajl neve? '), int(input('Oszto? '))

    with open('d:\\' + fileName + '.txt', 'r') as iF:
    allData = [line.strip('\n').split('\t')[1:] for line in iF]
    header, datas = allData[0], [[float(x) for x in elem] for elem in allData[1:]]

    with open('d:\\' + fileName + '_avg.csv', 'w') as oF:
    oF.write(';'.join(header)+'\n')

    for x in range(len(datas)//cnt):
    s = datas[x*cnt:(x+1)*cnt]
    oF.write(';'.join([str(round(sum([elem[i] for elem in s])/len(s))) for i in range(len(header))])+'\n')

  • cousin333
    addikt

    Na, akkor kissé pörgessük meg a topikok...

    Szóval, lenne egy feladatom. Adott egy szöveges fájl az alábbi felépítéssel:

    a b c d
    1 2 3 4
    5 6 7 8
    9 8 7 6
    5 4 3 2

    Tehát van egy x hosszúságú fejléc, és alatta soronként azonos számú szám. A fejléc az első sor, a számsorokból száma tízezres nagyságrendű (egy sorban kb. 10 elem található, de ez az érték - elvileg - minden sornál fix). A sorok elemei között tabulátor karakter található.

    A feladat egy olyan csv fájl létrehozása lenne, ami az említett fejléccel kezdődik, megadott számú sort átlagol és kiírja az eredményt az új fájl egyetlen sorába. Tehát, a fenti példánál maradva a kiírt fájl ez lenne (ha a megadott sorszám mondjuk 2):

    a b c d
    3 4 5 6
    7 6 5 4

    Mert a 3 az az eredeti fájl első két sora első elemeinek az átlaga: (1+5)/2, a 4 az a másodiké: (2+6)/2 és így tovább, remélem érthető. Ha a számsorok száma nem egésszámú többszöröse az átlagolás számának, akkor a kimaradó elemek nyugodtan elhagyhatóak. A programnak nem kell hülyebiztosnak lennie, tehát nem kellenek bele mindenféle extra ellenőrzések, kivételkezelések, meg ilyesmik.

    A programnak a feldolgozandó fájl nevét, és az osztások számát (hogy hány soronként átlagoljon) kellene bekérnie a futás során. A kimeneti fájl neve nyugodtan lehet a bemeneti fájl módosított verziója.

    A cél az lenne, hogy egy minél egyszerűbb, minél hatékonyabb és minél "Pythonosabb" kód szülessen.

    +1 feladat: Képes legyen felismerni, ha egy számsor esetleg a kelleténél kevesebb elemből áll, és kijelezze a sor számát, ahol ez először előfordul.

  • D.R.O.
    tag

    kösz a választ,
    de közben utánanéztem angol fórumokon is a problémámnak,
    és ott kiderült, hogy a python interpreterjében windows alatt nem lehet futtatni a scriptet...
    hanem csak parancssorból.

    valahogy ez eddig nekem nem volt egyértelmű....

    Ha az a baj hogy rákattintsz és egyből eltűnik, akkor tegyél a végére egy inputot, amely egy billentyű leütésre vár. Akkor nem fog eltűnni egyből, csak amikor már jól megnézted mit csinált a programod.

  • esetleg:
    python fájlneve
    python.exe elérési úttal fájlneve

    Vagy használd az IDLE-t, és onnan nyisd meg a py fájlt, majd F5.

    kösz a választ,
    de közben utánanéztem angol fórumokon is a problémámnak,
    és ott kiderült, hogy a python interpreterjében windows alatt nem lehet futtatni a scriptet...
    hanem csak parancssorból.

    valahogy ez eddig nekem nem volt egyértelmű....

  • cousin333
    addikt

    Helló,

    windows XP alá tettem fel a Python 2.6.1-os verziót.

    A .py végződésű programokat dupla kattintással le tudom futtatni,
    de mivel rögtön bezárul, ezzel nem sokra megyek.

    Viszont a python.exe futtatásakor nem tudom, mit kellene beírni, hogy onnan futtassam,
    már sok mindent próbáltam amit a neten írtak, de mindenre hibát jelez.

    Pl. ezeket próbáltam:

    python fájlneve.py

    teljes elérési útvonal python fájlneve.py

    teljes elérési útvonal mindenféle változatban python fájlneve.py

    fájlneve.py

    Többnyire sytax errort ír ki.

    Van valakinek ötlete, hogy mi baja lehet?

    Már átírtam a Path változót, a registryt, több nem jut az eszembe, hogy mit kéne.
    A megnyitandó fájlt betettem a python főkönyvtárába, úgy próbáltam.

    Előre is kösz a választ:

    nick

    esetleg:
    python fájlneve
    python.exe elérési úttal fájlneve

    Vagy használd az IDLE-t, és onnan nyisd meg a py fájlt, majd F5.

  • cousin333
    addikt

    üdv

    most ismerkedek a nyelvvel, futtatni is csak nagy nehezen sikerült (persze a legalapvetőbb dolog soha sincs leírva:) ), megtaláltam ugyan hogyan kellene de nem ment, de mindegy, mert máshogy megoldottam

    szóval, van amikor azt írja ki, hogy: syntax error: unexpected end of file
    a másik pedig, mikor erre írja ki a hibát: elif n >= 3 unexpected token stb...
    esetlegesen mik lehetnek a hibalehetőségek, nekem nem sikerült eddig még rájönnöm:(
    előre is köszönöm

    Forráskód esetleg?

    Ha telepítetted a Win-es verziót, akkor az IDLE környezet jól használható. Vagy írod soronként, és lefuttatja, vagy írsz egy külön .py fájlt, és akkor nem kell mindig mindent újra megírni. Futtatni meg F5-el tudod.

  • Helló,

    windows XP alá tettem fel a Python 2.6.1-os verziót.

    A .py végződésű programokat dupla kattintással le tudom futtatni,
    de mivel rögtön bezárul, ezzel nem sokra megyek.

    Viszont a python.exe futtatásakor nem tudom, mit kellene beírni, hogy onnan futtassam,
    már sok mindent próbáltam amit a neten írtak, de mindenre hibát jelez.

    Pl. ezeket próbáltam:

    python fájlneve.py

    teljes elérési útvonal python fájlneve.py

    teljes elérési útvonal mindenféle változatban python fájlneve.py

    fájlneve.py

    Többnyire sytax errort ír ki.

    Van valakinek ötlete, hogy mi baja lehet?

    Már átírtam a Path változót, a registryt, több nem jut az eszembe, hogy mit kéne.
    A megnyitandó fájlt betettem a python főkönyvtárába, úgy próbáltam.

    Előre is kösz a választ:

    nick

  • raczger
    őstag

    üdv

    most ismerkedek a nyelvvel, futtatni is csak nagy nehezen sikerült (persze a legalapvetőbb dolog soha sincs leírva:) ), megtaláltam ugyan hogyan kellene de nem ment, de mindegy, mert máshogy megoldottam

    szóval, van amikor azt írja ki, hogy: syntax error: unexpected end of file
    a másik pedig, mikor erre írja ki a hibát: elif n >= 3 unexpected token stb...
    esetlegesen mik lehetnek a hibalehetőségek, nekem nem sikerült eddig még rájönnöm:(
    előre is köszönöm

  • cousin333
    addikt

    No, a megoldás úgy tűnik az enumerate() függvény használata, ami tuple-ket ad vissza. Tehát pl. két mód a használatára (az előbbi példánál maradva):

    1.

    for i,elem in enumerate(gyumolcs):
    print elem # ez lesz a gyümölcsnév
    print i # ez lesz az aktuális sorszám

    2.

    for elem in enumerate(gyumolcs):
    print elem[1] # ez lesz a gyümölcsnév
    print elem[0] # ez lesz az aktuális sorszám

    Jó volt veletek beszélgetni :)

  • cousin333
    addikt

    No, akkor elindítanám a felemelkedés útján ezt rendkívül aktív topikot... :) Tehát a kérdésem:

    Van egy listám, mondjuk:

    gyumolcs = ['alma', 'körte', 'banán', 'szilva', 'barack']

    Ezen mennék végig egy for ciklussal:

    for elem in gyumolcs:
    print elem

    Namost, hogyan lehetne (menet közben) megmondani, hogy éppen hanyadik elemnél járok a listában? Az, hogy felveszek mondjuk egy count változót, amit folyamatosan inkrementálgatok, az triviális. Még esetleg az is belefér, ha az index() - gyumolcs.index('banán') - metódussal lekérem a sorszámot, de ezzel baj van, ha több 'banán' is szerepel a listában... Nincs erre valamilyen célszerűbb, egyszerűbb módszer? Lehetne persze így is:

    for i in range(len(gyumolcs)):
    print gyumolcs[i]

    Ebben az esetben az i lesz a sorszám, de ez a megoldás jóval kevésbé elegáns, nem vall a Pythonra. :)

    No, a megoldás úgy tűnik az enumerate() függvény használata, ami tuple-ket ad vissza. Tehát pl. két mód a használatára (az előbbi példánál maradva):

    1.

    for i,elem in enumerate(gyumolcs):
    print elem # ez lesz a gyümölcsnév
    print i # ez lesz az aktuális sorszám

    2.

    for elem in enumerate(gyumolcs):
    print elem[1] # ez lesz a gyümölcsnév
    print elem[0] # ez lesz az aktuális sorszám

  • cousin333
    addikt

    No, akkor elindítanám a felemelkedés útján ezt rendkívül aktív topikot... :) Tehát a kérdésem:

    Van egy listám, mondjuk:

    gyumolcs = ['alma', 'körte', 'banán', 'szilva', 'barack']

    Ezen mennék végig egy for ciklussal:

    for elem in gyumolcs:
    print elem

    Namost, hogyan lehetne (menet közben) megmondani, hogy éppen hanyadik elemnél járok a listában? Az, hogy felveszek mondjuk egy count változót, amit folyamatosan inkrementálgatok, az triviális. Még esetleg az is belefér, ha az index() - gyumolcs.index('banán') - metódussal lekérem a sorszámot, de ezzel baj van, ha több 'banán' is szerepel a listában... Nincs erre valamilyen célszerűbb, egyszerűbb módszer? Lehetne persze így is:

    for i in range(len(gyumolcs)):
    print gyumolcs[i]

    Ebben az esetben az i lesz a sorszám, de ez a megoldás jóval kevésbé elegáns, nem vall a Pythonra. :)

  • D.R.O.
    tag

    Hali!

    Elnézést h bepofátlankodom, de tolok egy linket még a témához.

    [link]

    Mindenféle jóság.

  • Figyelemfelkeltőnek megemlítem, mire használtam Pythont régebben. A PyWin32 egy COM-os interfészt ad, így néhány soros (tényleg kb 10 sor) kóddal olvashatunk Excel fájlokat. Hasznos lehet, ha többszázat kell feldolgozni...

  • cousin333
    addikt

    Remek, hogy megnyílt ez a topik, már én is gondolkoztam azon, hogy kellene egy. Viszont most éppen se kérdésem, se kérdés... :D

    Kissé mondjuk meglep, hogy ilyen gyér itt a forgalom. Ami a Python nyelvet illeti, mindenkinek csak ajánlani tudom. Nyilván nem való mindenre, de sok mindent képes egyszerűen, hatékonyan és logikusan megoldani. Ami "érdekessége", hogy használható szkript módban is, tehát egy sor, egy parancs, ami azonnal végre is hajtódik (kivéve persze az if, for, while és egyéb nyalánkságokat), vagy éppen írhatunk egy komplett programot sima Wordpad-ben is.

    Amire felhívnám a figyelmet! A 2.5.2-es verzió szép és jó, kellően kiforrott. De 1-2 hónapon belül elkészül a 3-as változat (más néven Python 3000), ami visszafelé nem kompatibilis módon jópár dolgot megváltoztat. Szóval aki most kezdené el tanulni, az szerintem inkább az utóbbival tegye, hogy szokja... Pillanatnyilag a beta 3 érhető el Linux, és a beta 2 Windows alá. Néhány változás a 2.5.2-höz képest: [link]

  • Végigcsináltam a könyv első 30 oldalát meg kipróbálgattam az ablakos dolgokat a vége felé. Szimpatikus dolog. Sok dolgot lényegesen egyszerűbb elvégezni, mind C vagy C++ba. Felépítésre első ránézésre kicsit elüt a "népszerű" nyelvektől.

    Körülnéztem a gépen és találtam hoszonvalamennyi könyvet. Van játék programozás, szerver-kliens programozás, [link]-en keresztül webes fejlesztés, adatbázis kezelés stb...

    Szóval a lehetőségek határa majdnem végtelen! :D

    Webprogramozáshoz a TorboGears mellett ott vannak még a Django, Zope és Pylons keretrendszerek.

  • mm00
    aktív tag

    Üdvözlet mindenkinek!
    A témát azért nyitottam hogy a címben megnevezett programozási nyelvet kitárgyaljuk, illetve segítséget nyújtsunk azoknak akik kérnek (első vagyok e sorban :D ).

    A Python egy magas szintű objektum-orientált programozási nyelv, ami némileg hasonlít egyes szkriptnyelvekhez (Perlhez, Scheme-hez, TCL--hez), illetve más nyelvekhez is (Java, C). Fő előnye hogy "könnyen" (khm :U ) tanulható, komoly alkalmazások fejlesztésére is alkalmazható, sőt rendkívül hatékony.

    Főbb előnyei:
    hordozható, integrálható, viszonylag egyszerű, nagyteljesítményű, dinamikus, s nyílt a forráskódja.

    Python-ról magyarul:
    [Wikipédia]
    [Python.hu]
    [Python oktatás]
    -
    [Python 2.5.2 Windows operációs rendszerre]

    Hogyan kezdjünk hozzá a tanulásához?
    Nehéz lenne okosat mondanom, ugyanis én se vagyok a programozás nagyöregje, DE úgy látom jó úton haladok. Gérard Swinnen : Tanuljunk meg programozni Python nyelven c. könyvét nagyon ajánlom, ami ingyenesen letölthető a python.free-h.net oldalról. E mellé pedig érdemes beszerezni Brad Dayley: Python zsebköny c. csodáját, ami sok hasznos Python programrészletet foglal magában.

    Végigcsináltam a könyv első 30 oldalát meg kipróbálgattam az ablakos dolgokat a vége felé. Szimpatikus dolog. Sok dolgot lényegesen egyszerűbb elvégezni, mind C vagy C++ba. Felépítésre első ránézésre kicsit elüt a "népszerű" nyelvektől.

    Körülnéztem a gépen és találtam hoszonvalamennyi könyvet. Van játék programozás, szerver-kliens programozás, [link]-en keresztül webes fejlesztés, adatbázis kezelés stb...

    Szóval a lehetőségek határa majdnem végtelen! :D

  • Xelo
    addikt

    Üdvözlet mindenkinek!
    A témát azért nyitottam hogy a címben megnevezett programozási nyelvet kitárgyaljuk, illetve segítséget nyújtsunk azoknak akik kérnek (első vagyok e sorban :D ).

    A Python egy magas szintű objektum-orientált programozási nyelv, ami némileg hasonlít egyes szkriptnyelvekhez (Perlhez, Scheme-hez, TCL--hez), illetve más nyelvekhez is (Java, C). Fő előnye hogy "könnyen" (khm :U ) tanulható, komoly alkalmazások fejlesztésére is alkalmazható, sőt rendkívül hatékony.

    Főbb előnyei:
    hordozható, integrálható, viszonylag egyszerű, nagyteljesítményű, dinamikus, s nyílt a forráskódja.

    Python-ról magyarul:
    [Wikipédia]
    [Python.hu]
    [Python oktatás]
    -
    [Python 2.5.2 Windows operációs rendszerre]

    Hogyan kezdjünk hozzá a tanulásához?
    Nehéz lenne okosat mondanom, ugyanis én se vagyok a programozás nagyöregje, DE úgy látom jó úton haladok. Gérard Swinnen : Tanuljunk meg programozni Python nyelven c. könyvét nagyon ajánlom, ami ingyenesen letölthető a python.free-h.net oldalról. E mellé pedig érdemes beszerezni Brad Dayley: Python zsebköny c. csodáját, ami sok hasznos Python programrészletet foglal magában.

    [ Módosította: Viktor0610 ]

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

Hirdetés