Python programozás - Szoftverfejlesztés fórum

üzenetek

hozzászólások


Xelo
(addikt)
Blog

Ü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 ]


mm00
(aktív tag)

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


vipisti
(tag)
Blog

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


cousin333
(addikt)
Blog

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]

[ Szerkesztve ]


vipisti
(tag)
Blog

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


vipisti
(tag)
Blog

Még 1-2 forrás a Pylons keretrendszerhez:
- WSGI
- Pylons Cookbook
- The Pylons Book


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.


cousin333
(addikt)
Blog

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. :)

[ Szerkesztve ]


cousin333
(addikt)
Blog

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

[ Szerkesztve ]


cousin333
(addikt)
Blog

Jó volt veletek beszélgetni :)


D.R.O.
(tag)

ÉÉésss ittvan a 3-as verzió. Szabadjára engedték.


raczger
(őstag)
Blog

ü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


nickwearby
(csendes tag)

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


cousin333
(addikt)
Blog

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.


cousin333
(addikt)
Blog

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.


nickwearby
(csendes 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ű....


D.R.O.
(tag)

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.


cousin333
(addikt)
Blog

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.

[ Szerkesztve ]


cousin333
(addikt)
Blog

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')

[ Szerkesztve ]


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 :)

üzenetek