Hirdetés
- TCL LCD és LED TV-k
- Azonnali alaplapos kérdések órája
- OLED monitor topic
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- HiFi műszaki szemmel - sztereó hangrendszerek
- Felvenné a Noctua kesztyűjét az ASUS
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Mini-ITX
- Kábel nélkül a Sapphire VGA-val
- Milyen asztali (teljes vagy fél-) gépet vegyek?
Új hozzászólás Aktív témák
-
sonar
addikt
Kössz!
ez a git akkor verzió követő, a repó meg ahova feltolja a kódot. Gondolom akkor ezt lehet lokálisan is csinálni.
Ebbe akkor bele kell ásnom magam egy pöttyet. -
sonar
addikt
Hi
Nem kimondottan python, de hátha.
Verzió követést ti hogyan oldjátok meg?
Van egy két scriptem amit két három havonta ki kell egésziteni. Eddig kommentbe irogattam meg release után egy zippelt verziót lementek magamnak.Illetve van-e vmi olyan oldal ahol rendszeresen mutatnak be python-os modulokat technikákat...
(most nem a python.org -ra gondolok) -
cousin333
addikt
válasz
DrojDtroll
#694
üzenetére
Típushibára

Kattints rá a linkre (vagy keresd meg a kérdéses fájlok kérdéses sorát), hogy lásd, mit csinál. Én ennyi infóból azt mondanám, hogy a
MediumMotor()osztály példányosításakor lefut az__init__()függvény, ami valamit inicializálna, pl. egy szótár változóból (dictionary) olvasna ki egy elemet, de a szótár helyett egyNone-t kap. Nem lehet, hogy valamilyen paramétert kéne átadni az osztálynak?Mod: a válasz elvileg nem. Én ezt találtam: [link], bár gyanítom, hogy ez a kód nem teljesen ugyanaz a verzió, mint a tied, mert ennek a sornak le se szabadna futnia, max a 334-től kezdve, de szerintem abban sem indokolja semmi ezt a hibát.
-
DrojDtroll
veterán
válasz
cousin333
#693
üzenetére
Pontosan így van ahogy írod.
>>> from ev3.lego import *
>>> d = MediumMotor()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build/bdist.linux-armv5tejl/egg/ev3/lego.py", line 217, in __init__
File "build/bdist.linux-armv5tejl/egg/ev3/ev3dev.py", line 330, in __init__
TypeError: 'NoneType' object has no attribute '__getitem__'Ez milyen hibára utal?
-
cousin333
addikt
válasz
DrojDtroll
#692
üzenetére
Tehát ha jól értem, egy virtuális környezethez volt fenn a modul (nem használtam még a
virtualenv-et), indításkor viszont a normál környezet futott, ami persze nem látta.Úgy látom reszeltek a programkód beágyazáson. Színes meg minden...
-
cousin333
addikt
válasz
DrojDtroll
#683
üzenetére
Ennyi erővel már a konkrét problémát is beírhattad volna ide

Ez olyan "Megkérdezhetem, hogy mennyi az idő? Persze, kérdezd csak meg nyugodtan!" típusú hozzászólás volt.

-
EQMontoya
veterán
Tudsz olyat, hogy megadsz rövidebb verziót az argparse-nak.
Pl. így:
parser.add_argument('--debug','-d', dest='debug', action='store_true', help='Debug - print the structure of order')
parser.add_argument('--profile','-p', dest='profile', action='store_true', default=False, help='Show time spent in each phases')
parser.add_argument('--id','-i', help='ID list - separated by \',\'', required=True)mondjuk korábban annyi volt, hogy csak beírtam a számértékeket megfelelő sorrendben
Persze, így viszont nem tudsz opcionális argumentumokat megadni.
Tehát ezzel így az a baj, hogy mondjuk akkor is ki kell ínrod mindhármat, ha mondjuk 17 szögmásodpercet szeretnél átváltani. -
Noddy
senior tag
válasz
DrojDtroll
#683
üzenetére
Ez itt inkább programozós topic, lehet a linuxosban több sikerrel jársz. Nekem ubuntura a sima
sudo apt-get install python3paranccsal gond nélkül felment. -
Noddy
senior tag
válasz
EQMontoya
#685
üzenetére
Köszi!

Így már működik, mondjuk korábban annyi volt, hogy csak beírtam a számértékeket megfelelő sorrendben:
program.py 180 23 40 és számolta is, de most program.py --degree 180 --minute 23 --secundum 40
Persze legalább működik
Az a2,a3 és b változónak float típust adtam most már meg, elvileg nekem most így működik. Érdekes hogy nem találtam olyan netes konvertert ami fok, perc, másodpercet számol radianba csak fok-radiant számolót, biztos van csak nem találtam. -
EQMontoya
veterán
Kimaradt a dest, nem tudja hová tárolni, így nem fog működni.
parser.add_argument("--degree", dest='degree', help="This program calculate degree to radian.", default=0, type=int)
parser.add_argument("--minute", dest='minute', help="You can add Minute value.", type=int, default=0)
parser.add_argument("--secundum", dest='secundum', help="You can add secundum value.", type=int, default=0)Így már működni fog bármilyen kombinációval, pl. lehet olyan, hogy csak percet adsz meg, vagy fokot és másodpercet, bármi.
Azért van még baj, az egészosztások miatt a percek és a másodpercek nem működnek, de ezt nem lövöm le előre, ebből tanulsz.

