Új hozzászólás Aktív témák
-
#82595328
törölt tag
Saját külön fájlban kezelt programrészek importjával kapcsolatban azt vettem észre, hogy az
import masikfajl
parancsnál a PyCharm aláhúzza hibának a masikfajl-t, de szerintem csak mostanában ezzel a buborék hibaüzenettel:
"No module named masikfajl less... (Ctrl+F1)
Inspection info: This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items."Tudja valaki, hogy mi a baja ezzel? Vagy hogy mi a korrekt módja az importnak?
Az from import . masikfajl -t találtam a neten, de az nekem elszáll az alábbi hibaüzenettel:/usr/bin/python3.7 /home/.../fajl.py
Traceback (most recent call last):
File "/home/.../fajl.py", line 1, in <module>
from . import masikfajl
ImportError: cannot import name 'masikfajl' from '__main__' (/home/.../fajl.py)Process finished with exit code 1
Előre is köszönöm!
-
Siriusb
veterán
válasz
sztanozs
#2195
üzenetére
+cain69,
Köszi.Amúgy jó lenne, ha írnátok egy listát az összefoglalóba a használható python modulokról és felhasználási területről, mert nekem nagyon úgy tűnik, rengeteg minden már meg van valósítva ami kellhet az emberfiának, de ember legyen a talpán, aki mindent meg is talál.

-
Siriusb
veterán
Múltkorában felmerült itt a titkosítás kérdése. Elkezdtem gondolkozni azon, hogy adott esetben szeretném titkosítva tárolni az adatbázisba írt információt, melyet csak a lokálisan tárolt kulcs birtokában lehet visszafejteni. Milyen kriptográfiai modult mellett tennétek le a voksotokat? Pl. pycryptodome, pynacl, PyCrypto?
-
válasz
Janos46
#2188
üzenetére
root_cube = lambda x: x**(1./3.) if 0<=x else -(-x)**(1./3.)
használata:kobgyok27 = root_cube(27)Sajna mivel törtszámokkal dolgozik, ezért nem szükségszerűen pontos.
Nagy számokra esetleg ez alapján: [link]
from sympy import S, Rational
def root_cube(number):
# change the number into a sympy object
num = S(number)
return (num**Rational(1,3)) -
Janos46
tag
Sziasztok!
Köbgyökről lesz szó. Köbgyököt szeretnék vonni mondjuk 1000-ből. Le tudná valaki írni képletben hogyan kell csinálni? Köszönöm. -
V.Stryker
nagyúr
Magyar mac billentyűzettel programozókat kérdezném,ha esetleg pycharmot is használna valaki, hogy kikommentelni több sort hogy szokott? Amikot több sort kijelölsz és betesz # jelet elé? elvileg shift+alt+/ kéne legyen.
-
kezdosql
tag
zip fajlban kapsz tucatnyi fajlt, par py es par egyeb.
Kell irni egy rovid doksit, hogy melyik fajl melyik fajlt hivja meg es melyik adatfajlokat hasznalja.Keresek egy programot, ami modulonkent megjeleniti a fajlokat es mutatja, hogy melyik melyikhez kapcsolodik, vagy legalabb azt, hogy hol vannak a mas modulhoz/rutinhoz ugrasok.
Igy mar ertheto?
-
kezdosql
tag
Tudna valaki segiteni, milyen programmal tudnek egy tobb python - es persze egyeb - fajlbol allo "csomagot" fa-strukturaban latni, hogy tudjak irni hozza egy dokumentaciot, hogy melyik resz mit csinal?
Lenyegeben statisztikai elemzesrol van szo, python programokbol vannak meghivva az egyeb programok, az adatfajlokat ismerem, igy jo lenne latni, hogy melyik python fajl melyik adatfajlt es hasznal, es akkor mar tudom, mit keressek.

-
V.Stryker
nagyúr
Leginkább a Mac-et és PyCharm-ot használókat kérdezném, hogy miként lehet > jelet rakni vagy a billentyű kombinációkat hol lehet módosítani, mert a Shift + ALt + X -re nekem bezárja a Scratch fájlt.

