- iPhone topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Fotók, videók mobillal
- Poco X6 Pro - ötös alá
- Itt az első kép a 2024-es Nokia 3210-ről
- Milyen okostelefont vegyek?
- OnePlus 7 - magabiztos folytatás
- Huawei P30 Pro - teletalálat
- Samsung Galaxy A55 - új év, régi stratégia
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
Hirdetés
-
Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
ph A cég megoldása centralizált vezérelhetőséggel, masszív radiátorral és robusztus ventilátorokkal igyekszik vásárlásra csábítani.
-
Konzolokra is megjelenik a Fera: The Sundered Tribe
gp A kooperatív szörnyvadászós játékhoz a minap egy friss trailert kaptunk.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
Új hozzászólás Aktív témák
-
cousin333
addikt
válasz EQMontoya #1198 üzenetére
"Akkor látszik, hogy a relációsjel precedenciája nagyobb az összeadásénál."
A helyzet az, hogy fordítva kell olvasni a listát, tehát pont az összeadás prioritása nagyobb.
"The following table summarizes the operator precedences in Python, from lowest precedence (least binding) to highest precedence (most binding)"A Pythonban lehet olyan feltételt írni, amitől a C egy hátast dobna, pl:
if 5 < x <= 14:
print('Közötte van')A fenti példában:
a < b+c == True
Ez így értékelődik ki:
(a < (b + c)) and ((b + c) == True)
Ebből a második tag
False
lesz, aminek az oka:
"The default behavior for equality comparison (== and !=) is based on the identity of the objects. Hence, equality comparison of instances with the same identity results in equality, and equality comparison of instances with different identities results in inequality."Az
a+b
egy számot ad eredményül, ami nem azonos aTrue
-val. De ac< a+b
eredménye már egy boolean, ami lehetTrue
meg lehetFalse
.[ Szerkesztve ]
"We spared no expense"
-
EQMontoya
veterán
válasz cousin333 #1202 üzenetére
Az első fele jogos.
Viszont Az a+b egy számot ad eredményül, ami nem azonos a True-val..
A True is egy szám!
Pythonban a boolean az intből származik, tehát ha leírjuk, hogy isinstance(True, int), az bizony True-t ad vissza.
Hovatovább, teljesen valid kifejezés az, hogy 5 + True, és minden bizonnyal 6 lesz a végeredménye.Same rules apply!
-
kezdosql
tag
Adatbevitelre nem talalok megoldast egy jo hete.:-(
Azt kellene megoldani, hogy a kepernyon megjelenjen egy legfeljebb 10 elemu lista, es ezekbol lehessen valasztani legfeljebb 3 elemet, es azt elmenteni uj listaba.
Talan egy kulon grafikus alkalmazast kellene erre telepiteni, amivel egerrel lehetne kattintani ikonokra, vagy van ilyen megoldas, de nem latok a szememtol?
-
sztanozs
veterán
válasz kezdosql #1204 üzenetére
Pythonbol is tudsz gui alkalmazast fejleszteni. Python+listbox kifejezesre keress (TKinter az altalanos pythonos gui megoldas)
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...
-
cadtamas
tag
válasz kezdosql #1204 üzenetére
Nem látom a konkrét feladatot, de ilyenkor jellemzően azt várják el, hogy simán ki iratod (for ciklus, print metódus) egyenként a 10 elemű lista elemeit sorszámokkal, utána pedig sima inputtal bekérsz 3 sorszámot ami segítségével feltöltesz (append) egy üres listát.
Lista indexelésnek olvass utána.[ Szerkesztve ]
-
kezdosql
tag
válasz cadtamas #1206 üzenetére
Most mar megtudtam az eddig szupertitkos feladatot:
fagylaltokat kell osszeallitani, amibol tolcserenkent legfeljebb 3 gomboc lehet, es a gyakorlatban egyszerre csak negy szemelynek vesznek fagyit.Azt akarjak, hogy legyen egy 10 soros es 4 oszlopos tablazat, es x-elgetni lehessen, hogy soronkent milyen oszlopokat jelolnek be.
En inkabb egyesevel oldanam meg, de a probak alapjan ugy lattam, valoban jobb lenne x-elgetes, mint gepeles.vagy szamok beirasa, valamiert a szamokat idonkent osszekeverik. -
cadtamas
tag
Codewars-on kaptam egy olyan feladatot, amibe beletört a bicskám.
3 működő megoldásom volt, de sajnos egyik sem elég gyors.
A feladat:
Sum of PairsGiven a list of integers and a single sum value, return the first two values (parse from the left please) in order of appearance that add up to form the sum.
sum_pairs([11, 3, 7, 5], 10)
# ^--^ 3 + 7 = 10
== [3, 7]
sum_pairs([4, 3, 2, 3, 4], 6)
# ^-----^ 4 + 2 = 6, indices: 0, 2 *
# ^-----^ 3 + 3 = 6, indices: 1, 3
# ^-----^ 2 + 4 = 6, indices: 2, 4
# * entire pair is earlier, and therefore is the correct answer
== [4, 2]
sum_pairs([0, 0, -2, 3], 2)
# there are no pairs of values that can be added to produce 2.
== None/nil/undefined (Based on the language)
sum_pairs([10, 5, 2, 3, 7, 5], 10)
# ^-----------^ 5 + 5 = 10, indices: 1, 5
# ^--^ 3 + 7 = 10, indices: 3, 4 *
# * entire pair is earlier, and therefore is the correct answer
== [3, 7]
Negative numbers and duplicate numbers can and will appear.NOTE: There will also be lists tested of lengths upwards of 10,000,000 elements. Be sure your code doesn't time out.
A megoldásom működik, de nem elég gyors.
Lenne valakinek ötlete, hogy mivel tehetném gyorsabbá?
Csak egy iteráció van benne, hogy O(n) legyen a működés.def sum_pairs(ints, s):
list=[]
i=0
for pair1 in ints:
pair2=s-pair1
x=ints.index(pair1)
try:
y=ints[x:].index(pair2)+i
if x!=y:
list.append([x,y])
i+=1
except:
i+=1
if len(list)==0:
return None
list.sort(key=lambda x: x[1])
return [ints[list[0][0]], ints[list[0][1]]] -
axioma
veterán
válasz cadtamas #1212 üzenetére
Ez az amikor jol megszivod azzal, hogy az ints ertekein ugy mesz vegig, hogy "elveszted" az indexet, es mikor ujra lekerdezed, akkor tok jol emeled a nagyordodat feleslegesen. Mert az index kikeresese nem konstans ideju muvelet - es ez a muvelet eleve 2x is szerepel benne.
A tobbi reszet nem nezve elsore csak a feleslegeset kiveve:
for x in xrange(len(ints)-1):
pair1=ints[x]
pair2=s-pair1
x=ints.index(pair1)
try:
y=ints[x+1:].index(pair2)+i
egybol nem kell az x!=y sem (mert x+1.-tol keresed csak)Ja egyebkent latom, hogy vegulis az i-t is arra hasznaltad, hogy tudd hogy hol jarsz, de ket dolog miatt nem vetted eszre:
1. elnevezes (pl. fst_idx eseten egybol latszana)
2. bar a try teljes lefutasa es exception eseten is noveled, de kulonvetted - az egesz utan ha 1x lenne, latszana, hogy pont szamolod a koroketMar csak didaktikailag probald ki. De egyebkent nagyon nem ertem, miert is gyujtogetsz lehetseges indexeket... eleg a legelso. Ha jol ertem, az eloszor befejezodo kell. Tehat en igy mennek vegig rajta:
prevs=set(ints[:1])
for val in ints[1:]:
if s-val in prevs:
return [s-val,val]
prevs.add(val)
return Nonedisclaimer: nem probaltam ki...
[ Szerkesztve ]
-
cadtamas
tag
Köszönöm!
Azért kell a pár második tagjának indexe, mert az a pár kell aminek mindkét tagja előrébb van.(5,1,3,2,7,4) (5) nél az eredménynek (3,2)-nek kell lennie, hiába kezdődik az (1,4) hamarabb
Még valami ilyesmin gondolkodom:
for num, pair1 in enumerate(ints):
pair2=s-pair1
Csak nem tudom a pair2 indexét hogyan tudnám kikönyörögni... -
axioma
veterán
válasz cadtamas #1215 üzenetére
Nem erted akkor.
En aszerint megyek rajta vegig, hogy ki a lehetseges _masodik_ elem.
Es tok mind1, hogy hol van az elso, csak hogy van-e. Az indexek abszolute nem kellenek a megoldashoz. Ez mondjuk inkabb az algoritmus es nem a python resze a dolognak.
Probald lekovetni ezen a kicsi peldan amit en irtam le kodot.[ Szerkesztve ]
-
Aureal
senior tag
Sziasztok!
A GitHub-ról hogy lehet letölteni? (Nem csak pythonra gondolok, hanem általában mindenre.)
Mindenféle mappákba be lehet lépni, ahol forrás fájlok stb. találhatók, de rákattintva akár egy example HTML fájlra is, az nem nyílik meg közvetlen a böngiben, hanem a kód részét hozza fel az oldal. Nem látom a lényegét ezeknek.[ Szerkesztve ]
-
boneyard
tag
Helló!
Beautifulsouppal szeretném kinyerni egy div-en belüli div-ben lévő szöveget:
<div class="proddatafile">
<div><strong>REFERENCE</strong></div>
<div>9P-60510-1-13</div>
<div class="separador"></div>
</div>Csak a félkövér szövegre lenne szükségem. Elég kezdő vagyok a témában, autodidakta módon tanulgatom. Ha valaminek van class-a vagy id-ja, akkor az abban lévő részt ki tudom íratni, de erre nem találtam googleben megoldást.
-
boneyard
tag
Már nem tudom szerkeszteni, de sikerült.
Itt hagyom, hátha vkinek hasznos lesz:prodata = soup.find_all('div', class_="proddatafile")[1]
divy = prodata.find_all('div')[1]
print(divy.string)A prodatanál azért kell az index, mert az a class is többször szerepel.
divynél fura, h miért 1 az index 2 helyett, mert az a második div a listában, de vmiért 0-tól indul az indexelés.[ Szerkesztve ]
-
sztanozs
veterán
válasz boneyard #1223 üzenetére
Az, hogy 0-ról indul az indexelés gondolom csak azért lep meg, mert korábban legfeljebb csak VBA (vagy XSLT/XPath) programozói tapasztalatod volt.
[ 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...
-
sonar
addikt
Ahogy colomb2 is irta.
git clone https://.....
Hogy mi a git? Egy verziókezelő progi, van minden platformra.
A git clone parancsra meg lejön minden neked úgy ahogy látod, te is tudod szerkeszteni, lefordítani, használni... akár még visszatölteni is.A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
Van valakinek ötlete, hogyan lehetne gyorsítani egy pythonban készült syn scant? 1 mp-es timeouttal 18 óra az összes port scannelése...
[ Szerkesztve ]
https://www.coreinfinity.tech
-
sztanozs
veterán
Ha gyorsan kiszámolod a 65535 port másodpercenként szkennelve pontosan 18.2 órát vesz igénybe...
Ez nem a python hibája, hanem a matematikáéJoke aside: [link]
[ 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...
-
válasz sztanozs #1228 üzenetére
Én is ezt írtam... Próbáltam multithreaddel, de nem hozott számottevő gyorsulást... aztán rájöttem, hogy a GIL lehet a ludas... Megnézem, hogy multiprocessinggel mi az ábra.
EQMontoya: próbáltam a timeout csökkentést, de szignifikáns változást nem láttam. Valószínűleg a képernyőkezelés is ludas benne (egyelőre muszáj benne hagynom debug okokból).
[ Szerkesztve ]
https://www.coreinfinity.tech
-
válasz sztanozs #1228 üzenetére
Nah, a 18 órás futásidőt sikerült 11 percre redukálni... de egy nyamvadt mobil négymagos i7-est még mindig nem tudtam értelmesen leterhelni (értsd: max 60% körül). 0.1s-es timeout, 16 process. Arra kíváncsi lennék, mennyi idő megy el a processek kezelésére (32 v. 64 processel sem kaptam jobb eredményt, sőt, az alsó 1024 portos scan 64 processel 20 mp-es időt hozott a 16 process 12 mp-ével szemben).
https://www.coreinfinity.tech
-
-
nagyúr
-
Köszönöm a tanácsokat.
https://www.coreinfinity.tech
-
python3-ban mi a fenéért nem működik a scapy?
ImportError: No module named 'scapy'
2-es alatt fent van, 3-as alá felraktam, de mégsem...
MOD: megvan, nem rootként raktam fel...
[ Szerkesztve ]
https://www.coreinfinity.tech
-
Újabb segítségkérés: adott egy python3-as multithreades portscanner. Próbálom a nyitott portok service-eit azonosítani vele, de elég nagy marhaságokat kapok vissza, mitől lehet? Mutatom:
Enter target address: metasploitable.home
Open port 22 fsp
Open port 25 ftp
Open port 21 ftp
Open port 23 ftp
Open port 53 domain
Open port 80 http
Open port 111 sunrpc
Open port 139 netbios-ssn
Open port 445 microsoft-ds
Open port 513 shell
Open port 514 shell
Open port 512 shell
Open port 1099 rmiregistry
Open port 1524 ingreslock
Open port 2049 nfs
Open port 2121 iprop
Open port 3306 mysql
Open port 3632 distcc
Open port 5432 postgresql
Open port 5900 ?
Open port 6000 x11
Open port 6667 ircd
Open port 6697 ircs-u
Open port 8009 ?
Open port 8180 ?
Open port 8787 ?
Open port 38881 ?
Open port 42318 ?
Open port 54571 ?
Open port 58211 ?Ugyan a nyitott portok megtalálása helyes, de mindig vmi hasonló marhaságot kapok, ráadásul nem kapom 2x ugyanazt az eredményt.
[ Szerkesztve ]
https://www.coreinfinity.tech
-
-
nagyúr
ahogy olvasom, ez egy wrapper a windoze getservbyport függvénye fölött. ez nem csekkolja, hogy ténylegesen milyen szervíz fut azon a porton (azt sem, hogy fut-e egyáltalán), hanem megkérdezi a win service db-jétől, hogy ott milyen név van rámappelve erre a portra. megpróbálhatod ezt közvetlenül hívogatni, hogy az állandó eredményt ad-e, vagy már ott is hasonlókat kapsz.
Tudod, mit jelent az, hogy nemezis? Az érintett, erősebb fél kinyilatkoztatása a méltó büntetés mértékét illetően. Az érintett fél jelen esetben egy szadista állat... én.
-
-
-
nagyúr
single threadben futtasd egy korlátozott portcím-tartományra, és nézd meg, hogy konzisztens-e az eredmény, amit kapsz.
egyébként meg igazából ssh-zhatok meg ftp-zhetek én akárhányas porton, ez a hívás egy dictionary-t használ, amit akár te is megírhatsz. egy listában intként eltárolod a portszámot, mellette pedig stringként hogy mi az a default szervíznév, ami általában használja, és ebből fordítgatsz.
[ Szerkesztve ]
Tudod, mit jelent az, hogy nemezis? Az érintett, erősebb fél kinyilatkoztatása a méltó büntetés mértékét illetően. Az érintett fél jelen esetben egy szadista állat... én.
-
-
válasz velizare #1248 üzenetére
Figyelem: default python environmentben fut, tehát ha 3-asban kell, akkor bele kell nyúlni.
Elsőre jókat szívtam vele A try a for cikluson kívül volt, így aztán nem értettem, miért döglik le indítás után azonnal... aztán persze rájöttem, hogy a service azonosítás már az első portnál socket errort generál.
[ Szerkesztve ]
https://www.coreinfinity.tech
-
#82595328
törölt tag
Egy kis segítséget kérnék python öröklés, alosztály témában:
Próbáltam írni, egy kisebb programot, amivel az öröklést tesztelném.
A cél az lenne, hogy bekérek 2 számot, amit értéket adna egy osztálynak, majd az egyiket felülírnám az alosztállyal. De sehogy se működik.class Egy():
def __init__(self,egyik=1,masik=2):
self.egyik = egyik
self.masik = masik
def szorzat(self,egyik,masik):
return self.egyik * self.masik
class Ketto(Egy):
def __init__(self,egyik,masik):
self.masik = masik
def szorzat(self,egyik,masik):
return self.egyik * self.masik
a = int(input('Adj egy számot!'))
b = int(input('Adj még egy számot'))
egyke = Ketto(b,a)
print ('Egyik = %s' % egyke.egyik)
print ('Masik = %s' % egyke.masik)
print ('Szorzat = %s' % egyke.szorzat())