-
Noddy
senior tag
Sziasztok!
Kipróbáltam az argparse dolgot de egy olyan problémába ütköztem, hogyha nem adok meg értéket akkor nem fut le a program, pedig elvileg van egy olyan opció, ha nem adok meg semmit akkor is lefut a program egy default értékkel. De ez nekem nem működik... Mi lehet a baj?
#degrees to radian calculator
import argparse
import math
parser = argparse.ArgumentParser()
parser.add_argument("degree", help="This program calculate degree to radian.", default=0, type=int)
parser.add_argument("minute", help="You can add Minute value.", type=int, default=0)
parser.add_argument("secundum", help="You can add secundum value.", type=int, default=0)
args = parser.parse_args()
a2=args.minute/60 #minute to degree
a3=(args.secundum/60)/60 #secundum to degree
a=float(args.degree+a2+a3)
b=(a*math.pi)/180
print('The result is %lf radian.' %b)Megadom, hogy a default 0 legyen, de mégse működik, pedik jó lenne, ha pl. csak fokot akarok számolni akkor ne keljen a percet és a másodpercet is megadni és további variációk.
-
DrojDtroll
veterán
Nem nagyon sikerül egy rendszerre feltepiteni egy python könyvtárat.
Ez Linuxos vagy python os kérdés inkább?
-
-
cousin333
addikt
válasz
AeSDé Team
#679
üzenetére
Az OpenCV tényleg alkalmasnak látszik a feladatra, én ezzel kezdeném: [link]
Mivel itt arról van szó, hogy a kamera képét képként beolvasod, majd azt elemzed, szerintem nincs különösebb szükség komolyabb támogatásra.
Nem tudom, mit és hogyan akarsz irányítani vele, de egér és billentyűzet automatizált kezelésére egy lehetséges opció a pyAutoGUI.
-
AeSDé Team
őstag
Vajon hogyan valósíthatnám ezt meg?
Szeretnék egy színes LED-et relatíve sötét háttér mellett követni webkamerával, és kalibrálható koordináta transzformációs megoldással az egeret mozgatni vele.
Úgy néztem hogy az OpenCV bővítmények bírnak hasonló képességekkel, valaki tudna tippet adni hogy merre induljak el? Bármilyen webkamera ideális lehet vagy vannak fejlesztő-barátabb példányok? Izgalmas projekt lenne a nyárra.Később érdekes lehetne egy pisztoly-szerű hardvert építeni hozzá ami több színkódra is képes, pl. jobb és bal kattintások is jelezhetőek lennének. De egyenlőre maradjunk 1 színnél.
-
EQMontoya
veterán
Általánosságban értettem: alapvetően nem szeretünk interaktív programot írni, ami b..tatja a usert, hogy:
-Add meg ezt
-Biztos ezt akarod?
-De tényleg?
-Fűzfán fütyüljek a végén?Akkor inkább: foo --input_file ./bar.txt, --force --fuzfan_futyul
Aztán enter, és megtörténik minden. -
justmemory
senior tag
Köszönöm a tippeket!

-
cousin333
addikt
válasz
justmemory
#671
üzenetére
Az objektum orientált Python programozáshoz egy remek video:
Python's Class Development Toolkit -
cousin333
addikt
válasz
EQMontoya
#672
üzenetére
Szerintem is talán a legprofibb eszköz Python fejlesztéshez (is), ha nagy projektem lenne, valószínűleg abban nyomnám. Kis projektekhez viszont - épp az autocomplete és a hozzá hasonló funkciók miatt - elég fejnehéznek tűnik. Értsd: túl komplex egy pár soros programhoz (a telepítője 160 MB) és túl sokat molyol a háttérben, amitől kissé darabosnak érződik a számomra.
Aki nem ismerné: PyCharm
-
justmemory
senior tag
válasz
cousin333
#670
üzenetére
Igen, most én a Tab-ot 4-re állítottam. Régebben a gedit-et használtam, de átszoktam a vim-re...

A GUI-t illetôen igazad van, én is az egészet abban írnám
Egyébként ami kizárólag a fájl mentéséhez kell, az minimális plusz kódot igényel; én egy sima FileChooserDialog-ra gondoltam. Bár tény, hogy vegyíteni lehet nem a legjobb, már csak azért sem, mert ha valaki még a tanulás elején van, akkor valószínûleg korai 
Sajnos az eseményvezérléses és objektumorientált programírást nagyon gyakorolnom kellene

A GUI-t én arra használom, hogy a telefonomra írjak hasznos appokat

-
cousin333
addikt
válasz
justmemory
#669
üzenetére
Na igen, a Python más nyelveknél is sokkal háklisabban reagál a vegyesen alkalmazott behúzásokra...

Az általam használt szövegszerkesztők (Notepad++, Spyder, IPython... stb.) szinte mindegyikének van olyan funkciója, hogy a Tab-ot automatikusan a kívánt számú (esetemben 4) szóközre cseréli. A behúzás csökkentése is megoldható Shift + Tab használatával.
Ami a GUI-t illeti: én sem használom a tk-t, sőt, mást se nagyon (kivéve a Jupyter Notebook-ot). Csak azért javasoltam, mert az alapból része a Python telepítésnek és ilyen egyszerűbb feladatra vélhetően ez a legjobb.
Valóban egyszerűbb lehet kiválasztani a fájlt, mint begépelni az egész elérési utat, de a szkriptnyelves és a GUI-s implementálásnál csak egy rosszabb van: a kettő vegyítése - legalábbis ha utóbbit vegyítjük az előbbibe. Egy GUI implementálása más szemléletet igényel, hiszen "folyamat-alapú" működés helyett eseményvezéreltté válik. Nem is beszélve az integráláshoz szükséges, arányaiban sok extra kódról.
Ha pedig GUI, akkor én nem csak a fájl-választót írnám bele, hanem az egészet, a generálás gombtól kezdve a kimeneti címkéig. Úgy legalább megspórolná az eléggé esetleges while ciklust is.
-
justmemory
senior tag
válasz
cousin333
#667
üzenetére
Nem csak téged zavar
Mondjuk ezeket már nem is néztem (zárójel, szóközök, stb.).
Én korábban 2 szóközzel írtam a scripteket, aztán egy programozó cimborám mondta, hogy 4-el kellene. Viszont mivel vim-et használok, a tabulátort állítottam át 4 szóköznyire alapértelmezetten... Ebből esetleg lehet gond a behúzások érzékelésekor, főleg, ha utólag módosítok a korábbi scripteken...
Nem tudom mi legyen, Tab-ot nyomni könnyebb, mint 4 szóközt 
A GUI-val kapcsolatosan igazad lehet; mondjuk nekem a tk csak minimálisan "jött be", hamar elkezdtem a gtk-t használni inkább. Azért gondoltam csak a GUI-ra, mert ha valódi program lesz a scriptből, szerintem a user-ek számára egyszerűbb így használni, mint gépelni, hogy pl. /home/Desktop/akármi/akármimimimimi/valami.txt.
Windows alatt... jah, jogos
Annyira alapvetés már számomra a Linux, hogy a Windows-ról hajlamos vagyok megfeledkezni, ami ilyenformán nyilván nem jó 
Igen, a with is hasznos, valóban