-
kovisoft
őstag
válasz
Janos46
#2173
üzenetére
Elképzelhető, hogy félreértettél: nem azt írtam, hogy azt a while ciklust (vagy annak belsejét) tedd be a programodba, csak szemléltetni akaratam, hogy miért gondoltam úgy, hogy egy abl.update() hívással meg fog jelenni a Tk ablak. De ha jól látom a mostani hibaüzenetedből, az abl.update_idletasks() hívást tetted be. Vagy én értek félre valamit?
-
Janos46
tag
válasz
kovisoft
#2165
üzenetére
Sajnos erre ez a válasz.
Traceback (most recent call last):
File "/home/pi/aa/Testek/Csonka_kup.py", line 16, in <module>
abl.update_idletasks()
File "/usr/lib/python3.5/tkinter/__init__.py", line 1042, in update_idletasks
self.tk.call('update', 'idletasks')
_tkinter.TclError: can't invoke "update" command: application has been destroyed -
Siriusb
veterán
válasz
Siriusb
#2171
üzenetére
A kimenet formázásról bővebben: https://docs.python.org/3/tutorial/inputoutput.html#formatted-string-literals
-
Siriusb
veterán
válasz
V.Stryker
#2170
üzenetére
Próbáld meg innen kimásolni, itt olyan bajos a programkód beillesztés: https://pastebin.com/FFzscZrm
Ha a string elé egy ilyen "f" megjelölést teszel, a stringen belül "{}" jelek közt változókat tudsz behelyettesíteni.
Érdemes lenne esetleg time objektumot használni, ha már pontosabb időt akarsz: https://docs.python.org/3.7/library/time.html
-
V.Stryker
nagyúr
válasz
Siriusb
#2169
üzenetére
Igazából nekem az az ötletem támadt, hogy miként lehetne azt megcsinálni, hogy óra - perc-re lehessen ezt kiíratni... mennyi most az idő.. 15 óra 21 perc... .mennyit aludnál? 8 órát és 10 percet... és akkor írja,hogy hány óra hány perckor kelek fel.... De lefagyott az agyam.

