-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
n0rbert0
senior tag
Elég érdekesen működik ez a windows tűzfal, mert amikor a raspberry-ben pingelem a gépet és a windowsban nincs kikapcsolva a tűzfal, akkor nem küldi az adatokat. Amint kikapcsolom a tűzfalat, akkor elindulnak a 0-ák és 1-esek.
Ez azért érdekes, mert a raspberry IP-címéről MINDENT engedélyezek...
És az ip biztosan jó, többször ellenőriztem.Sikerült megoldani, de nem úgy ahogy szerettem volna.
A számítógépen a kliens java-ban van írva a server a rasberry-n meg pythonban.
Így működik...
-
n0rbert0
senior tag
Elég érdekesen működik ez a windows tűzfal, mert amikor a raspberry-ben pingelem a gépet és a windowsban nincs kikapcsolva a tűzfal, akkor nem küldi az adatokat. Amint kikapcsolom a tűzfalat, akkor elindulnak a 0-ák és 1-esek.
Ez azért érdekes, mert a raspberry IP-címéről MINDENT engedélyezek...
És az ip biztosan jó, többször ellenőriztem. -
n0rbert0
senior tag
-
Siriusb
veterán
Ha valóban az a hiba, amit ír, akkor pedig nem jó az IP cím.
A tűzfaladon meg tudod nyitni a portot?
Pingelni tudod az eszközt? -
n0rbert0
senior tag
Persze.
Az IP tuti jó. A porttal lesz valami gondja csak nem tudok rájönni, hogy mi.
Viszont localhost-on megy. Valami olyasmit olvastam, hogy engedélyezni kellene az adott portot a routerben, de sajnos ezt nem tudom megoldani, mert nincs router... -
Siriusb
veterán
Sziasztok!
Egy üzenetet szeretnék fogadni raspberry-ről ezen az oldalon található, első módszerrel.
Amikor lefordítanám a programot, akkor az alábbi hibaüzenetet kapom:

Peer-to-peer van kötve a két eszköz, tehát közvetlenül ethernet kábellel van csatlakoztatva.
import socket
UDP_IP = "10.10.10.9"
UDP_PORT = 27050sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print("received message:", data)Valaki tudna segíteni?
Ugye az eredeti formázást megőrizted, nem úgy próbálod futtatni, ahogy be van másolva?
Ha igen, biztos jó IP címet adtál meg?
-
n0rbert0
senior tag
Sziasztok!
Egy üzenetet szeretnék fogadni raspberry-ről ezen az oldalon található, első módszerrel.
Amikor lefordítanám a programot, akkor az alábbi hibaüzenetet kapom:

Peer-to-peer van kötve a két eszköz, tehát közvetlenül ethernet kábellel van csatlakoztatva.
import socket
UDP_IP = "10.10.10.9"
UDP_PORT = 27050sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print("received message:", data)Valaki tudna segíteni?
-
Siriusb
veterán
Dictionary-ben lévő adatokból kell kellene egy adatbázisba beszúrást megvalósítani, az oszlopok neve a key, az értékek pedig a value.
Jelenleg úgy tudtam csak megoldani, hogy az előkészítéskor már beteszem az oszlopok neveit az sql statement-be. -
xxSanchez
őstag
-
sonar
addikt
Stackoverflow-n találtam ezt a példát:
qmarks = ', '.join('?' * len(myDict))
qry = "Insert Into Table (%s) Values (%s)" % (qmarks, qmarks)
cursor.execute(qry, myDict.keys() + myDict.values())Az utolsó sorban a paraméterek megadásánál lévő plusz jel kiveri a biztosítékot (unsupported operand). Ennek működnie kellene?
Mire jó az a dict key?
Bocs a lámaságért. Próbáltam googlizni, de nem teljesen világos számomra -
Siriusb
veterán
Stackoverflow-n találtam ezt a példát:
qmarks = ', '.join('?' * len(myDict))
qry = "Insert Into Table (%s) Values (%s)" % (qmarks, qmarks)
cursor.execute(qry, myDict.keys() + myDict.values())Az utolsó sorban a paraméterek megadásánál lévő plusz jel kiveri a biztosítékot (unsupported operand). Ennek működnie kellene?
-
sonar
addikt
Sziasztok!
Valakinek esetleg nincs tippje arra, hogy hogyan kéne ellenőriznem, hogy a mappában található-e .dll vagy akármilyen általam megadott kiterjesztésű fájl? Eddig eljutottam:
if not os.path.exists('teszt.dll'):
// nincs itt
else:
//itt vanItt ellenőrzi, hogy van-e teszt.dll és jól is működik a kód, csak nekem az kéne, hogy a kiterjesztést nézze. Tehát ha találna .dll kiterjesztésű fájlt a mappában akkor szólna.
Előre is köszi!
Nekem ez jutott eszembe:
import os
import glob
x=glob.glob('c:\\Python25\\*.py')
if len(x)>0:
print "van"
else:
print "nincs" -
xxSanchez
őstag
Sziasztok!
Valakinek esetleg nincs tippje arra, hogy hogyan kéne ellenőriznem, hogy a mappában található-e .dll vagy akármilyen általam megadott kiterjesztésű fájl? Eddig eljutottam:
if not os.path.exists('teszt.dll'):
// nincs itt
else:
//itt vanItt ellenőrzi, hogy van-e teszt.dll és jól is működik a kód, csak nekem az kéne, hogy a kiterjesztést nézze. Tehát ha találna .dll kiterjesztésű fájlt a mappában akkor szólna.
Előre is köszi!
-
Siriusb
veterán
Nem tudok rájönni, hogy a tix labelentry-nél hogy tudom konfigolni a subwidgeteket (label és entry). Valami ötlet, miként hivatkozhatok rájuk?
-
sonar
addikt
Sziasztok,
Meg lehet csinálni a non grafikus verzióban, hogy input mezőket, gombokat hozok létre?
Amolyan régi DOS féle programot? -
cousin333
addikt
Sziasztok,
Egy ideje már barátkozom a Pythonnal (2.5 - 2.7), mivel munkához kell.
Használtok IDE-t vagy valami debuggert?
Én többnyire csak Geany-t (ubuntu) illetve Notepad++(win) használok. De abban se vagyok biztos, hogy minden funkciót ismerek.
Ha esetleg valaki tud jobbat szivesen meghallgatnám. -
Siriusb
veterán
-
sonar
addikt
-
Siriusb
veterán
Sziasztok,
Egy ideje már barátkozom a Pythonnal (2.5 - 2.7), mivel munkához kell.
Használtok IDE-t vagy valami debuggert?
Én többnyire csak Geany-t (ubuntu) illetve Notepad++(win) használok. De abban se vagyok biztos, hogy minden funkciót ismerek.
Ha esetleg valaki tud jobbat szivesen meghallgatnám.Geany-t én is imádom, különösen amikor nem akarok megnyitni egy IDE-t.
Pythonhoz az Eclipse-t használom PyDev pluginnal. -
sonar
addikt
Sziasztok,
Egy ideje már barátkozom a Pythonnal (2.5 - 2.7), mivel munkához kell.
Használtok IDE-t vagy valami debuggert?
Én többnyire csak Geany-t (ubuntu) illetve Notepad++(win) használok. De abban se vagyok biztos, hogy minden funkciót ismerek.
Ha esetleg valaki tud jobbat szivesen meghallgatnám. -
Siriusb
veterán
Python 3-hoz milyen GUI-t ajánlanátok? Feltételek: céges szoftverhez kell, Linux és Windows alatt.
Utóbbi napokban elkezdtem beleásni magam a PyGobject/Gtk+ 3-ba és csak most kezdtem realizálni, hogy ez nincs Windowsra.
Egyelőre a PySide-t találtam, habár nem vagyok egy QT fan. Tkinter annyira nem jön be, különösen a Gtk3 -hoz hasonlítva. -
aAron_
őstag
Mivel lebegőpontos számokkal dolgozol, a
if S+E+M+O+T == 1:
sorod nem úgy fog működni, ahogy azt elképzeled. Használj fixpontos értékeket (kulcsszó: decimal). Amúgy mi értelme ennek a programnak?Amúgy kipróbáltam, a kérdéses belső if feltétele 851 alkalommal fog teljesülni a program futása közben, az s1, e1, stb. értékei minden esetben különbözőek, csak ugye minden alkalommal felül is írod a korábbi értékeket.
természetesen ennek a programnak sok értelme így nincsen, csomó mindent kiszedtem belőle, hogy jobban átlátható legyen, ill még nincs optimalizálva sem
köszönöm a válaszod
-
cucka
addikt
i=0.1
S=0
while S<=1:
E=0
while E<=1:
M=0
while M<=1:
O=0
while O<=1:
T=0
while T<=1:
if S+E+M+O+T == 1:
s1=S
e1=E
m1=M
o1=O
t1=T
T+=i
O+=i
M+=i
E+=i
S+=ihogy lehetséges, hogy az eredmény s1 = 0.8; e1 = 0.2
az én logikám szerint s1 = 1.0; többi = 0 lenne a helyesha kérhetem valaki vessen rá egy pillantást, sehogy sem jövök rá