-
cousin333
addikt
válasz
justmemory
#666
üzenetére
Az a 12 karakteres behúzás csak engem zavar? Már a 8-at is sokallom, a 2 meg kevés, én a 4-re szavazok. Természetesen szóközzel, nem tabulátorral.
"A fájl mentését én valószínűleg gtk-val oldanám meg"
Amit írsz, az igaz, de egy szkriptnyelvnél a GUI szerintem minimum a második lépés, vagy még későbbi. Akkor is inkább a tk-t próbálnám ilyen egyszerű feladatra, mert az része az alap Python telepítésnek.
"Tennék bele egy olyan apróságot is, hogy az "i" és "n""
Meg a zárójelezés is teljesen felesleges az == után. Kivéve talán ezt az esetet:
if kerdes in ('i', 'n'):
"#!/usr/bin/python - nem feltétlenül szükséges, csak könnyebb futtatni;"
Windows alatt is?

"#-*- coding:Utf-8 -*-; nem tudom, hogy ez utóbbi feltétlenül kell-e"
Python 3 alatt nem kell, az már tudtommal full Unicode, ékezettel, meg amit akarsz.
Még a fájlkezelésnél használnék context managert. Szerintem szebb, elegánsabb, és minden körülmények között automatikusan bezárja a fájlt:
with open(fajlnev, 'w') as f:
f.write(akarmi) -
justmemory
senior tag
válasz
EQMontoya
#664
üzenetére
Sziasztok!
Szerintem sincs szükség arra, hogy ha már "else", akkor a "kerdes" változónak másik értéket adjunk...
Illetve nem tudom, hogy a sys miért van importálva, használva nincsen
A fájl mentését én valószínűleg gtk-val oldanám meg, mert így ha terminálban adja meg a fájlnevet a user, akkor két dolog van, szerintem: vagy az abszolút elérési utat gépeli be (macera), vagy abba a könyvtárba fogja menteni a txt fájlt, amelyben a script fut...
Tennék bele egy olyan apróságot is, hogy az "i" és "n" betűkön kívül mást ne tudjon megadni a user, mert ebben a formában ha nem "i"-t nyom, azt "n"-nek fogja érzékelni a program.
Az elejére valószínűleg betennék még annyit, hogy
#!/usr/bin/python - nem feltétlenül szükséges, csak könnyebb futtatni;
#-*- coding:Utf-8 -*-; nem tudom, hogy ez utóbbi feltétlenül kell-e; python 2.5-öt használok (régi, tudom, de ez van), ott az ékezetes karakterek miatt kell; nem tudom, hogy a 2.7 vagy akár a 3 tudja-e kezelni alapból az ékezetes karaktereket. -
Oryctolagus
tag
Jó azért be kell vallanom, hogy nem saját fejből dolgoztam.
Csak azt tudtam, hogyan kellene működnie és mivel lehetne megvalósítani.
Lehet még bennem van az a fél év az egyetemen, amikor c++ kellett tanulnom.
Nagyon nagyon büszke lennék magamra, ha az érettségi feladatokat meg tudnám oldani. -
Noddy
senior tag
válasz
Oryctolagus
#662
üzenetére
Szerintem jó kis programot készítettél
Én is most ismerkedek a pythonnal és én se tudtam volna elsőre tökéletesen megcsinálni, pl a random string generálást eddig nem ismertem. Csak feltűnt, hogy bár létre hoztad a q változót nem hivatkoztál rá. -
Oryctolagus
tag
Egy kicsit bekavartam már magam a végére, kezdő vagyok.
Jó lenne egy emelt szintű érettségi és gondoltam belevágok.
Kerestem olyan témát ami érdekel.
Ez a jelszó generáló program jutott először eszembe.
Lehetne még fejlesztgetni, de már örültem, hogy egy majdnem jó progi elkészült. -
Noddy
senior tag
válasz
Oryctolagus
#659
üzenetére
import random
import string
import sys
import os
s=string.digits+string.punctuation+string.ascii_letters
q=str(''.join(random.sample(s,10)))
print ('Az Ön jelszava')
print (q)
kerdes=input("Másikat, i vagy n?")
while kerdes==('i'):
q=str(''.join(random.sample(s,10)))
print (q)
kerdes=input("Másikat, i vagy n?")
else:
kerdes==('n')
mentes=input('Szeretné menteni .txt fájlban?, i vagy n?')
if mentes==('i'):
h=input('A fájl helye legyen:')
os.chdir(h)
f=open(input("Adja meg a fájl nevét:")+'.txt','w')
f.write(q)
f.close()
print('Köszönöm, hogy ezt a programot választotta.')
print('Köszönöm, hogy ezt a programot választotta.')Elvileg így most működik, de az os.chdir() nem tudom hogy működik konzolban, mármint, hogy kell megadni, hogy hova mentsen.
-
Noddy
senior tag
válasz
Oryctolagus
#659
üzenetére
Ha az elkészült jelszó a q változóban van, miért nem azt íratod ki és miért generáltatsz újat a .join(random.sample(s,10) sorral?
Nem úgy kellene, hogy:
q=str(''.join(random.sample(s,10)))
print ('Az Ön jelszava')
print (q)És ugyan így a fájlba íratásnál is.
-
Oryctolagus
tag
Sziasztok!
Akadt egy kis problémám az alábbi kóddal.
Ez egy jelszó készítő program, a problémám pedig az, hogy amikor menteni akarom txt-be akkor nem azt menti ami az utolsó képernyőre kiírott jelszó volt volt.
Kellene egy új változó aminek az értéke mindig az utolsó kiírott jelszó lesz?Köszönöm a segítséget!
import random
import string
import sys
import os
s=string.digits+string.punctuation+string.ascii_letters
q=str(''.join(random.sample(s,10)))
print ('Az Ön jelszava')
print (''.join(random.sample(s,10)))
kerdes=input("Másikat, y or n?")
while kerdes==('y'):
print (''.join(random.sample(s,10)))
kerdes=input("Másikat, y or n?")
else:
kerdes==('n')
#print('Köszönöm, hogy ezt a programot választotta.')
mentes=input('Szertné menteni .txt fájlban?, y or n?')
if mentes==('y'):
h=input('A fájl helye legyen:')
os.chdir(h)
f=open(input("Adja meg a fájl nevét:")+'.txt','w')
f.write((''.join(random.sample(s,10))))
f.close() -
#82595328
törölt tag
válasz
cousin333
#655
üzenetére
"Na, milyen nagy élet lett itt hirtelen...
"Pedig az az igazság, hogy végre sikerült befejeznem életem első "programját" pythonban. Szóval egy darabig csendben leszek.

Majdnem 100 sor lett. Még egy pici grafikus felületet is gyártottam(átvettem valahonnan) neki. Igaz látszik, hogy nagyon kezdetleges, tele van gyerekbetegségekkel, de kész van. Az alap problémát megoldja.A canvas modult megjegyzem. Bár egyelőre az osztályok jelentik számomra a következő lépést. Modulból így is épp eleget használtam. Viszont osztályok nélkül nem tudok tovább lépni.
-
#82595328
törölt tag
válasz
csaszizoltan
#656
üzenetére
Köszönöm még egyszer. Azzal végül is nem lehetett vádolni, hogy nem tudom, mit akarok.

-
cousin333
addikt
válasz
#82595328
#654
üzenetére
Na, milyen nagy élet lett itt hirtelen...

A Python 3-ban a print már egy függvény, így ezt is lehet használni:
with open('D:\\teszt.csv', 'w') as f:
for sor in lista:
print(*sor, sep=', ', file=f)Működik

De akkor is a pandas a legegyszerűbb, csak itt a lista egy Pandas.DataFrame objektum:
import pandas as pd
...
lista.to_csv("D:\\teszt.csv", sep=',')ui: Ezt gyorsan felejtsd el...

for i in range(len(lista)):Helyette inkább használd így:
for elem in lista:Vagy ha mindenképpen kell az index is, akkor így:
for i,elem in enumerate(lista): -
#82595328
törölt tag
válasz
csaszizoltan
#653
üzenetére
Köszönöm!
Ez lett a vége:with codecs.open('kesz.csv','w',encoding='utf-8') as f:
for i in lista:
f.write(', '.join([str(elem) for elem in i]) +'\n')Legközelebb használd a Programkód gombot!
[ Módosította: Karma ]
-
csaszizoltan
csendes tag
válasz
#82595328
#647
üzenetére
lista = ['Kis', '2015/1', '2015-01-02', '2016-01-10', 1000, 37, 1651]
string_lista = []
for elem in lista:
string_lista.append(str(elem))
print ', '.join(string_lista)console:
Kis, 2015/1, 2015-01-02, 2016-01-10, 1000, 37, 1651vagy egyszerűbben, de nem annyira érthetően.
lista = ['Kis', '2015/1', '2015-01-02', '2016-01-10', 1000, 37, 1651]
print ', '.join([str(elem) for elem in lista])Remélem az első kód magáért beszél, ha nem, csak nyugodtan kérdezz!
-
axioma
veterán
válasz
EQMontoya
#650
üzenetére
OK, a lenyeg hogy a megoldas egy harmadik
en csak netto algoirasra - versenyek - hasznalom a pythont azt se regota, sorry, nem kellett volna beleszolnomSzerk. korrekt, sztem volt ahol en is hasznalhattam volna csak eszembe nem jutott keresni - nekem a list, map, set es problemamentes int az ami altalaban fontos a pythonbol, de akkor mar erdemes mas nyelvi finomsagokat is megtanulni
-
axioma
veterán
válasz
#82595328
#647
üzenetére
Vagy megcsinalod azt, hogy a beepitett str(lista[i]) helyett te mesz rajta vegig es osszeraksz egy stringet; vagy az str(lista[i]) stringet gyurogatod, amig jo nem lesz. Utobbi a kevesbe szep megodlas... elobbinel az utolso vesszo (vagy tab) eltuntetes, vagy if-ezes a nemszep.
Szerk. hat igen, a szogletes zarojelben i index egy italic formazas lett neki is... ott van az eredetileg.
-
#82595328
törölt tag
válasz
#82595328
#634
üzenetére
Köszönöm az eddigi segítséget. Eljutottam a fájlba írásig. Itt viszont olyan gondom van, hogy adott egy lista:
[[['Kis', '2015/1', '2015-01-02', '2016-01-10', 1000, 37, 1651], ['Nagy', '2015/2', '2016-02-02', '2016-02-06', 50000, 44, 2159], ['Törpe', '2015/3', '2016-03-03', '2016-04-08', 500000, 346, 197]]Ezt fájlba írtam az alábbi paranccsal:
with codecs.open('kesz.csv','w',encoding='utf-8') as f:
for i in range(len(lista)):
f.write((str(lista)+'\n'))Ez majdnem jó is lenne, csak ezt kapom:
['Kis', '2015/1', '2015-01-02', '2016-01-10', 1000, 37, 1651]
['Nagy', '2015/2', '2016-02-02', '2016-02-06', 50000, 44, 2159]
['Törpe', '2015/3', '2016-03-03', '2016-04-08', 500000, 346, 197]Viszont ezt szeretném. Az se baj, ha ',' helyett tab van.
Kis, 2015/1, 2015-01-02, 2016-01-10, 1000, 37, 1651
Nagy, 2015/2, 2016-02-02, 2016-02-06, 50000, 44, 2159
Törpe, 2015/3, 2016-03-03, 2016-04-08, 500000, 346, 197 -
justmemory
senior tag
válasz
justmemory
#645
üzenetére
Végül a pandas 0.2-t sikerült feltennem forrásból úgy, hogy működjön is (a 0.1 valamiért scipy hibát írt ki az egyik .so fájlra...). Tudom, hogy régi, de a numpy verzióm 1.4.0, python 2.5... Az alapdolgokra és tanulni azért remélem jó lesz

-
justmemory
senior tag
válasz
cousin333
#644
üzenetére
köszi. Sajnos a pip install nem működik; azt nem tettem hozzá - és ezért kérdeztem rá az arm-ra -, hogy telefonra tenném föl, és a nokia n900 alap python-ja sajnos package error-t ír (már korábblan is próbáltam).Végső soron nem baj a függőség, legfeljebb forrásból próbálom feltenni; a mysql-hez szükséges modult is csak így tudtam föltenni. Úgy látom itt is ezt kell próbáljam, csak meg akartam spórolni a küzdést

Még az előző dátumos kérdéshez: úgy láttam sql szerver is felmerült a kérdésben; mivel a python-nak van sql-hez modulja, ha sql adatbázisból kerül beolvasásra, akkor eleve lehet már a bekérésnél is picit "játszani" a dologgal... Mármint ha nem csv-ből kerül beolvasásra, hanem esetleg közvetlenül az adatbázisból.
-
cousin333
addikt
válasz
justmemory
#642
üzenetére
pip install pandas ???

Talán mehetne, legfeljebb a C-optimalizált részek helyett a Python kód futna. Tehát működne, csak lassabban. Ha viszont nincs dateutils, akkor szerintem nem települ, mert még a 0.12-es verziónak is függősége.
-
cousin333
addikt
válasz
#82595328
#634
üzenetére
Az első pár dologban nem tudok kellően segíteni, de legalább a programot nem is kell lefordítani...

A leírtak alapján továbbra is a pandas modult favorizálnám, mivel nagyon sokrétűen használható. Hogy a példádnál maradjak:
- képes beolvasni a csv és más strukturált fájlokat
- beolvasásnál meg lehet mondani, hogy melyik oszlop(ok) tartalmaznak dátumot (pl. akár akkor is, ha az év, hónap, nap és idő 4 külön oszlopban szerepel)
- a dátum értelmezéséhez megadható saját függvény, de az ésszerűség határain belül képes értelmezni őket. Például az alábbi tesztfájlt gond nélkül beolvassa:
Szam,Datum,Szoveg,Pont
11,2016-01-01,Valami,12
21,2016-03-05,Masik, 23
31,2016-1-5,Harmadik,34
41,2016-feb-8,Negyedik,48
51,2016.08.12,Otodik,56Ehhez csak az alábbi kódot használtam:
import pandas as pd
data = pd.read_table('D:\\pandas_test.txt', sep=',', parse_dates=[1])Az eredmény pedig egy Pandas.DataFrame objektum lesz:
>>> data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 4 columns):
Szam 5 non-null int64
Datum 5 non-null datetime64[ns]
Szoveg 5 non-null object
Pont 5 non-null int64
dtypes: datetime64[ns](1), int64(2), object(1)
memory usage: 240.0+ bytesLátható, hogy a Datum oszlop típusa datetime64. A beolvasott táblázat valahogy így néz ki (A legelső oszlop az index, amit jelen esetben ő maga generált):
>>> print(data)
Szam Datum Szoveg Pont
0 11 2016-01-01 Valami 12
1 21 2016-03-05 Masik 23
2 31 2016-01-05 Harmadik 34
3 41 2016-02-08 Negyedik 48
4 51 2016-08-12 Otodik 56A dt.date függvényednek szükséges formátumot is könnyen előállíthatod:
>>> x = data['Datum']
>>> x.dt.date.values
array([datetime.date(2016, 1, 1), datetime.date(2016, 3, 5),
datetime.date(2016, 1, 5), datetime.date(2016, 2, 8),
datetime.date(2016, 8, 12)], dtype=object)Ezt már megetetheted a függvényeddel. De igazából nem is biztos, hogy kell, hiszen az oszlop már dátum formátumú.
-
justmemory
senior tag
Ha már belekeveredtem itt a dolgokba: arról esetleg van infója valakinek, hogy a python pandas ARM architektúrán elfut-e...? Az angol nyelvű oldalakon különböző véleményeket olvasok erről... Numpy van, viszont olyan verziót keresek, amihez nem kell a python-dateutils illetve pytz; már ha van ilyen... Eleve python 2.5-höz gondoltam feltenni.
-
EQMontoya
veterán
válasz
justmemory
#639
üzenetére
#example timestamp: Mar 30 11:49:04.880 - the last part can be milisecs or microsecs (6 digits) as well.
timestamp_regex = re.compile('[A-Z][a-z][a-z] \d+ \d+:\d+:\d+\.\d+')
time_in_line = datetime.strptime(timestamp_regex.findall(msg)[0],"%b %d %H:%M:%S.%f")Szóval ilyenkor ez van.

-
justmemory
senior tag
válasz
EQMontoya
#638
üzenetére
Igen, én első körben az if-re gondoltam, de a try is jó, nyilván.
Az a gond, hogy nem tudni, hogy a kétféle dátumformátum honnan és milyen módon kerül beolvasásra, de gondolom egy fájl-ból, simán str-ként vagy int-ként.Ha a formátuma változhat, akkor arra ki kell találni valamit, mert nyilván a sok try és if nem szép
Arról nem is beszélve, hogy a formátumonbanl akár az is változhat, hogy 2016-01-01 vagy 2016-1-1... 
Regex-et még nem írtam, nem volt rá szükségem...
Relatíve alapszinten vagyok még, bár erre nincsen rálátásom, mert amúgy közöm nincs az informatikához végzettségileg -
EQMontoya
veterán
válasz
justmemory
#637
üzenetére
Szerintem még kétféle formátumra is elég rusnya lesz.
Kb. megoldások:
-Felismered Te magad, hogy melyik formátum, és ifelsz.
-try strptime(format 1) expect: blabla strptime(format 2)... (azaz megpróbálod az egyikkel, ha nem sikerül, a másikkal is)
-Írsz valami regexet, hogy mi lehet a pattern. Aki nem használt még regexet, az szenvedni fog. -
justmemory
senior tag
-
EQMontoya
veterán
válasz
justmemory
#635
üzenetére
Az egyetlen baja az strptime-nak, hogy flexibilitása szerintem egy márványtömbbel vetekszik.
Ha kicsit is változik az idő kiírásának formátuma, szórja az exceptiont, mint muter a lisztet a rétes alá.
Kivéve, ha írsz egy elég okos regexet a format részbe, de úgy meg már nem sokkal könnyebb használni, mint megcsinálni kézzel.
Az strftime viszont tényleg baba. -
justmemory
senior tag
válasz
#82595328
#634
üzenetére
Szia(sztok)!
Autodidakta pythonozó vagyok, leginkább öncélú szórakozásképpen írok magamnak programokat, tehát közel sem biztos, hogy a válaszom megfelelő; javítson ki, aki okosabb ebben!
Szerintem nem kell split; .strptime és .strftime átalakításokkal sok mindent el lehet érni attól függően, hogy mi a végcél.
Kiírni majd az open("fájlnév", "rw")-el tudod például.
-
#82595328
törölt tag
válasz
cousin333
#631
üzenetére
Ha konkrét teendőt is írsz, akkor talán kódot is tudok adni hozzá.
Hát a konkrét teendő kb. ez
:
Megtanulni pythonul + grafikus felület + sql szerver. A program lefordítása win-re és linuxra.A viccet félretéve a kódot már megírtam, amit le akarok futtatni, csak be kellene ágyaznom ebbe a programba. A gondom az, hogy beolvasott sor dátumot is tartalmaz, amit a datetime modulnak át kellene adnom.
A dátum ilyen formátumú lehet: 2016-01-01 vagy 2016.01.01
A dtdate függvénynek pedig így kellene előállítanom: (2016,1,1). Na ezt nem tudom, egyelőre hogy kell. Bár gondolom splittel,if '-' in dátum
spit1
elif '.' in dátum
spit2Igaz egyelőre azt sem tudom, hogy kell fájlba kiírni a végeredményt, de az menni fog, csak még nem jutottam el az anyagban odáig.
-
cousin333
addikt
válasz
EQMontoya
#632
üzenetére
Melyik Python verzió volt? A 3-asban nyilván iterátort használ, minden ciklusban kér (és kap) pontosan egy új sort, ezáltal kevés memóriát fogyaszt. Akkor tölti be az egészet egyszerre, ha listát készítesz belőle. Viszont a Python for ciklus nem a sebességéről híres, de talán a fájllal könnyebb dolga van, bár az sem fix, hogy összefüggő memóriacímen helyezkedik el.
Én a fájl olvasgatásnál mondjuk a numpy genfromtxt függvényét vetettem össze a pandas from_table függvényével és meglepetésre utóbbi látványosan gyorsabb volt.
-
EQMontoya
veterán
válasz
cousin333
#631
üzenetére
Már csak azért sem, mert a rengeteg I/O művelet aligha tesz jót a teljesítménynek.
Az a durva, hogy nem nagyon.
Mostanság dolgoztam egy logminer alkalmazáson, amit pythonban raktam össze, és a sima open + soronkénti iterálásnál cache-el, chunk-kal, mindenhogy próbáltam jobbat írni, de nem sikerült.
Nagyon jól meg van írva alatta az API, és szerintem behúzza memóriába kb. az egész filet.
Pedig néhány gigás textfile-okat olvasgattam, szóval elég jól mérhető lett volna a különbség. -
cousin333
addikt
válasz
#82595328
#629
üzenetére
Már írták, hogyan lehet két with-et egymásba ágyazni, Ettől függetlenül én még nem ijednék meg pár ezer sorocskától, hanem egyben beolvasnám, hacsak nem kvarcórán akarod futtatni...
Már csak azért sem, mert a rengeteg I/O művelet aligha tesz jót a teljesítménynek.Fejlécet tartalmazó, több oszlopos csv fájlra meg javaslom a pandas modult. Van pl. külön egy read_csv függvénye, ami igen gyorsan képes nagy mennyiségű adatot beolvasni és jónéhány trükköt is ismer. Ezt szintén gyorsan képes feldolgozni, soronként, oszloponként vagy elemenként, majd a to_csv függvénnyel kiírathatod. Arra is van lehetőség, hogy kisebb csomagokban (chunk) olvasd és írd a fájlt. Néhány millió sornál már én is elgondolkoznék ezen a megoldáson.
Biztosra veszem, hogy lényegesen gyorsabb lesz, mint a sima open függvény meg a soronkénti iterálás. Ha konkrét teendőt is írsz, akkor talán kódot is tudok adni hozzá.
-
#82595328
törölt tag
Egy olyan kérdésem van, hogy hogy tudok egyszerre 2 fájl-lal dolgozni. Az egyikből olvasni, a másikba írni.
Hogy érthető legyen itt egy példa feladat:
Azaz teszem azt van egy listám(forras.csv):
Név Összeg
Kis 1000
Nagy 500
Pici 200Beolvasom soronként listába, és mondjuk hozzáadok minden összeghez 10-t.
Név Összeg
Kis 1010
Nagy 510
Pici 210Aztán kiírom egy másik fájlba. Pl: cél.csv
Ezt így szerintem meg tudom csinálni.
A gondom az, hogy mi van akkor, ha a lista több 1.000 elemet tartalmaz? Mert akkor én úgy csinálnám, hogy:
1. Megnyitom olvasásra a forrás fájlt.
2. Megnyitom append-del a cél fájlt.
3. Elkezdem soronként beolvasni a forrásfájlt.
4. Elvégzem a műveletet.
5. Kiírom soronként a célfájlba.
5. Ha kész bezárom mindkét fájlt.Na ezt hogy kell csinálni?
Mert itt két (with) open-t kellene egymásba ágyazni. Lehet ilyet? -
cousin333
addikt
Köszönöm!
Így azért már más a megoldás, hiszen a feladat szerint nem lehet egyszerre beolvasni a teljes fájlt. Ebben az esetben az első 2 példa továbbra is érvényes, a harmadiktól kezdve más megközelítés szükséges. Én összevonnám a feladatokat, hogy a fájlt csak egyszer kelljen megnyitni és iterálni benne. Remélem nem maradt ki semmi, nem futtattam le a kódot:
with open("kiserlet.txt", "r") as f:
fej_db = 0 # Fejek száma
iras_db = 0 # Írások száma
dupla_db = 0 # A pontosan két egymást követő fejek száma
csakfej = 0 # A csak fejekből álló sorozat aktuális hossza
csakfej_max = 0 # A csak fejekből álló sorozat maximális hossza
# A legutóbbi három dobás tárolása
e1, e2, e3 = None, None, None
# Szépen soronként végiglépdelünk a fájlon
for line in f:
line = line.strip('\n')
if line == 'F':
fej_db += 1
# Számolás a 6. feladathoz
csakfej += 1
csakfej_max = max(csakfej_max, csakfej)
if line == 'I':
iras_db += 1
# Számolás a 6. feladathoz
csakfej_max = max(csakfej_max, csakfej)
csakfej = 0
# Számolás az 5. feladathoz
if line == 'I' and e1 == 'F' and e2 == 'F' and e3 == 'I':
dupla_db += 1
# Eltároljuk a legutóbbi dobásokat
e1, e2, e3 = line, e1, e2
# 3. feladat: Az összes dobás száma a fejek és írások összege
ossz_db = fej_db + iras_db
print('A dobások száma: {}'.format(ossz_db))
# 4. feladat
print('A fejek relatív gyakorisága: {:.2%}'.format(fej_db/ossz_db))
# 5.feladat
print('A dupla fejek száma: {}'.format(dupla_db))
# 6. feladat
print('A leghosszabb fej-sorozat: {} dobás'.format(csakfej_max)) -
Karma
félisten
válasz
cousin333
#626
üzenetére
Itt a feladatsor. A családban pont érettségi làz van, ezért elő tudtam keresni, talán segít a kérdésekben.
Egyébként a nyelvi elemekből és az alap Python telepítésben lévő bármilyen modult lehet használni.
-
cousin333
addikt
válasz
szaszayanou
#624
üzenetére
Nem találtam a feladatsort, ezért az általad írtakra hagyatkozom:
Az első feladatban nem zártad be a megnyitott fájlt. Ezt megelőzheted a with használatával, az automatikusan bezárja, és amúgy is a preferált mód. Megnyitjuk a fájlt, egy lépésben beolvassuk és a sortörések (\n) mentén szétszedjük:
with open('D:\\kiserlet.txt', 'r') as f:
kiserlet = f.read().split('\n')A második példában feltétlenül számokat kell beírni? Használhatnád a random könyvtár choice függvényét is, ami egy lista-szerű elemből választ ki egyet találomra. Ez a lista most persze fej vagy írás:
valasztek = ('F', 'I')
tipp = input("Fej (F) vagy írás (I)? ")
if tipp == random.choice(valasztek):
print("Eltaláltad!")
else:
print("Sajnos tévedtél!")A harmadik feladat megoldása jó. Esetleg még így lehetne:
print("A kiserlet {} mintabol allt.".format(len(kiserlet)))
Tekintve, hogy a fenti beolvasás nyomán a kiserlet egy lista, a negyedik feladat megoldásához felesleges a for ciklus, és használhatjuk a sztring formázást is a céljainkhoz.
arany = kiserlet.count("F") / len(kiserlet)
print("A fejek relatív gyakorisága {:.2%}".format(arany))Az utolsó feladat pontos célja nem elég világos számomra, ezért most feltételezem, hogy nem lapolódhatnak át az "FF"-ek, tehát az "FFF" csak egynek számít, az "FFFF" meg kettőnek. Ebben az esetben használhatunk beépített függvényt, de ehhez a listánkból először egy sztringet gyártanunk a join használatával. Így egy lépésből megvan a kívánt szám:
dupla = "".join(kiserlet).count("FF")
print("A két egymást követő fejek száma: {}".format(dupla))Tényleg, mit lehet használni egy ilyen vizsgán?
-
EQMontoya
veterán
válasz
szaszayanou
#624
üzenetére
Ha jól sejtem, a végén kapsz egy exception-t.

Index <x> is out of bounds.if kiserlet[szamlalo] == "F" and kiserlet[szamlalo+1] == "F":
Itt ugyanis szamlalo+1 simán túlindexel.
További problémák a kóddal, hogy rosszul számolsz.
Mert 'IFFFI' sorozatot beszámítod kétszer, pedig ha jól értem, Neked azok az esetek kellenek, amikor pontosan két fej van egymás mögött. -
szaszayanou
aktív tag
válasz
EQMontoya
#623
üzenetére
import random
asd = open("kiserlet.txt", "r")
kiserlet = asd.read()
print "On szerint fej lesz vagy iras?"
tipp=input("Irjon be 0-t ha fej, vagy egyest ha iras: ")
gepi=random.randrange(0, 2)
if int(tipp)==gepi:
print "Eltalalta"
else:
print "Sajnos tevedett"
#3-ik feladat
print "a feleadatbeli kiserlet ", len(kiserlet), "darab mintabol all."
#4-ik feladat
fejekszama = 0
for i in kiserlet:
if i == "F":
fejekszama = fejekszama + 1
fejekszama = float(fejekszama)
print "a fejek relativ gyakorisaga: ", (fejekszama/len(kiserlet))*100, "%."
szamlalo = 0
ketfej= 0
while szamlalo < len(kiserlet):
if kiserlet[szamlalo] == "F" and kiserlet[szamlalo+1] == "F":
ketfej = ketfej +1
szamlalo = szamlalo + 1
else:
szamlalo = szamlalo + 1
print ketfej -
EQMontoya
veterán
válasz
szaszayanou
#622
üzenetére
Van baj, de rakd be az egész kódot, úgy okosabbak leszünk.
-
szaszayanou
aktív tag
Sziasztok!
Érettségi feladatokat oldok, a konkrét esetben 2015 októberit.
A feladat lényege: van egy txt fájl, amiben érme feldobások eredményei vannak (F a fej, I az írás). Minden eredmény új sorban van.
Meg szeretném számolni, hogy hányszor dobtak kétszer fejet egymás után. A fájl kiserlet nevű objektumba való beolvasása után erre az alábbi kódot találtam ki, de nem igazán működik:
szamlalo = 0
ketfej= 0
while szamlalo < len(kiserlet):
if kiserlet[szamlalo] == "F" and kiserlet[szamlalo+1] == "F":
ketfej = ketfej +1
szamlalo = szamlalo + 1
else:
szamlalo = szamlalo + 1
print ketfej -
EQMontoya
veterán
válasz
DrojDtroll
#619
üzenetére
Az, hogy a modulod hivatkozik egy másikra, ami még nincs meg neked.
Olvasd el a hibaüzit.
-
DrojDtroll
veterán
Van egy python könyvtár, amit nem sikerül telepítenem. Letöltöm a könyvtárat.
tar -zxvf -el kicsomagolom
tar -zxvf pynaoqi-python-2.7-naoqi-x.x-linux32.tar.gzFelveszem a kicsomagolási könyvtárat a pythonpath-be.
export PYTHONPATH=${PYTHONPATH}:/path/to/python-sdk
http://doc.aldebaran.com/2-1/dev/python/install_guide.html
Ez alapján nincs más dolgom, mégis hibaüzenetet kapok.Python 2.7.10 (default, Oct 14 2015, 16:09:02)
[GCC 5.2.1 20151010] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import naoqi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/pynaoqi-python2.7-2.1.4.13-linux64/naoqi.py", line 7, in <module>
import qi
File "/opt/pynaoqi-python2.7-2.1.4.13-linux64/qi/__init__.py", line 72, in <module>
from _qi import Application as _Application
ImportError: libqipython.so: cannot open shared object file: No such file or directorymi lehet a gond?
-
Szenty
tag
Sajnos annál a magyar könyvnél nem fogsz találni jobbat.
Szerinted. Szerintem pedig találhat, például Mark Summerfieldtől Python 3 programozást. Jól struktúrált, érthető, és főleg nem elavult a Tanuljunk meg programozni Python nyelvenhez képest.
-
csaszizoltan
csendes tag
válasz
cousin333
#611
üzenetére
Az igaz, hogy a Udacity-n (angolul) tanultam meg a Pythont valamelyest és ott is el volt sütve pár szakkifejezés, de azért a könyvben nem kéne minden 2. mondatban elsütni egy-egy húzósabb szót, szerintem alkalmatlan ez a könyv az abszolút kezdőknek, tulajdonképpen pár oldalba néztem bele, és megijedtem, hogy ezt (a könyvet) kéne ajánlani beginnereknek, amit nem is tudnék jó szívvel megtenni, pedig a nyelv alkalmassá teszi önmagát ilyesmire például interpreter, az indentálással struktúrálás, kevés nyelvi elem stb.
-
cousin333
addikt
válasz
csaszizoltan
#609
üzenetére
Pedig én is azzal kezdtem, igaz, nekem már nem volt újdonság a for ciklus fogalma (bár a Python kicsit máshogy használja).
Vannak "emelkedettebb" részek, de át is lehet őket ugrani. Annyit biztos ér, mint a sulinetes Free Pascal reklám
Nagyobb probléma, hogy öreg, mint az országút, de az alapokhoz meg így is elég.De ha megy az angol, akkor persze több könyv is ajánlható. Viszont nem vagyok kezdő programozó (bár profi sem), így bevallom elég nehéz beleképzelnem magamat az ő helyzetükbe.
-
sonar
addikt
válasz
csaszizoltan
#609
üzenetére
Sajnos annál a magyar könyvnél nem fogsz találni jobbat.
A nyelvezete is teljesen rendben van. Egyszerűen bizonyos fogalmakat nem lehet máshogy magyarázni. -
csaszizoltan
csendes tag
válasz
cousin333
#608
üzenetére
A magyar könyvre én is rábukkantam, de nem normális a szerzője. Nem tudom, hogy miért kell akadémikus szóhasználattal bevezetni az olvasót az alapokba, aki nem tud programozni, annak én egyáltalán nem ajánlanám ezt a könyvet, ebből nem lehet az alapokat nyugodtan megtanulni.
-
cousin333
addikt
Egy magyar könyv: [link]
Ha meg megy az angol, akkor jó néhány könyv közül lehet válogatni. Pl. Think Python, Dive Into Python vagy mondjuk a Learning Python, ami elég alapos.
A tipikus programozási struktúrák alapvető megértéséhez ott a Wikipedia: pl. ciklusok.
-
csaszizoltan
csendes tag
-
mark!
őstag
válasz
evilskati
#603
üzenetére
Most egy ilyen problémával állok szemben:
>>> a='The little fish'
>>> b='become a big fish'
>>> c=a+b
>>> print ("c")
cVagy 10x próbáltam, egyszer sem rakta össze a 2 mondatot. Mit rontok el?
Illetve próbáltam a Fibonacci-sorozatot, ott meg nem a számokat írta, hanem egy rakat b meg a betűt. -
evilskati
aktív tag
Szia!
Ha van androidos telefonkészüléked, és nagyjából megy az angol, akkor ajánlom a Learn Python (SoloLearn a fejlesztő) nevű alkalmazást. Játszva tanít, és az alapokon végigmegy. Kezdésnek jó szerintem. Persze komolyabb dolgokhoz kevés.
Esetleg ezt az online könyvet: [link]
-
mark!
őstag
Sziasztok!
Teljesen kezdő vagyok, talán a legalapvetőbb dolgokat tudom. Tényleg csak a legalapvetőbbeket ( else, if ezeket már nem értem ) Valaki nem tudná leírni az alapokat??
Új hozzászólás Aktív témák
- Gumi és felni topik
- TCL LCD és LED TV-k
- Azonnali alaplapos kérdések órája
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Samsung kuponkunyeráló
- Synology NAS
- Megérkezett a Google Pixel 7 és 7 Pro
- Hálózati / IP kamera
- Kecskemét és környéke adok-veszek-beszélgetek
- További aktív témák...
- AZONNAL KÉSZLETRŐL! AMD Ryzen 7 9800X3D 64GB 6000MHz RAM 2TB Gen4 SSD RTX 5090 32GB GDDR7 1200W
- AZONNAL KÉSZLETRŐL! Intel Core i5 14600K 64GB 6000MHz RAM 2TB Gen4 SSD RTX 5060 8GB FSP 750W
- AZONNAL KÉSZLETRŐL! Intel Core i5 14600K 32GB 6000MHz RAM 2TB Gen4 SSD RTX 5060 8GB FSP 750W
- AZONNAL KÉSZLETRŐL! Intel Core i5 14600K 32GB 6000MHz RAM 1TB Gen4 SSD RTX 5060 8GB FSP 750W
- BESZÁMÍTÁS! GIGABYTE A520M R5 5500 16GB DDR4 256GB SSD 1TB HDD GTX 1060 6GB Zalman T3 Plus 400W
- REFURBISHED - DELL Precision Dual USB-C Thunderbolt Dock - TB18DC
- Eladó Apple iPhone 15 Pro Max 256GB / Akku 90% / 12 hó jótállás
- KÉSZLETKISÖPRÉSI ULTRAAKCIÓ!!! SPACE BLACK MacBook Pro 14" M4 10C/10G 16GB 512GB Gar!
- Samsung Galaxy S23+ / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- Keresünk Galaxy S21/S21+/S21 Ultra/S21 FE
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest








Illetve próbáltam a Fibonacci-sorozatot, ott meg nem a számokat írta, hanem egy rakat b meg a betűt.
)

