81
Python programozási nyelv
  • Csomalac
    #81
    Már rá is jöttem, fél év sem kellett hozzá. :). Megint a gépnek van igaza, pontosan az van, amit kiírt.
    A "filename =" kezdetű sor vége helyesen valami ilyesmi: (db, filestamp)
  • TuxSkajvok
    #80
    Sziasztok, a segítségeteket szeretném kérni, h mi a nem jó ebben a kódban?

    #!/usr/bin/python
    import MySQLdb
    import time
    import os

    db = MySQLdb.connect(host='ip',
    user='user',
    passwd='password',
    db='database')

    cur = db.cursor()

    filestamp = time.strftime('%Y-%m-%d')

    filename = '/media/MICROSD/mysql/backup/database_%s-%s.sql" % (filestamp)

    cur.execute("mysqldump | sql %s.sql" % (filename))
    os.popen("mysqldump -u %s -p%s -h %s -e --opt -c %s gzip -c > %s.gz" % (username, password, hostname, database, filename)

    Elvileg egy adatbázisról, adatbázisneve_dátum.slq/gz néven kellene mentést csinálnia egy pendrive-ra, de a kövi problémát kapom:
    not enugh arguments for format string

    Hogy kellene átírni, h működőképes is legyen a dolog?
  • slyder81
    #79
    Szia Mindenki!

    Még kezdő vagyok a pythonban. Nagyon tettszik, tényleg nagyon jó kis nyelv.
    Olyan problémába ütkoztem, hogy egy képet szeretnék betölteni, de a kép nevét egy listábál kell megkapnia a skriptnek.

    self.kep1 = Canvas(self.can, width=95, height=150,bg='white')
    photo = PhotoImage(file="%s.gif" % (self.keplista[0]))
    item = self.kep1.create_image(42.5,75, image =photo)
    self.kep1.grid(row=1, column=1,rowspan=1,padx =1, pady =1)

    A 'kep1' vészonra szeretném rakni a képet. A 'képlista' a képek nevét tárolja.A kép neve két reszbol all(x y.gif).A képek is pont ilyen néven vanak mentve.Ha futtatom ezt a hibát kapom:

    Exception in Tkinter callback
    Traceback (most recent call last):
    File "/usr/lib64/python2.7/lib-tk/Tkinter.py", line 1470, in __call__
    return self.func(*args)
    File "/home/slyder/Dokumentumok/keret.py", line 58, in rajz
    photo = PhotoImage(file="%s.gif" % (self.keplista[0]))
    File "/usr/lib64/python2.7/lib-tk/Tkinter.py", line 3306, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
    File "/usr/lib64/python2.7/lib-tk/Tkinter.py", line 3262, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
    TclError: couldn't recognize data in image file "x y.gif"

    Mit csinálhatok rosszul? Van valakinek valami ötlete, esetleg más megoldása??
    A segítségeteket előre is köszönöm.
  • Dodo55
    #78
    Tegnap délelőtt hirtelen felindulásból "megtanultam" Python 2-ben programozni (végigolvastam a hivatalos oldalon lévő tutorialt), gondoltam most rákeresek van -e itt Python topic, erre látom 6 éve miket irogattam ide :D

    Csak hogy lássátok mennyit változik az ember ennyi idő alatt:
    -Írtam, hogy az OOP nem a kedvencem, hát manapság már el sem tudnám nélküle képzeni az életem :) (Igen, pontosan a PHP5 vitt rá, amiben az elmúlt 1-2 évben már a legkisebb túlzás nélkül is profinak tartom magam)
    -A C/C++-al való küzdelmem azért még mindig tart, elméleti szinten már nagyon tudom, de még mindig nem sok értelmes dologra használtam őket eddig, talán mert minden célra volt kéznél eddig könnyebben használható eszköz
    -C#-ot kb 1. éve tanultam meg úgy 1 hét alatt, azóta is az egyik kedvencem a PHP mellett, főleg hogy most felfedeztem azt is, hogy Mono-val egy az egyben futtathatók Linux alatt MSVS-el Windowsra compileolt CIL exe-k :) Ellenben a majdnem azonos Java-ért valamiért nem vagyok annyira oda, csak Android programozáshoz használom ha nagyon muszáj.
    -A JavaScript-el is sikerült egész szépen megbarátkoznom eleinte főleg a nagyszerű jQuery-nek köszönhetően (aminek a használata egy idő után rávitt a csupasz JS alaposabb megtanulására is)
    -A BASIC-et azóta eléggé hanyagolom, nagyon sokat felejtettem is

    Egyébként ha már Python topic, akkor azért elmondom mik így az első benyomásaim:
    -Kurvára tetszik a flexibilitása
    -Tényleg jól olvasható sziktaktikája van
    -Amennyire eddig tanulmányoztam, az alapján az API-jai is nagyon tetszenek, elég széles kört lefednek és könnyen használhatóak
    -Szintén tetszik a platformfüggetlensége

    Negatívumot egyelőre nem tudok mondani hirtelen, de ezt azért bőven be lehet annak tudni, hogy még nem álltam vele neki semmi komolyabb dolognak.
  • franko2
    #77
    Sziasztok, nem tudjátok megoldható valahogy az hogy ha egy windows ablakos programot csinálunk akkor ne jelenjen meg a console ablak?
  • abadus
    #76
    Tisztelt Programozók!

    Python projekt munkára keresünk programozót.
    A munka az alábbi oldalon található:

    www.abadus.hu/Project/Python_programozot_keresek_kisebb_projektmunkara

    Üdvözlettel

    Az Abadus csapata
  • Ryleh
    #75
    Szerintem eleg figyelemremelto :

    PyGTK tutor movie
  • Ryleh
    #74
    Mar konyvtarakban is:))

    Python 3 magyar konyv
  • franko2
    #73
    Egy kis segitség kéne szeretnék egy szinpalettát kirajzolni de nem tudom a szin értékét hogyan lehetne növeni. Tkintert használnám csak, találtam egy kódot ahol hexadecimális számban van a szin igy rendes rgb paletta elérhető, itt a kód
    canvas.create_line(0, 300, 150, 150, width=10, fill="#5050F0")
    a vonal pozicióját tudom növelni a változó értékének a sima növelésével valami ilyesmit szeretnék a szinnel is de mivel az nem egy sima tizes számrendszerbeli szám hanem hexadecimális fogalmam sincs hogy tudnám az értékét folyamatosan emelni.
  • fütyimi
    #72
    köszönöm szépen a segítséget
  • kl24h
    #71
    from numpy import *

    def PRIM(n):
    p = [2];
    for i in range(2,n+1):
    j = 2;
    while j<=int(sqrt(i)):
    if mod(i,j)==0:
    break;
    else:
    j = j+1;
    if mod(i,j)!=0:
    p.append(i);
    print p

    # pl.: PRIM(100)
  • fütyimi
    #70
    sziasztok
    lenne egy kérdésem az a feladat h n-ig ki kéne iratni listába a prímeket és van rá egy tippem h mi lenne az de vmiért nem akar működni:
    def prim ( n ) :
    if n < 2 :
    return [ ]
    else L = range ( 2 , int (n) )
    p = [ ]
    while L:
    uj_prim = L [ 0 ]
    p. append ( uj_prim )
    for i in L [ 1 : ] :
    if i % uj_prim == 0 :
    L. remove ( i )
    L. remove ( L [ 0 ] )
    return p

    előre is köszönöm a segítséget
  • Malakai
    #69
    Igazából mindegy melyik, csak ne keverd a kettőt.
    Ami még hasznos, hogy sok IDE-ben be lehet állítani, hogy egy tab milyen hosszú legyen és azt is, hogy tab karakter helyett annyi space-t rögzítsen. Én is ezt használom pl, így bármikor egy másik gépet, másik IDE-ben, márhol kerül megnyitásra a file, nem fognak alrébbcsúszkálni a sorok, ami Pythonban különösen fontos.
  • mumpic
    #68
    Több helyen beleakadam abba a figyelmeztetésbe, hogy Tab helyett szóközökkel indentáljak, mert különböző editorok különböző módon kezelik a Tabot, ezért ronda lehet a kód. Szintaktiailag helyes akkor is ha ronda, nem? Más indoka van annak hogy leszokjak a Tabról?
  • mumpic
    #67
    Köszi, letöltöttem mindkettőt. A másodikba néztem bele, eddigi tudásom alapján annyit vettem észre hogy a print és az input használata megváltozott, de gondolom többről van szó.:)
    A másikhoz álmos vagyok, majd holnap.
  • Malakai
    #66
    Ha angol nem gond, akkor még pár ingyenes Python könyv esetleg, itt van két kimondottan Python 3-hoz írt/átírt:
    Dive Into Python Nekem a legszimpatikusabb alapokkal foglalkozó Py könyv.
    Byte of Python
  • mumpic
    #65
    Köszi a választ!

    Ezt a könyvet követem, ebben a legfrissebb verzió a 2.3, de akkor majd nézegetem a python.org doksijait, elég sok van.
  • Malakai
    #64
    Amit idéztél ott arra gondolhatott, hogy még két év míg felfut a Python 3, hogy addig nem nagyon fognak arra fejleszteni emberek, nem pedig a tanulási fázisra.

    Ami a lényeg, hogy visszafele nem kompatibilis a Python 3, szóval még ma is nagyon sok az olyan library/framework, amit nem portoltak 3.x-re. És sajnos ez főleg a nagyokat érinti.

    Viszont tanulás szempontjából kevésbké lényeges, valójában a nyelv sokat nem változott, inkább csak "kitakarították", egyszerüsítettek a legtöbb helyen. A 2.x-et meg úgyis együtt fogod tanulni a 3-assal, Python 3 könyv sincs szerintem még, amiben ne lennének ott a változások.

    Tehát tanulni akár a kettőt együtt simán, használni viszont már helyzetfüggő, hogy kell-e a csak 2.x-et támogató library/framework.

    Ha olvasgatsz 2 vs 3 ügyben sokfele írnak a sebességről és még a 3.0-ról rosszakat, de tudni érdemes, hogy mint új rendszer az alverziók elég sokat gyorsítanak, a 3.1 legtöbb esetben kb ugyanazt a sebességet hozza, mint a 2.5-6.
  • mumpic
    #63
    Tegnap keztem el nézegetni a python nyelvet, az lenne a kérdésem, hogy a 2.x és 3.x közül melyiket érdemes tanulni?

    Ezt találtam:

    "Q. I want to learn Python. Should I learn Python 2.6 or Python 3.0?

    A. Definitely learn Python 2.x (the latest version out is 2.5). I expect it'll be two years before you'll need to learn Python 3.0, and the differences aren't that great from a beginner's perspective: most of what you'll learn about 2.x will still hold about 3.0."

    Nem értem mit akar ezzel a két évvel Guido van Rossum. A Python 3.0-hoz képest két év? Vagy a python 2.x tanulásának elkezdése után két év? 2007-es a faq.
  • Human55
    #62
    Nagyon köszönöm válaszod és a jó tippet.
  • Evin
    #61
    Csak ha nem kapnál érdemi választ: www.ebookz.hu
    azt hiszem a regisztráció ingyenes még. Itt vannak Python segédanyagok ha jól emlékszem.
  • Human55
    #60
    Üdv!

    Én abban szeretnék segítséget kérni, hogy a pyhton nevű programmal egy olyan scriptet szeretnék írni a blenderhez ami képes felismerni és kiírni a képernyőre az éppen lenyomott billentyűt (vagy billentyű kombinációkat)
    tudásom a python script íráshoz még nagyon minimális. Ezért kérném a segítséget hogy hogyan, és hol kezdjem. A a választ és az esetleges segítséget előre is köszönöm!!
  • Kmarha
    #59
    nem kéne semmi bonyolult.. eddig simán csak a x=linspace... y=sin(x) és plot(x,y) parancsokat használtuk
  • Kmarha
    #58
    hja valaki tudna adni egy gyors segitséget? :)
  • Kmarha
    #57
    komolyan, ne röhögjetek ki, egy tök egyszerü kérdésem van csak

    egyszerű beadandónk van csak, mindent meg tudok benne csinálni, kivéve 2 pont összekötését egyenessel (plottal ábrázolva ugyebár, meg van a 2 pontom, és ki akarom rajzolni az ezt összekötő egyenest)

    sqrt, sin stb függvényeket lazán rajzolok, de az egyenes egyenletével bárhogy is bajlodok nem azt csinálja amit akarok :D (mondjuk már gondolkodni is fáradt vagyok)

  • Palinko
    #56
    igen ha elindítom az interpreterrel megy is, csak a py2exe nem tudja rendesen lefordítani. saját gépemen nem fut a lefordított exe, más gépén ahol még a python interpreter sincs ott még véletlenül sem futna gondolom. na lényegtelen muszáj lesz más nyelvvel megoldanom :) azért köszi a segítséget.
  • Evin
    #55
    Akkor indítsd DOS ablakból. Ha exe-t csinálsz belőle, attól ugyanúgy kell működnie, mint magában, tehát ablakot nyit és csuk.
    Annál ideálisabb megoldás nincs, minthogy Python fel, és csak futtatod.
  • Palinko
    #54
    én ha elindítom ezzel a módszerrel felugrik egy dos ablak és eltűnik. py2exevel lefordítom, egyszer lefut, ha becsukom a cmd-t aztán próbálom megint lefuttatni már nyavajog hogy hiányzik neki valami :( kéne olyan megoldás, hogy lefordítom exere, hogy másik gépen is használható legyen ahol nincs interpreter és a többi kellék.
  • Evin
    #53
    Nekem vannak mások által írt python programjaim, de azokat nem kell generálgatni. Fent van a Python maga, és csak elindítom a py kiterjesztésű fájlt (amik sima txt-k), ennyi.
  • Palinko
    #52
    van egy kis program, amit én írtam ma, sajnos lehet nem a legprofibban, de azt hiszem rendben kell legyen (bár már nagyon régen foglalkoztam pythonnal). segítene valaki átalakítani hogy fusson is? mert netbeansben hiába futtatom le f6 al, ha nem kéri be az adatokat, ezzel próbáltam bekérni, én úgy tudom helyes:
    szazalek = input (' itt áll a szöveg: ')

    vagy ha valaki tud segíteni netbeansel hogyan oldhatom meg hogy egy kis dos ablakban elfusson a progim már nagyon hálás lennék :)
  • ZilogR
    #51
    ...hoppá, elfelejtettem ide írni! Utánanézek a karakter előtér és háttérszíneknek! (Ez nem is buta dolog - anno Pascal-ban nem akartam grafikus módot használni, de kellett egy számítás végeredményéhez színes ábra. Úgy oldottam meg, h a 16 színű palettából "sakktábla" karakterek előtér (azaz karakter) és háttérszíneit ügyesen összeválogatva szép átmenetet kaptam az ibolyától a vörösig. A "sakktábla" karakter pedig annyira finom rajzolatú, hogy egy vörös háttéren sárga karakter narancsnak tűnik. Favágó módszer, de műxik!)
  • mcsaba
    #50
    Sziasztok, pythonba lehet valahogy szines karaktereket használni szöveges módba? Ha valaki tudja kérem egy egyszerü példával mutassa be, érdekel Linuxos és Windowsos megoldás is, de ha lehet olyan megoldás érdekelne ne keljen semmi python kiegészítőt vagy modult instalálni, mert nem saját gépen kéne menjen, előre is köszönöm.
  • mcsaba
    #49
    Köszi a segítséged, az általad leirtak és egy magyar leirás (a példát angolból vettem) alapján rájöttem mi volt a hiba:
    >>> a=1
    >>> while a<10:
    ... a=a+1
    én idáig jutottam, a print részt a hibaüzi miatt már nem is irtam ki, az utolsó sort beljebb kellett volna irnom, de ezt az angol leirásból nem értettem, szóval ha beljebb irom így:
    >>> a=1
    >>> while a<10:
    ... a=a+1
    ... print a
    akkor már müködik, még nem tanultam programozást, és nem is gondoltam hogy ijesmi is számít, mégegyszer köszi a segítséget.
  • ZilogR
    #48
    jajj értem már! a képernyőn megjelenő kódrészleteknél, ahol "nincs >>> prompt", ott teszi ki a könyved a "... másodlagos" prompt-ot, míg a nyomtatott programlistáknál a sor behúzása jelöli ezt! Bízom benne, hogy jól értelmezem!

    Bocsánat mindenkitől, hogy nem bírtam ezt egy hozzászólásba sűríteni, de rohadt lassan esett le, miről van itt szó a "..."-al!
  • ZilogR
    #47
    No, persze, még egyszer elolvasva a kérdésedet, neked nem magával a while-lal van gondod, hanem a "sor behúzásával".
    A Python olyan nyelv, h egy utasítás kiértékelése során a logikailag össztartozó (egy blokkba tartozó) utasítások csoportját úgy jelöli, hogy a sor elejére azonos számú szóköz karaktert rak. Nálam a while utasításban szereplő kiíratás és értékadó utasítások egy blokkot alkotnak, ezért a sor elején mindegyiknek azonos szóközt kell rakni, h azokat a fordító a while-hoz tartozónak "érzékelje". Erről írtam azt, hogy ezt megteszi helyetted automatikusan a shell.
  • ZilogR
    #46
    Ezt a "hárompontos (...)" ún. másodlagos prompt-ot nekem nem sikerült kicsiholni a shell-ből.
    Ellenben működnie kell a while-nak. A szintaktikája
    while logikai kifejezés :
    ciklusmag

    pl.: (érdemes ki is iratni, h láss vmit)


    >>> a=1
    >>> while a<10:
    print a
    a=a+1


    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>>


    A ciklusmagot a 2.5.1-es fordító automatikusan beljebb szedi, a végén még egy entert üss és a fenti képet kapod.
  • mcsaba
    #45
    Sziasztok, nemrég kezdtem linuxot használni és gondoltam megismerkedek a pythonnal is mivel úgy hallottam hogy win és linux alatt is müködik és nagyon egyszerü, találtam a neten rengeteg oktató anyagot, de sajnos már az elején elakadtam egy egyszerü példánál hibaüzit kapok:

    Python 2.5.1 (r251:54863, Oct 5 2007, 13:36:32)
    [GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a=1
    >>> while a<10:
    ... a=a+1
    File "<stdin>", line 2
    a=a+1
    ^
    IndentationError: expected an indented block
    >>>
    mi lehet a gond? a leirás szerint mindent jól irtam be, és nekem is jónak és logikusnak tünk, mégis hibaüzenetet kapok, ha tudja valaki kérem segítsen.
  • Dj Faustus #44
    Olvass vissza
  • asdasddsadsa
    #43
    Tudna nekem ajánalni valaki python-hoz leírást vagy tutorialt vagy valamilyen oktató anyagot? Mert keresőben nem nagyon találtam. Köszi!
  • a_n_d_r_e_w
    #42
    inkább haljon le a topic, mint hogy beszélgessünk a_n_d_r_e_w-ról topic legyen belőle :)
    egyébként egyszerű 3D modellező, semmi ilyen elvont elméleti mahináció, azokat nagyon nem szeretem :)