Illetve a te kódod valamiért a második sorra hivatkozva hibára fut.
Az f mit jelent a szöveges részeknél?
-
Siriusb
veterán
válasz
V.Stryker
#2168
üzenetére
Ez legyen a legbonyolultabb hiba, amit elkövetsz!
Játszásiból kicsit felturbóztam a példát. 
Mivel az ember a lustaságáról ismerszik meg, az aktuális időpontból kiszedjük az órát, aztán egy ciklusban addig nyomjuk a delikvens óra alá a kérdést, amíg egész számot nem méltóztatik beírni, ezt a try-ban ellenőrizzük.
Legvégül kiíratjuk az időpontot, attól függően, mennyire álomszuszék a válaszoló.import time
while True:
most = time.localtime().tm_hour
alvas = Nonewhile type(alvas) is not int:
alvas = input('----------------\nJean, keltsen fel ennyi óra múltán: ')
try:
alvas = int(alvas)
except:
print('Egész számot írj be, süsü!')napok = alvas//24
orak = alvas%24
if napok == 0:
print(f'Önt Jean, a hű komornyik {(most+orak)%24} órakor fogja kelteni egy forró kávéval.')
else:
print(f'Szia Csipkerózsika!\nJean szólt a hét törpének, hogy {napok} nap múlva '
f'{(most+orak)%24} órakor rúgjanak ki az ágyból!') -
V.Stryker
nagyúr
Sziasztok,
Hogy lenne az utolsó rész helyesen?
>>> jelen_ido = input("Mennyi az idő?")
Mennyi az idő?12
>>> ebreszto = input("Hány óra múlva ébresszelek?")
Hány óra múlva ébresszelek?12
>>> print ("Akkor te pontban " , ((jelen_ido + ebreszto)%24) , " fogsz ébredni.") -
kovisoft
őstag
válasz
Janos46
#2164
üzenetére
Azért gondoltam, hogy az update() kell, mert magát a mainloop()-ot nem hívhatod, hiszen az teljesen elveszi a kontrolt a későbbi konzolos parancsaidtól. Viszont maga a mainloop() gyakorlatilag a lenti ciklust hajtja végre, amiből az update_idletasks() kezeli az eseményeket, az update() végzi a megjelenítést:
while True:
abl.update_idletasks()
abl.update() -
Janos46
tag
axioma Köszi szépen a segítséget, a hibajelzés megoldva!
Viszont megmaradt egy probléma, miszerint: (A program az 2159-es levélben van.)
Van pár mértani testekkel foglalkozó program, amikhez mellékelek egy szemléltető képet is. Azonban ez csak azután jelenik meg, miután a program lefut. Megoldható-e, hogy a képpel együtt jelenjen meg az adatokat bekérő ablak is, így egyértelműbbek a kérdések is. ( Az eredeti képet a mérete miatt nem tudom feltölteni).
Továbbra is köszönet a lehetséges megoldásért. -
Siriusb
veterán
válasz
alec.cs
#2156
üzenetére
Azt próbálom elmondani, hogy ha nem morzsánként dobod be az információt, hanem az elején úgy kezded, hogy valami olyasmit szeretnél, ahol az adat fájlhoz nem tud hozzáférni a felhasználó, csak ahhoz a darabkához, amit lekérdezett, lehetséges más válaszokat kapnál. Más egy-egy részletre választ adni, s megint más egy feladatra megoldást javasolni.
Amúgy továbbra is fenntartom, hogy egy virtualhost-on futó php weboldallal tudnád legegyszerűbben megvalósítani az elvárt dolgokat, ami persze több erőforrást venne igénybe, mint egy pár soros python kód futtatása. -
axioma
veterán
válasz
Janos46
#2159
üzenetére
Az a gond hogy rafut a gyokvonasra a hibas adatnal is. A szamolast a jo agon csinald csak meg (es a szovegben amikor a sugár kisebb mint a palást hossza az inkabb nagyobb akart lenni. Sot, ahogy irtad, >=, de azt ebben a sorrendben irjuk (a masik a kettos nyil, ha a python3 el is fogadja >= helyett, ne szokj ra, mert mashol meg masra hasznaljak).
print("\nHa a palástja adott.")
if r<a :
Am=r*pi*(a+r)
Vm=(r**2)*pi*(sqrt(a**2-r**2))/3
print (" Felülete: "+ str(Am), "\n Térfogata: " + str(Vm))
else:
print ("\nHibás, mert r >= a") -
Janos46
tag
Sziasztok!
Segítséget szeretnék kérni a következő 2 problémámhoz.
Van pár mértani testekkel foglalkozó program, amikhez mellékelek egy szemléltető képet is. Azonban ez csak azután jelenik meg, miután a program lefut. Megoldható-e, hogy a képpel együtt jelenjen meg az adatokat bekérő ablak is, így egyértelműbbek a kérdések is. ( Azért lehet megadnia magasságot és a palástot is, mert nem tudni melyik ismert, ez még finomításra szorul. Az eredeti képet a mérete miatt nem tudom feltölteni).
A másik pedig, amikor a sugár kisebb mint a palást hossza (ha nagyobb, nincs gond),miért nem írja ki, hohy hibás az adat. Hol a hiba a 31. sor gyökvonásánál? Ha lehetne, konkrét megoldást kérnék.
Köszönettel. János.#Forgáskúp felszíne és térfogata.
from math import *
from turtle import *
from tkinter import *
abl = Tk()
abl.title("Forgáskúp számítása.")
can = Canvas(abl, width=100, height=100, bg='lightgreen') # A kép ablakának mérete
photo = PhotoImage(file='Forgaskup_1.gif') # A kép csak "gif" lehet.
item=can.create_image(50,50, image=photo) # A kép mérete az ablakban
can.grid()
kr=input("Mekkora az r sugár: ")
km=input("Mekkora a m magasság: ")
ko=input("Mekkora az a oldalhosz: ")
r=float(kr)
m=float(km)
a=float(ko)
Ap=r*pi*((sqrt(m**2+r**2))+r)
Vp=(r**2)*pi*m/3
print("\nHa magassága adott.")
print(" Felület: ",Ap,"\n Térfogat:",Vp)
Am=r*pi*(a+r)
Vm=(r**2)*pi*(sqrt(a**2-r**2))/3
print("\nHa a palástja adott.")
if r<a :
print (" Felülete: "+ str(Am), "\n Térfogata: " + str(Vm))
else:
print ("\nHibás, mert r => a")
-
-
alec.cs
tag
válasz
Siriusb
#2151
üzenetére
@Siriusb:
Én úgy érzem, hogy érthetően írtam le, hogy mit is akarok (következetes voltam az előző hozzászólásaimban)...Számomra minden információ az információ. Mindenből lehet tanulni valamit.
Amúgy meg szívesen várom a te tanácsaidat is. köszönöm.@cain69:
Nem vetted el a lelkesedésemet...Mint írtam már, egy egyszerű szöveges állomány elkódolásáról lenne szó.
Semmi titkos, bizalmas adat nincs benne. Ahogy írtam: url, leírás.A lényeg az lenne, hogy a ne tudják módosítani az abban lévő információkat. A szerveren ne láthassák a tartalmát, s ne tudják közvetlenül módosítani azt. A user oldalon meg szintén ne tudják, hogy honnan van a tartalom, illetve ne tudják módosítani azt. Most nem az a kérdés, hogy milyen szerveren van az állomány, s hogy kell megvédeni azt. Python megoldásra vagyok kíváncsi.
Tudom, hogy mit mondanátok erre...
Tudom, hogy ha a user oldalon ott a .py fájl, akkor egyszerűen visszaolvasható a tartalom. Tudom...
Csak gondoltam, hogy lehet olyan megoldás amire nem gondoltam, vagy nem ismerek még.Hát erre lettem volna kíváncsi!
@sh4d0w:
Akkor mi lehet a megoldás annak fényében amiket az előbb leírtam. Ha nincs más megoldás csak a base64 dekóder, akkor marad az. A semminél már az is jobb.Nyilván kódolhatok én ezerrel egy jobb programozó úgy is visszafejti azt.
Én csak a normál userek, felhasználók ellen akarom megoldani az egyszerű, gyors és biztonságos védelmet.
Tehát, ne tudják a tartalmat módosítani... de ezeket már az előbb leírtam.- - -
Nem akartam ebből az egészből "off" jelegű témát generálni.
Köszönöm a hozzá szólásaitokat, tanultam belőlük.
Azért, ha valaki mégis tudna hasznos infókat szolgáltatni, vagy már másnál is felmerült hasonló felvetés és megoldotta azt, akkor várnám még a hozzászólásokat.
Ha nem lesz más megoldás, akkor marad a base64 jellegű kódolás.
Előre is köszönöm.
-
-
válasz
alec.cs
#2148
üzenetére
nem akarom letörni a titkosításra vonatkozó lelkesedésedet, de azért legyél tudatában, hogy egy base64 stringet két kattintás en-, és dekódolni egy notepad++ban, és linuxon is simán van rá parancs mindegyik disztróban.
és mivel a komplementer karaktere állandó, rossz esetben ránézésre felismerhető, hogy milyen kódolást használtál.
szóval ez a megoldásod legfeljebb a gyorsaságnak tesz eleget. -
Siriusb
veterán
válasz
V.Stryker
#2149
üzenetére
Szia!
Gondolom ott is van terminál, szóval pl.:pip listKiírja a verziót, s hogy milyen csomagok vannak telepítve.
Szerk.: ha arra vagy kíváncsi, sérült-e a telepített állomány, azt passzolom.
Esetleg ez: https://pip.pypa.io/en/stable/reference/pip_check/
-
Siriusb
veterán
válasz
alec.cs
#2148
üzenetére
Csak sikerült félreértened, pedig direkt úgy kezdtem, hogy nem bántásból írom.
Hogy értsd: indultunk egy úgyszólván banális kérdéstől, és most már titkosításnál járunk. Mivel csak részinformációkat osztottál meg, nem feltétlenül tud bárki is jó megoldásokat mondani, mert egyrészt nem biztos, hogy az a probléma, amire a kérdésed vonatkozik, sőt talán az sem biztos, hogy a python a legcélszerűbb eszköz a feladat megoldására.
Én is csak nemrégiben kezdtem el (újra) elsajátítani ezt a programozási nyelvet, ezért tudom, hogy bizonyos elképzelések az én szintemen igen nehezen megvalósíthatók, de legalább biztosan sok idő- és energiabefektetéssel járnak, amire utánajárok a megoldásnak és elsajátítom az ahhoz szükséges ismereteket, ezért is szoktam én is kérdéseket feltenni itt.
Nekem úgy tűnt, te sem vagy még profi, elnézést kérek a tévedésemért. Távol álljon tőlem, hogy egy profinak adjak tanácsokat.
-
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')) -
V.Stryker
nagyúr
Sziasztok,
Mac alatt hogy tudom ellenőrizni, hogy a pip megfelelően fel van-e telepítve ?
-
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...
-
kovisoft
őstag
-
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. -
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?
-
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.] -
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. -
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 -
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...)
-
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...
-
-
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.
-
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 -
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! -
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
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. -
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 -
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.pybtw: ez nem python hanem linux (jellegű) kérdés
btw2: ha pythonnal futtatod akkor a py-nak nem kell futtatási jog -
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 -
cigam
titán
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.)
-
cigam
titán
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? -
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.) -
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
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.]
Új hozzászólás Aktív témák
- Inno3D GeForce RTX 4070 Ti X3 12G - Karácsonyi akcióban!
- Redragon Kumara K552 RGB Brown Switch magyar billentyűzet
- Lenovo Thinkpad P1 Gen 6 - i9-13980HX, 32GB, 2TB SSD, 16" WQUXGA (3840 2400), RTX 4090
- 15.gen! Intel Core Ultra 9 285K +16-32GB DDR5 RAM +hűtött VRM-es Z890 lap! GAR/SZÁMLA (a Te nevedre)
- OP AudioCodes C450HD Ip Phones - Szines kijelzős - Teams/ Zoom telefon - Új dobozos
- GYÖNYÖRŰ iPhone 14 Pro Max 256GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3172
- GYÖNYÖRŰ iPhone 14 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4248,100% Akksi
- LG 65B4 - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- JBL Quantum400 gamer fejhallgató
- Telefon felváráslás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest






(A bash sem a barátom, pedig igyekszem ...)

