Új hozzászólás Aktív témák
-
axioma
veterán
válasz McSzaby #2096 üzenetére
Szerintem ez azert messze nem lehetetlen.
Jelenlegi eddig x-szer futott.
- Veszed x*rata egeszre kerekiteset.
- Veszed (x+1)*rata egeszre kerekiteset.
- Ha a ketto elter, akkor lefuttatod, ha nem akkor nem. Es persze x+1-re allsz.
Remelhetoleg tudsz a futasok kozott egy darab egeszet tarolni.[Bocs, harom hozzaszolassal korabban kezdtem szerkeszteni... de talan pontosabb eloszlast ad mint a veletlen, kerdes melyik a fontosabb.]
[ Szerkesztve ]
-
kovisoft
őstag
válasz McSzaby #2101 üzenetére
Egy kicsit az eddigiek vegyítése: ha mondjuk minden 10 futásból 7-szer kell csináljon valamit, akkor generálsz egy random permutációt a 0-9 számokból. A következő 10 futásban akkor csináljon valamit, ha 7-nél kisebb a permutációban a következő elem. Aztán ha elfogytak a számok, akkor generálsz egy újabb 10-es random permutációt. Ez így nyilván kevésbé random, mint a teljesen random verzió, de randomabb, mint a pusztán gyakoriság számláláson alapuló.
-
axioma
veterán
válasz kovisoft #2103 üzenetére
(Na igen, hacsak nem valahonnan generalodik az a ra'ta, akkor jo esellyel eleg az 5%-onkenti lepcso, mert ember fog saccolni, hogy mennyi kell, es az nem lesz pontosabb, eleg egy 20-as tomb.
Ha mar kicsit tanulasi iranyba megy el, tehat a beallitasnal pl. optimalis ara'nyt keresnek iterativan, akkor talan jobb a viszonylag pontos eloszlas - ugyanazon a kezdoszeleten nezve, tehat %-allitaskor nullazni a szamlalot.) -
cigam
félisten
Adott ez a script, de csak félig működik. szépen letölti a képet, de nem tudja beállítani. Tippem szerint azért, mert a fájlnevet idézőjelek közé teszi, pl.
"2018-03-19".jpg
Amikor pedig eljut oda, hogy beállítsa
gsettings set org.cinnamon.desktop.background picture-uri "$HOME/.nasa-wallpaper/$FECHA.jpg";;
Az idézőjeles fájlnév összezavarja? Nem is látom(át) hogy hol kap idézőjelet. Vagy?[ Szerkesztve ]
Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
-
cigam
félisten
válasz kovisoft #2113 üzenetére
Mindíg is csodáltam akik reguláris kifejezéseket ennyire vágják. Én még magára a szóra sem emlékeztem, percekbe telt míg beugrott, hogy így hívják ezeket. (Hiába no, öregember nem gyorsvonat)
Köszi!(Gnome-al persze ékezetesen is pöc röff működik, Cinnamon-al meg nem. A manó rúgja meg.)
[ Szerkesztve ]
Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
-
addikt
Sziasztok!
Raspberry-n szeretnék Cron-ban futtatni egy prython loggolót,ami egy fájlba elmentené nekem az adatokat. Ha futtatom a programot,akkor simán megy,de crontab-ban nem tudom életre kelteni,hogy automatán csinálja. ebben kérnék segítséget.
.py fájl tulajdonosa a root
Futtathatóvá tettem
sudo-val futtatom a crontab-ot és beleírtam
*/10 * * * * /usr/bin/python /home/user/program/program.py
EOVDe ha csak futtatom a
sudo python /home/user/program/program.py parancsot,akkor meg lefut.
Which python-ra a /usr/bin/python jött válasznak -
sonar
addikt
válasz grabber #2117 üzenetére
Kérdés:
hogyan szerkesztetted a crontab-ot?
Saját user alól crontab -e vagy azt is sudo-val?
Javasolnám, hogy ha már root-tal akarod csinálni akkor root userrel szerkeszd az /etc/crontab file-t*/10 * * * * root python /home/user/program/program.py
btw: ez nem python hanem linux (jellegű) kérdés
btw2: ha pythonnal futtatod akkor a py-nak nem kell futtatási jog[ Szerkesztve ]
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
kovisoft
őstag
válasz grabber #2119 üzenetére
Mit mutat a sudo crontab -l ? Benne van a parancsod? Milyen file-ba logolna a python szkripted? Csak fájlnév van megadva vagy teljes path? Ha csak fájlnév, akkor nézted-e a root user home könyvtárában? Esetleg próbálj meg valami semleges logoló parancsot tenni a crontab-ba, hogy lásd, működik-e, pl:
*/10 * * * * date >> /tmp/test.log
-
Siriusb
veterán
Adott egy string, pl. '(abc)/-25'. Ti milyen módon szednétek ki a nem alfanumerikus karaktereket?
Ami nekem egyből adja magát, az a regex egy előregyártott mintával, illetve még a filter(isalnum, string) módszer, csak ez utóbbival össze is kell rakni a végén az eredményt egy új string-be. -
Siriusb
veterán
os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
Itt a csillag milyen paraméterekre utalhat? A leírásban nincs infó róla. A rename()-nél sincs leírva.
-
Siriusb
veterán
válasz kovisoft #2130 üzenetére
Óóóó, köszi. Ez fura, mert a kulcsszavast két csillaggal szokták jelölni.
*args és **kwargs formában találkoztam eddig mindenhol a paraméterjelöléssel, ami jól megkülönbözteti egymástól a kétféle típust.
Kilogikázni ezt sosem tudtam volna. Kísérleteztem, s hibának ki is dobta, hogy a replace csak 4 paraméter fogad el maximum, de a hivatalos doksiban egy csillagot raknak oda és még vesszőt is raknak utána, ez teljesen bekavart.
Köszi! -
sztanozs
veterán
válasz kovisoft #2130 üzenetére
Nem, * azt jelenti, hogy listát vár, ** pedig dict-et.
Tehát egy csillagnál nem lehet, két csillagnál pedig kötelező névvel megadni az argumentumokat.
keyword-argumentsEbben az esetben szvsz (opcionálisan) több célt jelent.[ 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...
-
alec.cs
tag
Sziasztok!
A véleményetekre, illetve a tapasztalatokra lennék kíváncsi.
Tehát:
- Adott egy fájlt egy szerveren, s ezt a fájlt a user gépeken futó python kód érné el.A fájl szöveges adatot tartalmaz.
Egy lista lenne benne az alábbi módon:
table = [
{"url1": "cím1, "desc": "leírás1"},
{"url2": "cím2, "desc": "leírás2"}
]A cím max. 300 karakterből állna, a leírás max. 400 karakterből. A címek egyediek lennének.
A table kb. 1000 sort tartalmazna.
A kérdéseim a következők lennének:
1.) A table-ban a user gépek python kódjai keresést hajtanának végre. Adott egy urlcím és ezt kellene megkeresni a table cim1,2,3,..-iben, s utána az ahhoz tartozó leírás lenne kiíratva.
Milyen kóddal lehet a lehető leggyorsabb keresést végrehajtani? for ciklus, vagy regex?2.) A kereséshez milyen megoldás a legpraktikusabb?
- A fájl legyen egy adott szerveren, s a user gépek mindig abban keresnének (a szerveren) egy adott módszer szerint.
vagy
- A teljes fájl legyen betöltve egy listába az adott user gép memóriájában, s utána már ott lenne a keresés.Melyik módszer jobb megoldás az adott table méretnek megfelelően?
Várnám a tapasztalatokat, véleményeiteket.
Esetleg némi mintakód...Üdv,
Alec -
sztanozs
veterán
válasz kovisoft #2133 üzenetére
Ugyanonnan:
form **name is present, it receives a dictionary ... form *name (described in the next subsection) which receives a tuple[ 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...
-
kovisoft
őstag
válasz sztanozs #2137 üzenetére
De ez arra vonatkozik, amikor a * után van egy azonosító (pl. *name). Viszont mi van akkor, ha csak egy azonosító nélküli *, van, mint a korábbi os.replace példában? Hogy éred el ezt a tuple-t, ha nem adtál neki nevet? Az azonosító nélküli *-ról az argumentum listában itt tudsz bővebben olvasni.
-
sztanozs
veterán
válasz kovisoft #2138 üzenetére
Wow, ezt keresetm, csak nem találtam - ezer köszönet!
def compare(a, b, *, key=None):
Szóval a fenti definíció egy synthetic sugar a következő megvalósítással:
def compare(a, b, *ignore, key=None):
if ignore: # If ignore is not empty
raise TypeErrorJOGI 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...
-
alec.cs
tag
válasz Siriusb #2135 üzenetére
@Siriusb, @axioma köszönöm a válaszokat...
Oké, a dict az jobbnak tűnik.
table = {'url1' : 'leírás1', 'url2' : 'leírás2' }
if van_e_ilyen_url in table:
Ez akkor gyorsnak tűnik (egy sorban max. 700 karakter és ebből kb. 1000 sor) ?
2.) Melyik módszer tűnik jobbnak az adatmennyiségnek megfelelően:
A fájl a szerveren, benne a dict szövegesen, a user gépek interneten érik el a fájlt. A fájlban lévő adatok majdnem statikusak, ritkán változnak.
a.) Lekérjük a fájlból egy dict-be a teljes adatot, majd a keresést már abban csináljuk meg.
Az adatokat csak egyszer kérjük le és abból dolgozunk mindig.class Program:
....
def table(self):
fáj olvasás
table_dict = {'url1' : 'leírás1', 'url2' : 'leírás2' } előállítás
def keres_kiirat(sel):
if van_e_ilyen_url in self.table_dict:
print(self.table_dic[van_e_ilyen_url])b.) Csak akkor kérjük le az adatot a távoli fájlból, mikor a kiíratás történik. Az adatokat minden egyes alkalommal lekérjük, mikor szükség van rá.
class Program:
....
def keres_kiirat(sel):
fáj olvasás
table_dict = {'url1' : 'leírás1', 'url2' : 'leírás2' } előállítás
if van_e_ilyen_url in self.table_dict:
print(self.table_dic[van_e_ilyen_url])- - - -
Akkor melyik változat lehet a jobb megoldás?
Bocs, ha a kódokat nem pontosan írtam...
-
cousin333
addikt
válasz alec.cs #2140 üzenetére
Őszintén szólva 1000 sornyi 700 karakteres szöveg kezelése nem hiszem, hogy túl időigényes lenne, hacsak nem valami kifejezetten ostoba módon van megoldva. Egy Jupyter Notebook-al és a %%timeit "varázslattal" nagyon gyorsan és egyszerűen ellenőrizhető a szükséges idő és összevethető más megoldásokkal.
Az a megoldás nekem szimpatikusabb, különösen, ha az URL fájl nem (gyakran) változik. Ha osztályokkal csinálod, akkor írnék egy letöltő/beolvasó metódust, amit mindjárt a példányosítás során meghívnék. Esetleg osztály metódusként (classmethod) megírva alternatív konstruktorként használnám, attól függően, hogy a fájl mennyire játszik központi szerepet az osztályban.
Ettől függetlenül a b módszer is működhet, amennyiben a hálózati kielégítő sebességű, és a használt műveletek nem okoznak extrém mértékű terhelést (mondjuk nem használnád a fájlt másodpercenként 100-szor...)
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
Ha már ostoba módról írtam az előbb, szerintetek mit csinál és ad vissza az alábbi kód:
i, j, retList = 0, 0, [error]
for paramNb in range(4):
while ((i+j) < len(returnedString) and returnedString[i+j] != ','):
j += 1
retList.append(eval(returnedString[i:i+j]))
i, j = i+j+1, 0
return retList"We spared no expense"
-
Siriusb
veterán
válasz alec.cs #2140 üzenetére
Én csak a pálya széléről kiabálnék be:
Amennyiben intenzív a felhasználás módja vagy nem megbízható az internet kapcsolat, és nem lerobbant klienseken dolgoznak a felhasználók, akkor jobb lehet, ha lokálisan történik a feldolgozás.
Amennyiben a "szerver" tényleg képes megfelelően kiszolgálni ezt a feladatot is, akkor kb. mindegy, hol kérdezed le.Azonban kicsit előregondolkozva, és a tapasztalatokból kiindulva az emberek mindig többet akarnak, tehát elképzelhető, hogy ez a kis "játszadozás" gyorsan kinőné magát, s akkor már mindenképpen egy adatbázis alapú megközelítés lenne szükséges.
A jelenlegi feladat azt mondanám még "komolytalan" szint, teljesen mindegy, mit és hogyan oldasz meg, nincs egetverő különbség, bármilyen módszert is használsz. -
axioma
veterán
válasz cousin333 #2142 üzenetére
azon kivul hogy hianyzik a returnedString inicializalasa? split-el az elso negy vesszonel, es a 4 elemet belerakja a tomb 1,2,3,4 helyere (a 0. hiba).
[Latnad amit a mat.szakszovegolvasason alkotott a tanar egy oldalas tetelkimondast, ami pont ugyanazt mondta, hogy minden egesz szam sorrendtol eltekintve egyertelmuen bonthato fel primhatvanyok szorzatara.] -
alec.cs
tag
válasz Siriusb #2143 üzenetére
Oké, köszi!
Köszönöm mindenki válaszát.
Amire kell arra jó a fájl-os megoldás. Már megvan az elképzelés miként fog működni...
A következő kérdésem az lenne, hogy az adott fájlt, hogy tudom titkosítani, hogy ne lehessen a tartalmát látni az illetékteleneknek?
Olyan megoldás kellene ami viszonylag gyorsan működne (elkódolás, visszakódolás), 2.7-es verzióval működne kiegészítő állományok nélkül. Nem kell túl bonyolultnak lennie, mert csak arra kell, hogy az információ ne látszódjon egyből. De azért olyan könnyen más ne tudja kivenni belőle.
Lenne a fájl a szerveren (titkosítva), s a user gépeken lévő .py fájl ami visszafejtené a titkosított adatot.
Az lenne jó, hogy aki megkapná ezt a .py fájlt a user gépére az ne tudná, hogy honnan, milyen adat kezelése valósulna meg.
Most nem mennék bele az egyéb védelmi részekbe (saját, elzárt szerver, ...), de egy gyors, könnyen kezelhető, biztonságos megoldást keresnék.
Milyen megoldást javasolnátok?
-
Siriusb
veterán
válasz alec.cs #2145 üzenetére
Szerintem jobb lenne, ha leírnád mit is akarsz tulajdonképpen, mert ez már nagyon nem arról szól, hogy list-ben vagy dict-ben legyenek az adatok.
Nem vedd bántásnak, de számomra nem az jön le, hogy a jelenlegi ismereteiddel mindez könnyen megoldható lenne. Persze ha egy tanulási folyamat része, akkor nem szóltam.
Amúgy ha a weboldal készítésben jobban otthon vagy, rakj fel egy webszervert és php-ben könnyen megírod a lekérdezést. Így böngészőből egy virtualhost-on vígan elvan bárki, akit az adott gép elé ültetnek, s ha csak nem hekkerkedik, a kérdés meg van oldva. -
kovisoft
őstag
-
alec.cs
tag
válasz Siriusb #2146 üzenetére
Köszönöm válaszod.
Mint írtam már, egy fájlban tárolnám az adatokat. Ez most kielégítő megoldás lenne.
Benne url, leírás lenne.Például így:
text.txt
======url1, leírás1
url2, leírás2
...
url100, leírás100A list vagy dict kérdésen már túl vagyok, de ezt már meg is írtam.
A kérdésem az adott tartalom titkosítására vonatkozott.
Tehát valahogy így egyszerűen:
>>> 'Some text'.encode('base64') # a text.txt fájlba
'U29tZSB0ZXh0\n'
>>>
>>> 'U29tZSB0ZXh0\n'.decode('base64') # .py fájlban
'Some text'Arra lennék kíváncsi, hogy mi lenne az a megfelelő megoldás ami gyorsan, biztonságosan működhetne.
A tapasztalatok érdekelnének, hogy ki hogy csinálná...Csak egy idézettel reagálnék még arra amit írtál:
Jó pap is holtáig tanul...illetve minden információ fejleszti a tudást...
Egyébként meg amiket írtatok idáig azok hasznosak voltak számomra...
-
V.Stryker
nagyúr
Sziasztok,
Mac alatt hogy tudom ellenőrizni, hogy a pip megfelelően fel van-e telepítve ?
Organic Maps - ingyenes, offline navi iOS-re és Androidra.
-
kovisoft
őstag
válasz alec.cs #2148 üzenetére
Ja, hogy magát a python szkriptedet szeretnéd kvázi olvashatatlanná tenni?
Erre jó lehet a base64-es megoldásod, aminek a végén meghívod az eval-t a dekódolás után. Persze ez nem igazi titkosítás, mert aki akarja, az dekódolja a base64 stringedet:myscript="""U29tZSB0ZXh0"""
eval(compile(base64.b64decode(myscript),'<string>','exec'))
Új hozzászólás Aktív témák
- Philips Evnia 42M2N8900 Gamer Oled Monitor!42"/4k/138hz/0,1ms/Freesync-Gsync/HDMI 2.1/TypeC/Ambiglow
- -56% HP EliteBook 840 G8:i7 1165G7,16GB RAM,512GB NMVe SSD,Iris Xe,IR kam.+ujj.olv.,vil.MAGYAR bill.
- Monitortató plexi konzol több elérhető készletről MONITORCENTER
- -50% HP EliteBook 840 G8: i7 1165G7,32GB RAM,1TB NMVe SSD,Iris Xe,IR kam.+ujj.olv.,vil.MAGYAR bill.
- 1.250.000 FT helyett 940.000 FT !! MacBook Pro 16" M3 Pro 12CPU / 18GPU / 18GB / 512 SSD