Mivel lebegőpontos számokkal dolgozol, a
if S+E+M+O+T == 1:
sorod nem úgy fog működni, ahogy azt elképzeled. Használj fixpontos értékeket (kulcsszó: decimal). Amúgy mi értelme ennek a programnak?Amúgy kipróbáltam, a kérdéses belső if feltétele 851 alkalommal fog teljesülni a program futása közben, az s1, e1, stb. értékei minden esetben különbözőek, csak ugye minden alkalommal felül is írod a korábbi értékeket.
-
aAron_
őstag
i=0.1
S=0
while S<=1:
E=0
while E<=1:
M=0
while M<=1:
O=0
while O<=1:
T=0
while T<=1:
if S+E+M+O+T == 1:
s1=S
e1=E
m1=M
o1=O
t1=T
T+=i
O+=i
M+=i
E+=i
S+=ihogy lehetséges, hogy az eredmény s1 = 0.8; e1 = 0.2
az én logikám szerint s1 = 1.0; többi = 0 lenne a helyesha kérhetem valaki vessen rá egy pillantást, sehogy sem jövök rá

-
aAron_
őstag
értem, köszönöm

-
raggg
senior tag
Egy jó editor jelzi az indentet és áttekinthető marad (pl. sublime text, de más is jó lehet). A fordító meg pont azért látja, mert kötelező indent van, nem pedig bajusz ( curly braces - { } ).
-
sztanozs
veterán
Az indent határozza meg a scope-ot.
Kösnnyen átlátható, csak kell egy kis idő, mire az ember szeme rááll. Utána viszont egyértelmű. -
aAron_
őstag
üdv!
for ciklusok, while loop-ok, if statement-ek elejét végét nem lehet valahogy jelölni? kicsit bonyolultabb programnál számomra már kezd átláthatatlanná válni
egyébként maga a fordító is honnan látja, hogy melyiknek mikor van vége? C után elég furcsa számomra
-
Siriusb
veterán
Szívesen. Remélem sikerült kihámoznod azt is, mit rontottál el előzőleg, ami a jövőbeni linux használat miatt fontos lehet.
-
Orton96
aktív tag
Még egyszer nekifutok, hátha. Egy az egybe kimásolva a terminálból. Elöljáróban:
1) ~/tmp az a /home partíciómon levő könyvtár rövid útvonala. Abszolút útvonal: /home/siriusb/tmp Bármely, neked tetsző könyvtárban lehetsz, ez csak egy példa.
2) siriusb @arch ~/tmp $ Ezt soha nem kell begépelni ez a bash prompt, kifejtve: bejelentkezett felhasználó + @ host név + útvonal + és végül egy karakter ($), ami jelzi, hogy innentől kezdve jön az, amit én, mint felhasználó írok be (értsd: parancs)Lássuk a terminált:
siriusb @arch ~/tmp $ echo -e 'print "Hello. I am a python program."\nname = raw_input("What is your name? ")\nprint "Hello there, " + name + "!"' > hello.py
siriusb @arch ~/tmp $ python hello.py
Hello. I am a python program.
What is your name? alfa
Hello there, alfa!
siriusb @arch ~/tmp $ python
Python 2.7.3 (default, Dec 22 2012, 21:14:12)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Vastaggal kiemelve, amit valóban be kell gépelned!Szintaxis kiemeléssel, persze nem az igazi.
Ha kiadod a python parancsot, akkor egy interaktív felületre jutsz, ahol a >>> jel után tudod kiadni az utasításokat, pl. 5 + 5
siriusb @arch ~/tmp $ python
Python 2.7.3 (default, Dec 22 2012, 21:14:12)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 5+5
10
>>>Egyébként, amennyiben nincs különösebb okod rá, szvsz érdemesebb lenne a python3-at tanulni. Ha megy az angol: [link]
Szerk:
(#168) Orton96
Ezt most a python írta ki? Mert akkor az a baj, amit gyanítottunk, hogy olyan dolgokat is beírsz a py fájlba, amit nem kellene.Egyszerűen zseniális! Elsőre működött!

Köszönöm a segítségedet. Lehet, hogy a link szerint tényleg érdemesebb lenne Python3-mat tanulni, majd valahogy biztosan elleszek az angollal is.
-
Siriusb
veterán
Még egyszer nekifutok, hátha. Egy az egybe kimásolva a terminálból. Elöljáróban:
1) ~/tmp az a /home partíciómon levő könyvtár rövid útvonala. Abszolút útvonal: /home/siriusb/tmp Bármely, neked tetsző könyvtárban lehetsz, ez csak egy példa.
2) siriusb @arch ~/tmp $ Ezt soha nem kell begépelni ez a bash prompt, kifejtve: bejelentkezett felhasználó + @ host név + útvonal + és végül egy karakter ($), ami jelzi, hogy innentől kezdve jön az, amit én, mint felhasználó írok be (értsd: parancs)Lássuk a terminált:
siriusb @arch ~/tmp $ echo -e 'print "Hello. I am a python program."\nname = raw_input("What is your name? ")\nprint "Hello there, " + name + "!"' > hello.py
siriusb @arch ~/tmp $ python hello.py
Hello. I am a python program.
What is your name? alfa
Hello there, alfa!
siriusb @arch ~/tmp $ python
Python 2.7.3 (default, Dec 22 2012, 21:14:12)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Vastaggal kiemelve, amit valóban be kell gépelned!Szintaxis kiemeléssel, persze nem az igazi.
Ha kiadod a python parancsot, akkor egy interaktív felületre jutsz, ahol a >>> jel után tudod kiadni az utasításokat, pl. 5 + 5
siriusb @arch ~/tmp $ python
Python 2.7.3 (default, Dec 22 2012, 21:14:12)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 5+5
10
>>>Egyébként, amennyiben nincs különösebb okod rá, szvsz érdemesebb lenne a python3-at tanulni. Ha megy az angol: [link]
Szerk:
(#168) Orton96
Ezt most a python írta ki? Mert akkor az a baj, amit gyanítottunk, hogy olyan dolgokat is beírsz a py fájlba, amit nem kellene.Helyesbítek, ne gépeld, hanem másold a vastagon szedett részt.

Terminálban a beillesztés ctrl+shift+v, vagy egér jobb klikk és kiválasztod a beillesztés menüpontot. -
Siriusb
veterán
Még egyszer nekifutok, hátha. Egy az egybe kimásolva a terminálból. Elöljáróban:
1) ~/tmp az a /home partíciómon levő könyvtár rövid útvonala. Abszolút útvonal: /home/siriusb/tmp Bármely, neked tetsző könyvtárban lehetsz, ez csak egy példa.
2) siriusb @arch ~/tmp $ Ezt soha nem kell begépelni ez a bash prompt, kifejtve: bejelentkezett felhasználó + @ host név + útvonal + és végül egy karakter ($), ami jelzi, hogy innentől kezdve jön az, amit én, mint felhasználó írok be (értsd: parancs)Lássuk a terminált:
siriusb @arch ~/tmp $ echo -e 'print "Hello. I am a python program."\nname = raw_input("What is your name? ")\nprint "Hello there, " + name + "!"' > hello.py
siriusb @arch ~/tmp $ python hello.py
Hello. I am a python program.
What is your name? alfa
Hello there, alfa!
siriusb @arch ~/tmp $ python
Python 2.7.3 (default, Dec 22 2012, 21:14:12)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Vastaggal kiemelve, amit valóban be kell gépelned!Szintaxis kiemeléssel, persze nem az igazi.
Ha kiadod a python parancsot, akkor egy interaktív felületre jutsz, ahol a >>> jel után tudod kiadni az utasításokat, pl. 5 + 5
siriusb @arch ~/tmp $ python
Python 2.7.3 (default, Dec 22 2012, 21:14:12)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 5+5
10
>>>Egyébként, amennyiben nincs különösebb okod rá, szvsz érdemesebb lenne a python3-at tanulni. Ha megy az angol: [link]
Szerk:
(#168) Orton96
Ezt most a python írta ki? Mert akkor az a baj, amit gyanítottunk, hogy olyan dolgokat is beírsz a py fájlba, amit nem kellene. -
Orton96
aktív tag
-
Jester01
veterán
Én csak azt kértem, hogy másold be ide mit csináltál, hogy megmondhassuk mi nem jó.
-
Siriusb
veterán
-
Jester01
veterán
-
Orton96
aktív tag
Másold be a terminálból pontosan mit csináltál és mi lett az eredménye.
Így, ahogy én csináltam:$ cat >hello.py
#!/usr/bin/python
print 'Hello. I am a python program.'
name = raw_input("What is your name? ")
print "Hello there, " + name + "!"
$ chmod +x hello.py
$ ./hello.py
Hello. I am a python program.
What is your name? Jester
Hello there, Jester!(a programot a következő sorban ctrl+d-vel zárhatod le)
Hát akkor feladom Ubuntun... Majd Windózon biztos megy.

Mindenesetre mindenkinek köszönöm a segítségét!

-
sztanozs
veterán
-
Orton96
aktív tag
Másold be a terminálból pontosan mit csináltál és mi lett az eredménye.
Így, ahogy én csináltam:$ cat >hello.py
#!/usr/bin/python
print 'Hello. I am a python program.'
name = raw_input("What is your name? ")
print "Hello there, " + name + "!"
$ chmod +x hello.py
$ ./hello.py
Hello. I am a python program.
What is your name? Jester
Hello there, Jester!(a programot a következő sorban ctrl+d-vel zárhatod le)
Most már csak annyit ír ki, hogy:
$: command not found -
Jester01
veterán
Másold be a terminálból pontosan mit csináltál és mi lett az eredménye.
Így, ahogy én csináltam:$ cat >hello.py
#!/usr/bin/python
print 'Hello. I am a python program.'
name = raw_input("What is your name? ")
print "Hello there, " + name + "!"
$ chmod +x hello.py
$ ./hello.py
Hello. I am a python program.
What is your name? Jester
Hello there, Jester!(a programot a következő sorban ctrl+d-vel zárhatod le)
-
Siriusb
veterán
Csak annyit írj be:
./hello.py vagy
python ./hello.pyamikor ott vagy a könyvtárban!
-
Orton96
aktív tag
Gondoltam, hogy ha több helyen kérdezek akkor nagyobb esélyjel kapok választ. De egyébként igazad van, majd máskor nem így csinálom.
A tartalmazó mappába beírom: chmod +x hello.py, aztán a terminálba: greg@earth:~/python_examples$./hello.py
-
Siriusb
veterán
Sziasztok. Most kezdtem el Ubuntut használni és a Linux rendszerekről szóló Full Circle nevű ingyenes netes újság magyar fordításában felkeltette az érdeklődésemet a python programozás. Az első feladat nagyon egyszerű:
"Néhány sornyi kódot fogunk írni egy gedit-féle szövegszerkesztővel, majd pedig megtárgyaljuk, hogy melyik sor mit végez. Gépeljük be a következő négy sort:
#!/usr/bin/env python
print 'Hello. I am a python program.'
name = raw_input("What is your name? ")
print "Hello there, " + name + "!"Ennyi az egész. Mentsük el hello.py néven valahova. Én talán egy home mappabeli python_peldak nevű mappába tenném. Ez az egyszerű példa már mutatja, hogy mennyire könnyű a kódolás Pythonban. Mielőtt használnánk a programot, előbb futtathatóvá kelltennünk. Ezt a
chmod +x hello.py
parancs begépelésével érhetjük el abban a mappában, ahol a python fájlunk van. Most már elindíthatjuk
a programot.Hello. I am a python program.
What is your name?
Ferd Burphel
Hello there, Ferd Burphel!
greg@earth:~/python_examples$ "Akárhogyan is próbáltam, nem sikerül megcsinálni. Soha nem nyitja meg, mindig arra hivatkozik, hogy nem létező fájlt vagy mappát akarok megnyitni...
(a gép 2.7.3-mas python fájlokat ismer fel a terminál szerint)
Valakinek van ötlete?
A terminálban, amikor futtatnád, abban a könyvtárban vagy, ahol a py fájl is található?
-
Jester01
veterán
Sziasztok. Most kezdtem el Ubuntut használni és a Linux rendszerekről szóló Full Circle nevű ingyenes netes újság magyar fordításában felkeltette az érdeklődésemet a python programozás. Az első feladat nagyon egyszerű:
"Néhány sornyi kódot fogunk írni egy gedit-féle szövegszerkesztővel, majd pedig megtárgyaljuk, hogy melyik sor mit végez. Gépeljük be a következő négy sort:
#!/usr/bin/env python
print 'Hello. I am a python program.'
name = raw_input("What is your name? ")
print "Hello there, " + name + "!"Ennyi az egész. Mentsük el hello.py néven valahova. Én talán egy home mappabeli python_peldak nevű mappába tenném. Ez az egyszerű példa már mutatja, hogy mennyire könnyű a kódolás Pythonban. Mielőtt használnánk a programot, előbb futtathatóvá kelltennünk. Ezt a
chmod +x hello.py
parancs begépelésével érhetjük el abban a mappában, ahol a python fájlunk van. Most már elindíthatjuk
a programot.Hello. I am a python program.
What is your name?
Ferd Burphel
Hello there, Ferd Burphel!
greg@earth:~/python_examples$ "Akárhogyan is próbáltam, nem sikerül megcsinálni. Soha nem nyitja meg, mindig arra hivatkozik, hogy nem létező fájlt vagy mappát akarok megnyitni...
(a gép 2.7.3-mas python fájlokat ismer fel a terminál szerint)
Valakinek van ötlete?
Valakinek van ötlete?
Igen, az, hogy lehetőleg csak egy topikban tedd fel a kérdésedet
[link] -
Orton96
aktív tag
Sziasztok. Most kezdtem el Ubuntut használni és a Linux rendszerekről szóló Full Circle nevű ingyenes netes újság magyar fordításában felkeltette az érdeklődésemet a python programozás. Az első feladat nagyon egyszerű:
"Néhány sornyi kódot fogunk írni egy gedit-féle szövegszerkesztővel, majd pedig megtárgyaljuk, hogy melyik sor mit végez. Gépeljük be a következő négy sort:
#!/usr/bin/env python
print 'Hello. I am a python program.'
name = raw_input("What is your name? ")
print "Hello there, " + name + "!"Ennyi az egész. Mentsük el hello.py néven valahova. Én talán egy home mappabeli python_peldak nevű mappába tenném. Ez az egyszerű példa már mutatja, hogy mennyire könnyű a kódolás Pythonban. Mielőtt használnánk a programot, előbb futtathatóvá kelltennünk. Ezt a
chmod +x hello.py
parancs begépelésével érhetjük el abban a mappában, ahol a python fájlunk van. Most már elindíthatjuk
a programot.Hello. I am a python program.
What is your name?
Ferd Burphel
Hello there, Ferd Burphel!
greg@earth:~/python_examples$ "Akárhogyan is próbáltam, nem sikerül megcsinálni. Soha nem nyitja meg, mindig arra hivatkozik, hogy nem létező fájlt vagy mappát akarok megnyitni...
(a gép 2.7.3-mas python fájlokat ismer fel a terminál szerint)
Valakinek van ötlete?
-
sztanozs
veterán
Sziasztok!
A következő a problémám. Van egy Raspberry Pi-m és egy RGB led-em. Ha jól tudom csak két 2PWM kimenete van, ezért csináltam egy "Szoftveres PWM"-et a sima kimeneti lábakra.
A következő lépés a kitöltési tényezők folyamatos bekérése lenne a programban. Ha jól olvastam akkor tud több szálat futtatni. Vagyis a While ciklus fut folyamatosan ahol a LED vezérlése történik, és kellene még egy folyamatosan futó While vagy hasonló ciklus ahol az adatokat kérem be.
Igazából tegnap este óta foglalkozom pythonnal így nem igazán tudom, hogy kellene. Ha valaki csinált már hasonlót, és csak a vázlatát írná le, hogy is kellene beszúrni a ciklusokat azt megköszönném !!!!
Futtasd két külön programban...
-
p06
senior tag
Sziasztok!
A következő a problémám. Van egy Raspberry Pi-m és egy RGB led-em. Ha jól tudom csak két 2PWM kimenete van, ezért csináltam egy "Szoftveres PWM"-et a sima kimeneti lábakra.
A következő lépés a kitöltési tényezők folyamatos bekérése lenne a programban. Ha jól olvastam akkor tud több szálat futtatni. Vagyis a While ciklus fut folyamatosan ahol a LED vezérlése történik, és kellene még egy folyamatosan futó While vagy hasonló ciklus ahol az adatokat kérem be.
Igazából tegnap este óta foglalkozom pythonnal így nem igazán tudom, hogy kellene. Ha valaki csinált már hasonlót, és csak a vázlatát írná le, hogy is kellene beszúrni a ciklusokat azt megköszönném !!!!
-
sztanozs
veterán
Kösz a választ. Olyan okos ez a python
, azt hittem, ezt is lehet rövidíteni, de akkor marad a függvény.Jó, hogy írtad a sorrendben kinyomtatást is. Most vettem elő igazán ezt a nyelvet újra, persze régebben is elég minimális ismereteim voltak vele kapcsolatban... Idáig csak kisebb dolgokra használtam, pl. csv konvertálás xml-be.
Ha már itt vagyok, GUI-nak mit használtok? Tkinter?
Nem GUI-zok vele, én is csak szövegfeldolgozó, meg network cuccokat írogatok. Ráadásul főleg kijelzővel nem rendelkező cuccra.
-
Siriusb
veterán
Kösz a választ. Olyan okos ez a python
, azt hittem, ezt is lehet rövidíteni, de akkor marad a függvény.Jó, hogy írtad a sorrendben kinyomtatást is. Most vettem elő igazán ezt a nyelvet újra, persze régebben is elég minimális ismereteim voltak vele kapcsolatban... Idáig csak kisebb dolgokra használtam, pl. csv konvertálás xml-be.
Ha már itt vagyok, GUI-nak mit használtok? Tkinter?
-
sztanozs
veterán
Újabb kérdés, meg lehet-e egy sorban oldani 2 for ciklus helyett a következőt:
Van egy lista:
mylist= [(1,2,3), (4,5,6), (7,8,9)]Ezzel:
[[print(row[i]) for row in mylist] for i in range(3)]
ki tudom íratni egyesével az összes értéket, ám mi van akkor, ha több parancsot szeretnék kiadni, nem csak a print-et?írsz rá egy fv-t és azt hívod meg a print helyett. vagy csak egy sort tudsz átadni
Amúgy ez ilyen sorrendben írja ki az elemeket:
1 4 7 2 5 8 3 6 9Sorrendben ez írja ki:
[[print(element) for element in row] for row in mylist] -
Siriusb
veterán
Újabb kérdés, meg lehet-e egy sorban oldani 2 for ciklus helyett a következőt:
Van egy lista:
mylist= [(1,2,3), (4,5,6), (7,8,9)]Ezzel:
[[print(row[i]) for row in mylist] for i in range(3)]
ki tudom íratni egyesével az összes értéket, ám mi van akkor, ha több parancsot szeretnék kiadni, nem csak a print-et? -
Siriusb
veterán
Miután írtam, találtam infót, szóval ez lett belőle:
for i, elem in enumerate(lista):
tix.LabelEntry(myframe, label=elem).grid(column = 0, row = i)Nem tudtam, hogy így is létre lehet hozni.
-
Siriusb
veterán
Python + tkinter kérdés:
Miként lehet megoldani, ha van egy listám ['egy','ketto','harom'], generáljak mindegyik elemből pl. egy labelentry widgetet és ezeket megjelenítsem?
-
tacsk0
aktív tag
Sziasztok!
Nemreg telepitettem fel (Windows 7 64bit)-re a python-3.3.0 amd64.msi-t. Tokeletesen felpakolta magat, cmd-bol is etudom inditani a "python" parancsal. Na itt jon a problema feltettem az "ipython-0.13.1.py3-win-amd64-PROPER.exe"-t. Mivel szeretnek ipython-t hasznalni. Na ot mar nemtudom elovarazsolni. Hiaba irom be (cmd) ipython-t nem mukodik.
Mi lehet a megoldas? Kerlek segitsetek!
-
sztanozs
veterán
Sziasztok,
Az idő modulokkal küzdök. Két file dátumának a különbségére lenne szükségem, de sehogyse birom összehozni. Nekem túlkomplikáltnak tűnik.
Igy meg tudom határozni a két file idejét, de a különbségüket nem tudom képezni
t1=time.ctime(os.path.getmtime(d1))
flgtime=time.ctime(os.path.getmtime(flg))Tudnátok ebben segiteni, hogy merre induljak el?
Ezt nézd meg: [link]
-
sonar
addikt
Sziasztok,
Az idő modulokkal küzdök. Két file dátumának a különbségére lenne szükségem, de sehogyse birom összehozni. Nekem túlkomplikáltnak tűnik.
Igy meg tudom határozni a két file idejét, de a különbségüket nem tudom képezni
t1=time.ctime(os.path.getmtime(d1))
flgtime=time.ctime(os.path.getmtime(flg))Tudnátok ebben segiteni, hogy merre induljak el?
-
Hyperion
senior tag
Ahogy írtam, fájl írás és figyelés: [link], ja és ott van még az mmap.
De van natív python multiprocesing is...mod: csak nem akartam py-s dolgokkal tovább szemetelni a RPi fórumot...
Értem, és köszönöm!
Az első megoldásra magam is gondoltam, "paraszt" módszerrel. Ha változik a file méret, valószínüleg érkezett beleírt parancs--#> hajtsuk végre, viszont féltem, hogy lelassítja az egész működést ezért nem is próbáltam ki.. Viszont ez a külön library tetszik. Van esetleg infód avval kapcsolatban, hogy mennyire idő, és processzorigényes? (Főleg raspin.)
A második megoldás sokkal jobban érdekel, viszont félek még kevés vagyok hozzá, de legalább el tudok indulni valamerre! Köszönöm!
-
sztanozs
veterán
Ahogy írtam, fájl írás és figyelés: [link], ja és ott van még az mmap.
De van natív python multiprocesing is...mod: csak nem akartam py-s dolgokkal tovább szemetelni a RPi fórumot...
-
Hyperion
senior tag
Sziasztok!
Van lehetőség arra, hogy egy folyamatosan futó Python program változóit menet közben, egy másik Pythonnal befolyásoljam?
Köszönöm!
-
balees
tag
Hello,
kérlek segítsetek, elakadtam:
olyan reguláris kifejezést kellene irnom ami egy bizonyos (getParameters) függvényhívás paramétereit elkapja.
A paraméterek több sorban is lehetnek.
Ilyen lenne a függvényhívás:
getParameters(['ABCD_1',ABCD_2',
ABCD_3','ABCD_4'])Amit eddig sikerült az elkap mindenféle paramétert (mármint ami ' ' között van:
import re
str = "getParameters(['ABCD_1','ABCD_2',\
'ABCD_3','ABCD_4'])\
getPara(['AAA','BBB'])"parameters = re.findall(r'\'[\w-]+\'', str)
for parameter in parameters:
print parameterAmit nem tudok elérni hogy csak a getParameters-ből származó értékek kellenek.
-
sonar
addikt
A hiba a while ciklusban van, ami egyel tovább fut, mint a stringed hossza.
Egyébként ha már pythonban programozol, akkor nem érdemes pythonra lefordított turbo pascal kódot írni.
Például pythonban könnyű végigiterálni bármin anélkül, hogy ciklusváltozóval b*szakodnál:def megtalal(szoveg, karakter):
ret = -1
for i,c in enumerate(szoveg):
if c == karakter:
ret = i
break
return ret(Az enumerate azért kell, hogy a string karakterei mellett azok indexét is megkapjuk, lásd a doksiban, hogy mit csinál pontosan. Ha erre nincs szükség, akkor elhagyható.)
Azt rád bízom, hogy gondold végig, vajon fog-e ez menni unicode stringekkel (nem), hogy hogyan oldod meg a hibakezelést, stb.

for az a következő fejezet

úgyhogy while-lal kell megoldani
Közben rájöttem, hogy ha teszek még egy if x>i: return ret -et akkor minden müxik úgy ahogy kell -
D4nte
csendes tag
A hiba a while ciklusban van, ami egyel tovább fut, mint a stringed hossza.
Egyébként ha már pythonban programozol, akkor nem érdemes pythonra lefordított turbo pascal kódot írni.
Például pythonban könnyű végigiterálni bármin anélkül, hogy ciklusváltozóval b*szakodnál:def megtalal(szoveg, karakter):
ret = -1
for i,c in enumerate(szoveg):
if c == karakter:
ret = i
break
return ret(Az enumerate azért kell, hogy a string karakterei mellett azok indexét is megkapjuk, lásd a doksiban, hogy mit csinál pontosan. Ha erre nincs szükség, akkor elhagyható.)
Azt rád bízom, hogy gondold végig, vajon fog-e ez menni unicode stringekkel (nem), hogy hogyan oldod meg a hibakezelést, stb.

Ha már pythonban programozik, akkor return szoveg.find(karakter).

-
cucka
addikt
Hi,
Most izlelgetem ezt a nyelvet. De egy picit elakadtam. A feladat az lenne, hogy a megtalal() fv ha megtalálja a karakter-t akkor a visszatérő érték a pozició lesz. Ha meg nem találja meg a keresett karaktert akkor -1 -gyel kellene visszatérnie (de semmi esetre sem lehet 0 vagy pozitív érték)
def megtalal(szoveg,karakter):
i=0
x=len(szoveg)
while (x>=i):
if (szoveg[i]==karakter):
return i
i=i+1
return -1
print megtalal('Julietta & Romeo','x')A hiba a while ciklusban van, ami egyel tovább fut, mint a stringed hossza.
Egyébként ha már pythonban programozol, akkor nem érdemes pythonra lefordított turbo pascal kódot írni.
Például pythonban könnyű végigiterálni bármin anélkül, hogy ciklusváltozóval b*szakodnál:def megtalal(szoveg, karakter):
ret = -1
for i,c in enumerate(szoveg):
if c == karakter:
ret = i
break
return ret(Az enumerate azért kell, hogy a string karakterei mellett azok indexét is megkapjuk, lásd a doksiban, hogy mit csinál pontosan. Ha erre nincs szükség, akkor elhagyható.)
Azt rád bízom, hogy gondold végig, vajon fog-e ez menni unicode stringekkel (nem), hogy hogyan oldod meg a hibakezelést, stb.

-
sonar
addikt
Hi,
Most izlelgetem ezt a nyelvet. De egy picit elakadtam. A feladat az lenne, hogy a megtalal() fv ha megtalálja a karakter-t akkor a visszatérő érték a pozició lesz. Ha meg nem találja meg a keresett karaktert akkor -1 -gyel kellene visszatérnie (de semmi esetre sem lehet 0 vagy pozitív érték)
def megtalal(szoveg,karakter):
i=0
x=len(szoveg)
while (x>=i):
if (szoveg[i]==karakter):
return i
i=i+1
return -1
print megtalal('Julietta & Romeo','x') -
Siriusb
veterán
Kevered az értékadást és a konvertálást:
változó_neve = "sallala" # ha idézőjelek közé rakod, értéket adsz
var2 = "változó_neve" # itt szintén értéket adtál, és nem sallala lesz a var2
-
Yoru
csendes tag
Szia!
Pl. azért hasznos, mert átkonvertálja az adott objektumot string-é, így az ehhez a típushoz kapcsolódó függvényeket is használni tudod.
Tehát két lehetőség van arra h. valamit string-é alakítsak?
Mert úgy tudom, hogy ha idézőjelet teszek a szöveg elejére és végére, akkor a szöveg string lesz. -
Siriusb
veterán
Szia!
Pl. azért hasznos, mert átkonvertálja az adott objektumot string-é, így az ehhez a típushoz kapcsolódó függvényeket is használni tudod.
-
Yoru
csendes tag
Hali!
Nemrég kezdtem a Python tanulását és lenne egy kérdésem.
A str() string mire használható?pl.:
pi = 3.14159
print str(pi)Miért nem írhatom le csak így?

pl:
pi = 3.14159
print pi -
n00n
őstag
Nem jó így a ciklus. Most, hogy kiíratom a még az all_match-ben maradt meccseket, már látom, hogy azért áll meg, mert nem tud olyan annyi olyan párosítást választani a fordulóhoz, hogy különböző csapatok legyenek.

Pedig annyira nem lehet bonyolult, ez az oldal:
http://www.fixturelist.com/createalist1.phpEgy-két szóból legenerálja a listát. Kár, hogy nem lehet megnézni a forrását. ..

-
n00n
őstag
-
Jester01
veterán
Kiegészítettem egy break-kel (illetve egy print-el, hogy lássam még mennyi csapat van vissza). Négy csapat esetén gyönyörűen elboldogul, többnél már viszont kiakad. Ötlet?
meccs_per_fordulo = len(teams)/2
fordulok = []
while len(all_match) != 0:
fordulo = []
torlendo = []
for meccsek in all_match:
if meccsek[0] not in fordulo and meccsek[1] not in fordulo:
fordulo.insert(0, ";")
fordulo.insert(0, meccsek[1])
fordulo.insert(0, meccsek[0])
torlendo.insert(0, meccsek)
if len(fordulo) == meccs_per_fordulo * 3:
fordulok.append(fordulo)
#Törlés ciklus:
for delmatch in torlendo:
all_match.remove(delmatch)
print("\n" + str(all_match))
breakHogy akad ki?
-
n00n
őstag
Kiegészítettem egy break-kel (illetve egy print-el, hogy lássam még mennyi csapat van vissza). Négy csapat esetén gyönyörűen elboldogul, többnél már viszont kiakad. Ötlet?
meccs_per_fordulo = len(teams)/2
fordulok = []
while len(all_match) != 0:
fordulo = []
torlendo = []
for meccsek in all_match:
if meccsek[0] not in fordulo and meccsek[1] not in fordulo:
fordulo.insert(0, ";")
fordulo.insert(0, meccsek[1])
fordulo.insert(0, meccsek[0])
torlendo.insert(0, meccsek)
if len(fordulo) == meccs_per_fordulo * 3:
fordulok.append(fordulo)
#Törlés ciklus:
for delmatch in torlendo:
all_match.remove(delmatch)
print("\n" + str(all_match))
break -
Jester01
veterán
De n db csapatra kell megírni, nem pedig csak négyre sajnos.

Próbáltam írni rá egy módszert, de nem akar összejönni.

Az all_match-ben már benne vannak a meccsek. A teams-ben pedig a csapatokmeccs_per_fordulo = len(teams)/2
fordulok = []
while len(all_match) != 0:
fordulo = []
torlendo = []
for meccsek in all_match:
if meccsek[0] not in fordulo and meccsek[1] not in fordulo:
fordulo.insert(0, ";")
fordulo.insert(0, meccsek[1])
fordulo.insert(0, meccsek[0])
torlendo.insert(0, meccsek)
if len(fordulo) == meccs_per_fordulo * 3:
fordulok.append(fordulo)
#Törlés ciklus:
for delmatch in torlendo:
all_match.remove(delmatch)Szerintem n-re is működik.
Nagyjából jónak tűnik, mi a baja?Ja! Miután kész egy forduló a meccseket megint elölről kellene kezdeni, vagyis akkor ki kellene lépni a for ciklusból
-
n00n
őstag
De n db csapatra kell megírni, nem pedig csak négyre sajnos.

Próbáltam írni rá egy módszert, de nem akar összejönni.

Az all_match-ben már benne vannak a meccsek. A teams-ben pedig a csapatokmeccs_per_fordulo = len(teams)/2
fordulok = []
while len(all_match) != 0:
fordulo = []
torlendo = []
for meccsek in all_match:
if meccsek[0] not in fordulo and meccsek[1] not in fordulo:
fordulo.insert(0, ";")
fordulo.insert(0, meccsek[1])
fordulo.insert(0, meccsek[0])
torlendo.insert(0, meccsek)
if len(fordulo) == meccs_per_fordulo * 3:
fordulok.append(fordulo)
#Törlés ciklus:
for delmatch in torlendo:
all_match.remove(delmatch) -
Jester01
veterán
Köszi szépen. Nagyon egyszerű megoldás.

Viszont ennek a továbbgondolt feladatánál már elakadok.
Szöveg: Van négy (a példa miatt négy, lehet több is, tehát célszerű n db-ra megírni) darab focicsapat, hozzon létre egy tömböt/listát a lehetséges összes meccsről véletlen sorrendben, mely tartalmazza a visszavágókat is.
Eddig úgy meg vagyok.

A példaként vett 4 csapat tehát összesen 12 meccset játszik 6 forduló alatt, fordulónként kettőt. Generáljon egy új listát az elkészült összes meccs listából, mely a fordulókban lejátszott meccseket tartalmazza, fordulónként ; (pontosvesszővel) elválasztva egymástól. Értelemszerűen egy fordulóban egy csapat csak egyszer játszhat. A megértést segítve itt egy példa listarészlet:
fordulok = ([1,3], [4:2], ; , [3,2], [4:1], ; , [1,2], [3,4], ; , ... stb.)
Fogalmam nincs merre induljak. Ötlet?
A megoldás menetét itt leírtam, a többi a pythonosok dolga

-
n00n
őstag
Feltételezem, hogy mondjuk az emberek nevű listában már minden beolvasott név szerepel. Ekkor le kell generálni az összes lehetséges permutációt, hiszen "Eszter köszönti Bélát", de kell egy "Béla köszönti Esztert" is. Ez alapból szépen sorba lesz rendezve, tehát meg kell keverni őket. A kód:
import itertools
import random
variaciok = list(itertools.permutations(emberek, 2))
random.shuffle(variaciok)A random.shuffle helyben keverget, tehát a bemenet és a kimenet egyaránt a variaciok nevű változó. Innen már csak le kell generálni a mondatokat, ami elég egyszerűen megy:
mondatok = [i[0]+' köszönt '+i[1]+' nevű ismerősének.' for i in variaciok]
Ezután ezt ki kell íratni a konzolra, fájlba... stb. Szerintem kb. ennyi. Ez működik 2, vagy akár 100 embernél is.
Köszi szépen. Nagyon egyszerű megoldás.

Viszont ennek a továbbgondolt feladatánál már elakadok.
Szöveg: Van négy (a példa miatt négy, lehet több is, tehát célszerű n db-ra megírni) darab focicsapat, hozzon létre egy tömböt/listát a lehetséges összes meccsről véletlen sorrendben, mely tartalmazza a visszavágókat is.
Eddig úgy meg vagyok.

A példaként vett 4 csapat tehát összesen 12 meccset játszik 6 forduló alatt, fordulónként kettőt. Generáljon egy új listát az elkészült összes meccs listából, mely a fordulókban lejátszott meccseket tartalmazza, fordulónként ; (pontosvesszővel) elválasztva egymástól. Értelemszerűen egy fordulóban egy csapat csak egyszer játszhat. A megértést segítve itt egy példa listarészlet:
fordulok = ([1,3], [4:2], ; , [3,2], [4:1], ; , [1,2], [3,4], ; , ... stb.)
Fogalmam nincs merre induljak. Ötlet?
-
cousin333
addikt
Miképpen oldanátok meg ezt a feladatot?
Van n darab emberünk, egy fájlból olvassuk be a nevüket, akik köszönnek egymásnak. Írjon egy programot, ami az alábbihoz hasonló kimenetet generál:
Béla köszönt Tamás nevű ismerősének
Eszter köszönt Béla nevű ismerősének
Béla köszönt Eszter nevű ismerősének
Tamás köszönt Eszter nevű ismerősének
Eszter köszönt Tamás nevű ismerősének
Tamás köszönt Béla nevű ismerőségnekA fájlbeolvasást nem kell megírnia. Tegyük fel, hogy az már csak kész van. Viszont úgy írja meg a programot, hogy a beolvasott adatok változhatnak (egyszer csak két ember, egyszer 10). Mindenki köszönjön mindenkinek, viszont véletlenszerűen.
Adjatok kérlek tanácsot merre álljak neki.

Feltételezem, hogy mondjuk az emberek nevű listában már minden beolvasott név szerepel. Ekkor le kell generálni az összes lehetséges permutációt, hiszen "Eszter köszönti Bélát", de kell egy "Béla köszönti Esztert" is. Ez alapból szépen sorba lesz rendezve, tehát meg kell keverni őket. A kód:
import itertools
import random
variaciok = list(itertools.permutations(emberek, 2))
random.shuffle(variaciok)A random.shuffle helyben keverget, tehát a bemenet és a kimenet egyaránt a variaciok nevű változó. Innen már csak le kell generálni a mondatokat, ami elég egyszerűen megy:
mondatok = [i[0]+' köszönt '+i[1]+' nevű ismerősének.' for i in variaciok]
Ezután ezt ki kell íratni a konzolra, fájlba... stb. Szerintem kb. ennyi. Ez működik 2, vagy akár 100 embernél is.
-
n00n
őstag
Miképpen oldanátok meg ezt a feladatot?
Van n darab emberünk, egy fájlból olvassuk be a nevüket, akik köszönnek egymásnak. Írjon egy programot, ami az alábbihoz hasonló kimenetet generál:
Béla köszönt Tamás nevű ismerősének
Eszter köszönt Béla nevű ismerősének
Béla köszönt Eszter nevű ismerősének
Tamás köszönt Eszter nevű ismerősének
Eszter köszönt Tamás nevű ismerősének
Tamás köszönt Béla nevű ismerőségnekA fájlbeolvasást nem kell megírnia. Tegyük fel, hogy az már csak kész van. Viszont úgy írja meg a programot, hogy a beolvasott adatok változhatnak (egyszer csak két ember, egyszer 10). Mindenki köszönjön mindenkinek, viszont véletlenszerűen.
Adjatok kérlek tanácsot merre álljak neki.

-
cousin333
addikt
Sziasztok!
Belemerültem egy python feladatba, el is jutottam egy darabig de sajnos innen nem tudok továbbhaladni, mert nagyon kezdő vagyok még a nyelvben. Ez a program egy menetrendből szed ki sorokat feltétel szerint. A feltétel hogy a járat Londonba menjen, és késve induljon, tehát a tervezett és várható indulási időpont eltérjen(ugye az utóbbi legyen később) . Az adatok táblázatszerűen vannak rendezve egy fájlban, tabbal vannak elválasztva, és így néznek ki:Járatszám Hova Tervezett Várható Term. Megj.
W62201 London Luton 06:00 05:59 1 Felszállt
DL9694 Amsterdam 06:15 06:17 2A Felszállt
LH1343 Frankfurt 06:35 06:42 2A FelszálltÖsszesen 50 ilyen járatom vana fájlban.
Jelenleg a kódom itt tart:
import sys
import os.path
hossz = len(sys.argv)
if hossz < 2:
print "Keves parameter!"
if not os.path.isfile(sys.argv[1]):
print "A megadott inputfajl nem letezik!"
f1 = open(sys.argv[1], 'r')
lines = f1.readlines()
f2 = open('london.txt', 'w')
for text in lines:
text = text.rstrip(' \t')
l = len(text)
if (l > 0):
f2.write(text)
f2.close()Tehát csak a keret van meg, az inputfájlt majd a program futtatásakor kell megadni, és ha minden igaz ez kiszedi a tabokat és a london.txt-be írja.
A kimenetnek úgy kéne kinéznie, hogy:BA865 London LHR 9
Tehát járatszám hova megy hány percet késik
Ui.: A várható időpont nem mindenhol szerepel, és a járatszám 5 és 7 karakter közötti.Előre is nagyon szépen köszönöm a segítséget!
Üdv!
A te példád alapján, de nem teljesen azt folytatva (szóval még dolgozni kell rajta), nekem ez jött ki. Hozzáteszem, hogy én Python 3.2.3-at használtam, ami nem teljesen kompatibilis a 2.7-es szériával (amit a kódod alapján te használtál). Szóval a kód:
# előregyártott fejléc a sorok egyes elemeihez
rekord = ['Kod', 'Repter', 'Terv', 'Indulas', 'Terminal', 'Megjegyzes']
# a fájl megnyitása olvasásra, ez a "with" szerkezetes megoldás a végén be is zárja azt, a fájl objektum neve (a példád alapján) f1
with open('d:\\text.txt', 'r') as f1:
# adatok beolvasása soronként, sorvégi újsor karakterek ("\n") levágása
# egy-egy sor szétbontása tabulátorokkal határolt elemekre
# könyvtár-listát hoz létre az elemekből a "rekord" nevű fejlécekkel
# az üres sorokat kihagyja
# 'Terminal': '1', 'Indulas': '05:59', 'Terv': '06:00'}
adatok = [dict(zip(rekord, i.strip('\n').split('\t'))) for i in f1 if i != '\n']
# teljes fájl beolvasva az "adatok" nevű listába
# példa az első elemre (adatok[0]):
# {'Megjegyzes': 'Felszállt', 'Repter': 'London Luton', 'Kod': 'W62201', ...
# 'Terminal': '1', 'Indulas': '05:59', 'Terv': '06:00'}
# az időkülönbségek számításához kell ez a könyvtár
from datetime import datetime as ido
# végignézzük az összes bejegyzést
for adat in adatok:
terv = ido.strptime(adat['Terv'], '%H:%M') # a "terv" egy időobjektum lesz a szövegből a megadott formátummal
teny = ido.strptime(adat['Indulas'], '%H:%M') # a "teny" egy időobjektum lesz a szövegből a megadott formátummal
kulonb = teny - terv # a két időpont különbsége (egy datetime.timedelta objektum)
adat['Diff'] = kulonb.total_seconds() / 60 # a differenciát hozzáírjuk (mp -> perc)
#megnyitunk egy másik fájl adatmentésre
with open('d:\\kimenet.txt', 'w') as f2:
# kiírjuk bele azokat az elemeket (a megadott adatokkal, tabulátorral elválasztva), amiknél az időkülönbség pozitív
[f2.write('\t'.join([elem['Kod'], elem['Repter'], str(elem['Diff'])]) + '\n') for elem in adatok if elem['Diff'] > 0]Vannak benne kommentek is, remélem azzal együtt érthető lesz. Ha egy sorban nincs várható időpont az a beolvasásnál nem baj, feltéve, hogy a tab-ok ki vannak neki hagyva. A számolásnál már gond lehet
, ott bele kell nyúlni a kódba valamiféle vizsgálattal. -
n00n
őstag
Kis segítség kellene. A Main Window-n van egy gomb (addButton). Arra rákattintva megjelenik az AddDialog, ahol van kettő gomb (btn_ok és btn_cancel) és egy entry.
Ha az ok-ra kattintok ellenőrzi, hogy ki van-e töltve a mező. Ha nincs hibát ír. Viszont itt van egy kis gubanc. Ugye, ha úgy okézom le az ablakot, hogy nem adok meg a mezőben semmit, akkor hibát dob és nem zárja be az ablakot, így újabb lehetőség van megadni valamit. Viszont ilyenkor is lefut az AddDialog.run() alatti print. Aminek csak akkor kellene lefutnia, ha eltűnik az ablak, tehát van a mezőnek tartalm.Az alábbi kódban, ha úgy kattintok az OK-ra, hogy nem töltöttem ki mindent, akkor mégis miért jelenik meg a terminálban az „Ez az üzenet miért jelenik meg?” üzenet?
Main Window kódrészlet:
def on_addButton_clicked(self, widget, data=None):
AddDialog = AddDialog()
AddDialog.run()
print "Ez az üzenet miért jelenik meg?"AddDialog kódrészlet:
def on_btn_ok_clicked(self, widget, data=None):
#Minden ki van töltve:
if entry.get_text() != "":
name = self.entry.get_text()
self.destroy()
else:
self.hibaCimke.set_text(_("Nincs minden kitöltve!"))
def on_btn_cancel_clicked(self, widget, data=None):
self.destroy() -
privacy99
senior tag
Sziasztok!
Belemerültem egy python feladatba, el is jutottam egy darabig de sajnos innen nem tudok továbbhaladni, mert nagyon kezdő vagyok még a nyelvben. Ez a program egy menetrendből szed ki sorokat feltétel szerint. A feltétel hogy a járat Londonba menjen, és késve induljon, tehát a tervezett és várható indulási időpont eltérjen(ugye az utóbbi legyen később) . Az adatok táblázatszerűen vannak rendezve egy fájlban, tabbal vannak elválasztva, és így néznek ki:Járatszám Hova Tervezett Várható Term. Megj.
W62201 London Luton 06:00 05:59 1 Felszállt
DL9694 Amsterdam 06:15 06:17 2A Felszállt
LH1343 Frankfurt 06:35 06:42 2A FelszálltÖsszesen 50 ilyen járatom vana fájlban.
Jelenleg a kódom itt tart:
import sys
import os.path
hossz = len(sys.argv)
if hossz < 2:
print "Keves parameter!"
if not os.path.isfile(sys.argv[1]):
print "A megadott inputfajl nem letezik!"
f1 = open(sys.argv[1], 'r')
lines = f1.readlines()
f2 = open('london.txt', 'w')
for text in lines:
text = text.rstrip(' \t')
l = len(text)
if (l > 0):
f2.write(text)
f2.close()Tehát csak a keret van meg, az inputfájlt majd a program futtatásakor kell megadni, és ha minden igaz ez kiszedi a tabokat és a london.txt-be írja.
A kimenetnek úgy kéne kinéznie, hogy:BA865 London LHR 9
Tehát járatszám hova megy hány percet késik
Ui.: A várható időpont nem mindenhol szerepel, és a járatszám 5 és 7 karakter közötti.Előre is nagyon szépen köszönöm a segítséget!
-
n00n
őstag
-
ArchElf
addikt
-
n00n
őstag
-
ArchElf
addikt
-
n00n
őstag
-
ArchElf
addikt
-
n00n
őstag
A combox.get_text() függvény nem kezeli az ékezetes karaktereket. Próbálkoztam unicode()-al, utf8-cal, de semmi. Valakinek ötlet?
-
n00n
őstag
Megtaláltam, hátha valakit érdekel:
my_combobox.get_model().clear()
előtte így próbálkoztam:
my_combobox.clear()
de ez után nem is lehet elemeket beszúrni valamiért.
-
n00n
őstag
Van egy GtkComboBoxText-em és nem tudok az istenért se rájönni, hogy hogyan tudnék belőle minden elemet törölni. Ötlet?
-
n00n
őstag
-
ArchElf
addikt
-
n00n
őstag
Kellene írnom egy kisebb python programot, aminél célszerű lenne adatbázisban tárolni az adatokat. Milyen offline adatbázist javasoltok hozzá? (Lehetőleg multiplatform legyen).
-
mate0023
tag
-
Siriusb
veterán
Szia!
Szerintem próbáld meg átalakítani a másdik példát.
-
mate0023
tag
Sziasztok
Érettségire készülök python nyelven.
Abban szeretnék segítséget kérni,hogy hogyan tudok egy 90 számból álló listát a legegyszerűbben 15X6-os tördelésben a képernyőre íratni.
Csak nagyon hosszan tudnám megoldani, de biztos van egyszerűbb módszer, tudnátok segíteni ?
Üdv. Máté -
ArchElf
addikt
Python shell-be már ne íd be, hogy python... indítsd el úgy, ahogy írta...
execfile(fajl.py)AE
-
Siriusb
veterán
Úgy látom windowst használsz.

Indíts el a Parancssort (azt hiszem így hívják), vagy a Futtatásnál írd be, hogy cmd. Itt kapsz egy fekete ablakot. Ide írd be a python parancsot.
Ha jól tudom, windowsnál a py kiterjesztésű fájlokat automatikusan a pythonnal társulnak, tehát fájlkezelőben dupla kattintással is indulnia kellene.Mégegyszer: amit te láttál, azt nem a python shell-be írták be (nem volt elindítva a python), hanem egy terminálba.
-
Kattt01
tag
Hát, elindítom a pythont, beírom neki hogy "python" erre meg csak annyit dob ki, hogy NameError: name 'python' is not defined. Tényleg nagyon nem értek ehhez az egészhez, csak ahol eddig láttam, ott úgy futtatták a .py scripteket, hogy "python fnev.py"...
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Új Intel CPU-kkal jön a Surface Pro 12 és a Surface Laptop 8 for Business
- Samsung kuponkunyeráló
- Nintendo Switch
- Otthoni hálózat és internet megosztás
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Autószerelők, autószerelés
- Robotporszívók
- One otthoni szolgáltatások (TV, internet, telefon)
- Forza sorozat (Horizon/Motorsport)
- PlayStation 5
- További aktív témák...
- Teljesen ÚJ - iPhone 17 Pro 256 GB Kártyafüggetlen - Fóliás - 0 ciklus - Apple garancia
- Intel Core ULTRA 9 285K +32GB 7600MHz Patriot Viper XTREME 5 DDR5 kit! (Bolti ár: kb 600ezer Ft!)
- RYZEN 7 5700X3D (8 mag/16 szál, 96MB L3 cache)! GARANCIA/SZÁMLA (a Te nevedre kiállítva)!
- Intel Core i3-4160, 16GB DDR3 félkonfig - Alaplap, CPU, RAM, SSD, hűtő
- 2 darab Metalica VIP Superior 2 napos jegy csere 4 darab egynaposra
- AKCIÓ! Endgame Gear & Xtrfy gamer egerek /MZ1/OP1 8K/XM2we/XM1R/XM1 RGB (fehér/fekete/lila)/
- AKCIÓS PRECÍZIÓS KÉSZÜLÉK! 7670 i7-12850HX 32GB RAM 1TB SSD Nvidia RTX A3000 12GB 1 év gar
- Lenovo Thinkstation P320 MT,E3-1220 v6,32GB DDR4,256GB SSD,Quadro P2000 5GB VGA,WIN11
- 0PERCES BOSE QuietComfort Ultra Headphones, zajszűrős, Bluetooth fejhallgató!
- 27% - GIGABYTE Z890 AORUS ELITE WIFI7 Alaplap
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest












