2018. május 24., csütörtök

Gyorskeresés

Hozzászólások

(#1501) Trakk77 válasza balzamon (#1500) üzenetére


Trakk77
(újonc)

Köszi szépen!

(#1502) DamianB


DamianB
(fanatikus tag)

Üdv !
Segítséget szeretnék kérni Be Cube nevű iskola képzést hirdetett Pythonba munka mellett kezdeném el . Összefoglalóba lévő anyagot letöltöm . A kérdésem az lenne hallottatok erről az iskoláról mi a véleményetek ?
Segítséget előre is köszönöm!

OP3T | Clevo GPU :1080 CPU: 7700k SSD: PM 961 RAM : 16 GB Corsair

(#1503) balzamon válasza DamianB (#1502) üzenetére


balzamon
(lelkes újonc)

Az iskoláról nem hallottam. Én ezt nézegettem:
https://www.ruander.hu/python-tanfolyam.html
A kérdés az, hogy mit akarsz a Pythonnal elérni. Ez a tanfolyam - ha jól olvastam - elsősorban játékfejlesztésre tanít.

Igazság szerint rengeteg ingyen hozzáférhető anyag van a kezdő szinthez, simán meg lehet belőlük tanulni.

(#1504) sh4d0w válasza DamianB (#1502) üzenetére


sh4d0w
(PH! nagyúr)

Amit én ajánlanék, az a coursera.org python képzése. Online, minden leckét egy hét alatt kell átvenned a feladatmegoldásokkal együtt, tehát úgy osztod be az idődet, ahogy jólesik. Dr. Chuck jó fej, mi több, amerre a világban jár, szokott szervezni Out of office hours-t, azaz össze lehet vele futni egy kocsmában, dumálni vele és tényleg érthetően magyaráz. Persze angolul tudni kell. Még amit érdemes róla tudni: a michigani egyetemen ő okítja a programozást.

Ha marhasagot irok, vallalom a pofonokat erte a forumon, nem sirok a modiknak.

(#1505) axioma


axioma
(PH! addikt)

Van valakinek valami jo tippje pandas gyorstalpalohoz? [kb. 24h :) ] Nyilvan csak alapok kellenenek, de nem a szaraz doksi. Tegyuk fel, hogy numpy ismeret mar van (kezd lenni). Video is jo vagy fizetos minicourse, csak a keresgetessel tobb idom elmenne mint a talalat megemesztesevel.
Koszi elore is!

(#1506) DamianB


DamianB
(fanatikus tag)

Köszönöm a két segítséget. Angolom annyi van amit autodidakta modon tanultam . Semmiféle alapjaim nincsenek programozáshoz csak szeretném az ismereteimet bővíteni ki próbálni .

OP3T | Clevo GPU :1080 CPU: 7700k SSD: PM 961 RAM : 16 GB Corsair

(#1507) sh4d0w válasza DamianB (#1506) üzenetére


sh4d0w
(PH! nagyúr)

Továbbra is ajánlom Dr. Chuckot, nem megy bele a bonyolultabb részekbe, a kurzus címe is Programming for everyone.

Ha marhasagot irok, vallalom a pofonokat erte a forumon, nem sirok a modiknak.

(#1508) DamianB válasza sh4d0w (#1507) üzenetére


DamianB
(fanatikus tag)

köszi utána nézek :R

OP3T | Clevo GPU :1080 CPU: 7700k SSD: PM 961 RAM : 16 GB Corsair

(#1509) balzamon válasza DamianB (#1508) üzenetére


balzamon
(lelkes újonc)

Ha nem megy jól az angol, akkor én inkább ezeket javasolnám:
https://www.youtube.com/watch?v=b94xan31GQE&list=PLUJ_gtsj_JfVtZEXqfkhuSgmGVBHQlFSi - én ebből tanultam.
https://pythonidomar.wordpress.com/csak-szepen-sorban/ - ezt nem ismerem, de jónak tűnik.

Ezekből bőven megtanulod a kezdő kurzus anyagát.

Olvasnivalónak bár ezek Python 2-esek:
http://mek.oszk.hu/08400/08435/index.phtml
http://fullcircle.hu/category/sorozatok/python-sorozatok/page/2/

Ha megy az angol valamennyire, akkor ezt javaslom:
https://www.youtube.com/watch?v=HBxCHonP6Ro&list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_
Én jelenleg ebből tanulok, még vagy 10 videó van hátra.

(#1510) cousin333 válasza axioma (#1505) üzenetére


cousin333
(PH! kedvence)

Mit akarsz gyorstalpalni? Youtube videók: [link] :)

Aztán persze van könyv is: Python for Data Analysis.

Szerintem nem száraz a hivatalos dokumentáció sem, különösen a 10 perces bemutató. Kifejezetten jól dokumentált modul, sok rövid példával. Én is itt kezdtem az alapokkal: Series, DataFrame, Panel (utóbbi már nincs).

Az alap koncepciókat kell megérteni - az meg azért nem egy machine learning -, a többit meg a dokumentációból kikeresed, ahogy a szükség megkívánja. Például hogyan tudok két DataFrame-et egyesíteni oszlopok mentén [link]... stb.

Van már cheat sheet is: [link]

Ha mindenáron oktatást akarsz, akkor itt egy akció: [link]

A Jupyter Notebook használata persze alap az ismerkedéshez... :)

ui: én már ezt várom: [link]

[ Szerkesztve ]

(#1511) axioma válasza cousin333 (#1510) üzenetére


axioma
(PH! addikt)

Szuper, koszi! Tobbi maganban.

(#1512) gojko.m


gojko.m
(senior tag)

Sziasztok!
Érdeklődnék, hogy ismertek-e olyan egyszerű python programot, amivel egy weboldal forrását tudnám kinyerni?
Tehát, valami olyasmit kellene tudnia, amit a böngészők Ctrl+U billentyűkombinációja tud. Konkrétabban: bemenetként megadom az oldal URL címét, kimenetként pedig visszakapok egy szöveg fájlt, benne az oldal forrásával.

(#1513) sonar válasza gojko.m (#1512) üzenetére


sonar
(PH! addikt)

wget modul de létezik standalone kivitelben is (wget.exe windowsra)

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember….Your life – Your choices!

(#1514) gojko.m válasza sonar (#1513) üzenetére


gojko.m
(senior tag)

A wget.exe teljesen jó megoldás lesz. :R

Egyébként - ha már úgyis kéznél vannak a számítógépen - ez megoldható böngészővel és annak valamilyen parancssori kapcsolójával is? (Pl. IE vagy FF esetében.)

[ Szerkesztve ]

(#1515) sonar válasza gojko.m (#1514) üzenetére


sonar
(PH! addikt)

Nem tudom. wget-et használtam sokat linux alatt, pythonból is.
böngészőt erre használni szerintem kicsit erőltetett.

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember….Your life – Your choices!

(#1516) colomb2 válasza gojko.m (#1514) üzenetére


colomb2
(PH! addikt)
LOGOUT blog

Ott van pl selenium.
Wget helyett meg curl.

Vigyázat, csalok!

(#1517) gojko.m válasza colomb2 (#1516) üzenetére


gojko.m
(senior tag)

Köszönöm az ajánlott alkalmazásokat, de nem igazán lesznek jók arra a célra amire nekem kellene. Egyrészt, ha jól látom, a selenium használatát telepítés nélkül nem úsznám meg. Másrészt, első ránézésre elég bonyolultnak tűnik. A curl-t már korábban próbáltam. Sajnos, nem sikerült minden oldal forrását kinyerni vele. Persze lehet, hogy a választott fordítás vagy a használt kapcsolók nem voltak megfelelőek.
Egyenlőre minden wget melett szól: önálló fájl, kis méret, egyszerű használat.

(#1518) apezka válasza gojko.m (#1517) üzenetére


apezka
(tag)

Használj valamilyen offline böngészőt, bár vigyázni kell vele, hogyan állítod be, milyen link mélységig szedje le az oldalakat, mert könnyen "elszabadulhat"... Utána csak ki kell keresni azt a kódot ami neked kell. Bár a többségét azoknak is telepíteni kell, de van egy-két portable verzió is.

(Egyébként ez visszatalálós hozzászólás)

A stressz akkor jön, amikor nincs kit pofán b...!

(#1519) axioma válasza apezka (#1518) üzenetére


axioma
(PH! addikt)

Visszatalalasra ott a kedvencek... ha beallitod, azok mar nem foglaljak a helyet az "itt szoltam hozza" listabol sem.

(#1520) apezka válasza axioma (#1519) üzenetére


apezka
(tag)

Közben meglett az a link is... :R

A stressz akkor jön, amikor nincs kit pofán b...!

(#1521) K1nG HuNp


K1nG HuNp
(senior tag)

Ezt hogyan tudnám összehozni?

lista = [(1, 23), (2, 45) ... ]

def bevetel(kategoria, db):
penz = 0
if kategoria == 1:
penz += db*5000
if kategoria == 2:
penz += db*4000
...
return penz

print(bevetel(lista))

hibakód:
TypeError: bevetel() missing 1 required positional argument: 'db'

[ Szerkesztve ]

(#1522) EQMontoya válasza K1nG HuNp (#1521) üzenetére


EQMontoya
(PH! kedvence)

Szerintem próbáld meg kifejteni, hogy mit szeretnél, mert ebből nem jöttem rá.

Same rules apply!

(#1523) colomb2 válasza EQMontoya (#1522) üzenetére


colomb2
(PH! addikt)
LOGOUT blog

Vegigiteralna a listan es a tuple elemeit atadna elso es masodik parameterkent, szerintem.

[ Szerkesztve ]

Vigyázat, csalok!

(#1524) BoB válasza K1nG HuNp (#1521) üzenetére


BoB
(PH! addikt)
LOGOUT blog (1)

lista = [(1, 23), (2, 45), (3, 23)]

def bevetel(bev_lista):
penz = 0
for i in range(0, len(bev_lista)):
if bev_lista[i][0] == 1:
penz += bev_lista[i][1] * 5000
if bev_lista[i][0] == 2:
penz += bev_lista[i][1] * 4000
if bev_lista[i][0] == 3:
penz += bev_lista[i][1] * 3000
return penz

print(bevetel(lista))

You may corrupt the souls of men, but I am steel. I am doom.

(#1525) apezka válasza K1nG HuNp (#1521) üzenetére


apezka
(tag)

Hát nekem sem világos mit szeretnél de tessék:

lista = [(1, 23), (2, 45)]

def bevetel(kategoria, db):
penz = 0
if kategoria == 1:
penz += db*5000
if kategoria == 2:
penz += db*4000
return penz

db = 1
i = 0
while i < len(lista):
print(bevetel(lista[i][0], db))
i += 1

A stressz akkor jön, amikor nincs kit pofán b...!

(#1526) K1nG HuNp válasza BoB (#1524) üzenetére


K1nG HuNp
(senior tag)

Ő lesz az, köszi!

Kellett csinálnom egy tuplekből álló listát mely első eleme a színházi szék kategóriáját a második ezek darabszámát adta meg. Az első kategóriás szék drágább volt mint a 2, 3 stb..

Ezek utána a színház bevételét kellett megadnom

(#1527) BoB válasza K1nG HuNp (#1526) üzenetére


BoB
(PH! addikt)
LOGOUT blog (1)

Gyorsan írtam nem elég pythonos, ez ugyanaz csak jobban olvasható:

lista = [(1, 23), (2, 45), (3, 23)]

def bevetel(bev_lista):
penz = 0
for szek in bev_lista:
if szek[0] == 1:
penz += szek[1] * 5000
if szek[0] == 2:
penz += szek[1] * 4000
if szek[0] == 3:
penz += szek[1] * 3000
return penz

print(bevetel(lista))

[ Szerkesztve ]

You may corrupt the souls of men, but I am steel. I am doom.

(#1528) BoB válasza BoB (#1527) üzenetére


BoB
(PH! addikt)
LOGOUT blog (1)

lista = [(1, 23), (2, 45), (3, 23)]

def bevetel(kategoria, db):
penz = 0
if kategoria == 1:
penz += db * 5000
if kategoria == 2:
penz += db * 4000
if kategoria == 3:
penz += db * 3000
return penz

print(sum(map(lambda kat_db: bevetel(*kat_db), lista)))

Mostmár befejeztem :))

You may corrupt the souls of men, but I am steel. I am doom.

(#1529) EQMontoya válasza BoB (#1528) üzenetére


EQMontoya
(PH! kedvence)

De srácok, a kategória-ár hozzárendelesnek nem a függvényben van a helye, hanem egy dictben.

Same rules apply!

(#1530) BoB válasza EQMontoya (#1529) üzenetére


BoB
(PH! addikt)
LOGOUT blog (1)

Írhatod, én csak a hozott anyaggal dolgoztam :D

[ Szerkesztve ]

You may corrupt the souls of men, but I am steel. I am doom.

(#1531) EQMontoya válasza BoB (#1530) üzenetére


EQMontoya
(PH! kedvence)

price_categories = { 1: 5000, 2: 4000, 3: 3000 }
seats = [ (1,23), (2,45), (3,25) ]
print(sum([(price_categories[x[0]]*x[1]) for x in seats]))

Same rules apply!

(#1532) xAttilax


xAttilax
(senior tag)

Sziasztok!

Szeretnék egy kis segítséget/tanácsot vagy egy kis iránymutatást kérni.

Egy mappában lévő excel fájlokból szeretnék 1 adatot kiolvasni és listába rakni.

import xlrd

file_location = "C:/ana/egy.xlsx"
workbook=xlrd.open_workbook(file_location)
sheet=workbook.sheet_by_index(1)
elso=sheet.cell_value(1,1)
f=float(elso)
a=[f]

így kitudom olvasni egy excelből azt az adatot amit szeretnék, viszont úgy lenne optimális nekem ha valami for ciklussal végig szaladna a mappában lévő excel-eken (a név akár lehetne "1" "2" "3" a könnyítés véget) és bedobálná a számokat egy listába.

Szerintetek egyáltalán lehetséges a mappában való végig pásztázás?

[ Szerkesztve ]

"sem több, sem kevesebb, csak ember lehetek,"

(#1533) cain69 válasza xAttilax (#1532) üzenetére


cain69
(PH! kedvence)

van rá függvény, nem is egy: os.listdir() és os.scandir().
amivel visszatér, abból kimazsolázod azokat, amelyek neked kellenek, és berakod egy listába, amelyen végigmenve megnyithatod, ami neked kell.

[ Szerkesztve ]

Life is death, death is life. No life, no death. Life is life, death is death.

(#1534) xAttilax válasza cain69 (#1533) üzenetére


xAttilax
(senior tag)

nagyon köszönöm szépen :R :R
közben megoldottam egyszerű while-al, de elég "gagyi lett" és nem igazán rugalmas

"sem több, sem kevesebb, csak ember lehetek,"

(#1535) cousin333 válasza xAttilax (#1532) üzenetére


cousin333
(PH! kedvence)

Már írtak egy megoldást és neked is sikerült, de az én receptem erre a gyári glob modul, ami pontosan erre (is) jó:

import glob

file_lista = glob.glob("C:/ana/*.xlsx")

A file_lista az adott mappában lévő xlsx kiterjesztésű fájlok neveinek a listája lesz, az egyes elemek mindjárt mehetnek az open_workbook metódusnak.

A másik lehetőség a glob.iglob(), ami hasonlóan működik, de komplett lista helyett egy generátor függvénnyel tér vissza. Ez akkor jó, ha sok fájlod van (százas, ezres nagyságrend).

[ Szerkesztve ]

(#1536) xAttilax válasza cousin333 (#1535) üzenetére


xAttilax
(senior tag)

Ez is nagyon jó :R köszönöm szépen.

Így már a program első (könnyebbik) része tök faszán működik is . Nem szoktam programozni és pythont is csak érdeklődés szintjén tanulgatom, szóval tök jó, hogy megy. :)

Viszont a második rész ahol már 10db-ot kell beolvasni és külön generálgatni egy táblába már nekem lehet, hogy túl nagy falat lesz, szóval ha nem baj még zaklatni foglak titeket :)

"sem több, sem kevesebb, csak ember lehetek,"

(#1537) whatnot


whatnot
(őstag)

HumbleBundle Python csomagot árul jelenleg.

(#1538) alec.cs


alec.cs
(kvázi-tag)

Sziasztok!

Hogy lehetne azt megoldani, hogy egy függvény bemeneti paramétere lenne "x" perc, s a kimenete pedig megmondaná, hogy "y" óra, "z" perc?

Például:
ora_perc_kiir(70) -> ezt adná vissza: 1 óra 10 perc

(#1539) b.kov válasza alec.cs (#1538) üzenetére


b.kov
(senior tag)

Szia!

Rövid megoldás:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from datetime import timedelta

def ora_perc_kiir(mins):
return str(timedelta(minutes=mins))[:-3]

result = ora_perc_kiir(70).split(':')
print "{} óra {} perc".format(result[0], result[1])

szerk.: mondjuk ha túlcsordul az óra, akkor 1 napra váltja át a 24 órát

[ Szerkesztve ]

A matematikus olyan, mint egy vak ember egy sötét szobában, aki egy fekete macskát keres, ami valójában nincs is ott. /Charles Darwin/

(#1540) axioma válasza b.kov (#1539) üzenetére


axioma
(PH! addikt)

Huhh furcsan eltero elkepzeleseink vannak a rovidsegrol... en ezt irnam bele a fuggvenybe:
print x/60,"óra",x%60,"perc"
(jo, nalam 2-es python)

(#1541) KEAN válasza axioma (#1540) üzenetére


KEAN
(lelkes újonc)

...vagy egy másik "egysoros" megoldás:
print "{} ora {} perc".format(*divmod(x, 60))

[ Szerkesztve ]

"Persze, hogy tudtam, csak nem sejtettem!"

(#1542) b.kov válasza axioma (#1540) üzenetére


b.kov
(senior tag)

Persze jogos, de függvény szerepelt a kérdésben.

A matematikus olyan, mint egy vak ember egy sötét szobában, aki egy fekete macskát keres, ami valójában nincs is ott. /Charles Darwin/

(#1543) sztanozs válasza b.kov (#1542) üzenetére


sztanozs
(PH! addikt)
LOGOUT blog

akkor legyen függvény :D
ora_perc_kiir = lambda perc: '{} óra {} perc'.format(perc//60, perc%60)

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1544) b.kov válasza sztanozs (#1543) üzenetére


b.kov
(senior tag)

:R

A matematikus olyan, mint egy vak ember egy sötét szobában, aki egy fekete macskát keres, ami valójában nincs is ott. /Charles Darwin/

(#1545) alec.cs válasza sztanozs (#1543) üzenetére


alec.cs
(kvázi-tag)

Köszönöm az eddigi hozzászólásokat... :R

Egy kicsit pontosítanék, mert lehet, hogy nem megfelelően írtam le amire gondoltam.

Tehát:
- Olyan megoldás lenne a jó, amikor a bemenet x perc, a kimenet y óra z perc, vagy csak z perc.

Példák:
- ora_kiir(0) -> kimenet: "0 perc",
- ora_kiir(1) -> kimenet: "1 perc",
- ora_kiir(60) -> kimenet: "1 óra",
- ora_kiir(80) -> kimenet: "1 óra 20 perc",
- ora_kiir(195) -> kimenet: "3 óra 15 perc",
- ora_kiir(1810) -> kimenet: "30 óra 10 perc"

Valahogy így szeretném a visszakapott értékeket.

Ennek megfelelően mi lenne a megoldás?

Remélem így már érthetően írtam le...

(#1546) sztanozs válasza alec.cs (#1545) üzenetére


sztanozs
(PH! addikt)
LOGOUT blog

ora_perc_kiir = lambda perc: ('{} ora {} perc' if perc//60 else '{1} perc').format(perc//60, perc%60)

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1547) alec.cs válasza sztanozs (#1546) üzenetére


alec.cs
(kvázi-tag)

ora_perc_kiir = lambda perc: ('{} ora {} perc' if perc//60 else '{1} perc').format(perc//60, perc%60)

Oké, de ezeket, hogy írná ki ez a megoldás? Úgy, ahogy szeretném?

Tehát:
ora_kiir(42) és ora_kiir(1813) mit írna ki?

"42 perc" -et, illetve "30 óra 13 perc" -et írna ki?

(#1548) BoB válasza alec.cs (#1547) üzenetére


BoB
(PH! addikt)
LOGOUT blog (1)

Miért nem próbálod ki? :F

You may corrupt the souls of men, but I am steel. I am doom.

(#1549) sztanozs válasza alec.cs (#1547) üzenetére


sztanozs
(PH! addikt)
LOGOUT blog

print(ora_perc_kiir(40))
40 perc
print(ora_perc_kiir(140))
2 óra 20 perc

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1550) Dare2Live


Dare2Live
(PH! nagyúr)

Könyvet, oktatási anyagot... tudnátok ajánlani Pythonhoz?

Régen C/Javazgattam de már ~10 semmi komoly nem volt de most újra kelleni fog és Python.

Szerintem.... The things we make ... make us.  -~- ..And on the 7th day, GOD went windsurfing...

(#1551) BoB válasza Dare2Live (#1550) üzenetére


BoB
(PH! addikt)
LOGOUT blog (1)

[link]

You may corrupt the souls of men, but I am steel. I am doom.

(#1552) cousin333 válasza Dare2Live (#1550) üzenetére


cousin333
(PH! kedvence)

(#1553) cousin333 válasza alec.cs (#1545) üzenetére


cousin333
(PH! kedvence)

Szerintem ez egy kézenfekvő megoldás, de nyilván lehet cifrázni:

def fugg(percek):
ora, perc = percek // 60, percek % 60

if ora and perc:
print('{0} óra {1} perc'.format(ora, perc))
elif ora and not perc:
print('{0} óra'.format(ora))
else:
print('{0} perc'.format(perc))

ui: Használd te is a Programkód kapcsolót. Különösen Pythonnál...

Ugyanez a legújabb, 3.6-os Pythonban még szebb:

def fugg(percek):
ora, perc = percek // 60, percek % 60

if ora and perc:
print(f'{ora} óra {perc} perc')
elif ora and not perc:
print(f'{ora} óra')
else:
print(f'{perc} perc')

[ Szerkesztve ]

(#1554) alec.cs válasza cousin333 (#1553) üzenetére


alec.cs
(kvázi-tag)

Köszönöm a válaszodat, köszönöm a válaszokat... :R

(#1555) fpeter84


fpeter84
(fanatikus tag)

Sziasztok! Hogyan lehet python-al leghatékonyabban mérni az időt microsec-ben? GPIO interrupt események közti idővel kellene kalkulálnom, és az ezredmásodperc nem elég precíz hozzá - de példákat kizárólag csak millisec-re találok, microsec sehol... Vagy lehetetlent kergetek?

(#1556) cousin333 válasza fpeter84 (#1555) üzenetére


cousin333
(PH! kedvence)

Erre való az oszcilloszkóp... ;]

Konkrétan mit szeretnél mérni és hogyan? Mármint a GPIO gondolom nem a PC-ben van, hanem egy mikrokontrolleren, nemde?

(#1557) fpeter84 válasza cousin333 (#1556) üzenetére


fpeter84
(fanatikus tag)

A válasz a kettő között van - nem is PC és nem is uC hanem egy LinkIt 7688-as MT7688 SoC-al. OpenWrt-t futtat és a GPIO lábai és megszakítási eseményei elérhetőek python nyelv alól is. Több egyéb feladat mellett egy ilyen szélsebességmérőt szeretnék vele monitoroztatni ami 2.4Km/h szélsebességnél másodpercenként 1x kapcsol - ez azt jelenti hogy 100Km/h nagyságrendnél már 24ms lenne két impulzus között, ahol 1-1ms ide-oda már jópár % bizonytalanságot jelent. Nyilván nem egy atomóra az eszköz, nem szertném még tovább rontani a pontatlansági faktort... Ha sehogy sem elérhető a us, akkor marad az hogy mondjuk másodpercenként értékelem ki hogy hány megszakítást sikerült összeszámolni ezalatt...

(#1558) cousin333 válasza fpeter84 (#1557) üzenetére


cousin333
(PH! kedvence)

Így már más. Én ezt találtam: [link]. De persze kérdéses, hogy ezen a rendszeren hogyan működik.

Esetleg nincs benne valami timer, sysclock ilyesmi, szóval Python nélkül? Mikrokontrollerrel megoldható lenne, de ez komplexebb rendszer.

A másodpercenkénti kiértékelés működhet, de az meg kis szélsebességnél lesz pontatlan, szóval kombinálni kell a két megoldást.

(#1559) sztanozs válasza fpeter84 (#1557) üzenetére


sztanozs
(PH! addikt)
LOGOUT blog

Simán csak interrupt alapján kellene gyűjteni és timer modullal vágni (perf_counter), ha az időkülönbség az előző vágás óta több, mint 1 sec (vagy 100 ms, vagy akármilyen frissítéssel akarod számítani). Ha nem kell realtime adat, akkor ki lehet értékelni 30-60 sec ablakokkal is.

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1560) sztanozs válasza sztanozs (#1559) üzenetére


sztanozs
(PH! addikt)
LOGOUT blog

Kis mintapélda (sliding window-szerűséggel), csak szemléltetésképp.
Mivel nincs most kéznél GPIO-s cucc, ezért random módszerrel dobálom bele a spike-okat a listába, és interrupt helyett ez generálja a tüskéket:
nt = (random.randint(1,1001)/10000.0)
threading.Timer(nt, foo).start()

timertest.py
import time
import threading
import random

def foo():
nt = (random.randint(1,1001)/10000.0)
threading.Timer(nt, foo).start()
t1 = time.perf_counter()
spikes.append(t1)
if spikes[0] < t1 - 30:
spikes.remove(spikes[0])
#print(nt)

def print_speed():
threading.Timer(1, print_speed).start()
speed = len(spikes) * 2.4 / (time.perf_counter() - spikes[0])
print("Spikes: {0}, Speed: {1:1.2f} km/h".format(len(spikes), speed))

spikes = []
threading.Timer(10, print_speed).start()
foo()

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

Copyright © 2000-2018 PROHARDVER Informatikai Kft.