Nem olvastam el figyelmesen amit írtál.
Te is ugyanazt mondod, csak kielemezted, hogy abban az esetben mi történik.
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [sziku69:] Szólánc.
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] PLEX: multimédia az egész lakásban
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [btz:] Internet fejlesztés országosan!
- [Re:] [plevips:] Építkezünk 3. rész (2024)
- [Re:] [gban:] Ingyen kellene, de tegnapra
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Hozzászólások
cadtamas
tag
cousin333
addikt
"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 a True
-val. De a c< a+b
eredménye már egy boolean, ami lehet True
meg lehet False
.
[ Szerkesztve ]
"We spared no expense"
EQMontoya
veterán
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
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
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
Azt megtalaltam, de a leirasa szerint csak OK vagy Cancel a visszateresi erteke, itt viszont csoportos megoldas kellene.
kezdosql
tag
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
A grafikus interface egy kicsit keményebb dió lesz.
Tkinter, vagy itt van néhány modernebb változat.
Annyira nem vagyok otthon ebben a témában. Biztos van itt olyan, akinek jobb rálátása van.
[ Szerkesztve ]
kezdosql
tag
Koszonom, akkor megprobalom atragni magma rajta, hatha...
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 Pairs
Given 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
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 koroket
Mar 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 None
disclaimer: nem probaltam ki...
[ Szerkesztve ]
axioma
veterán
Bocs, ketszer olvastam ujra at es nem tunt fel, az elsoben az x= kezdetu sor ertelemszeruen nem kell, elfelejtettem kitorolni, most meg mar nem szerkeszthetem.
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
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 ]
cadtamas
tag
Tényleg!
Annyira ráfókuszáltam az indexekre, hogy erre nem is gondoltam.
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 ]
Pulsar
veterán
Rimuru
veterán
git clone?
Vigyázat, csalok!
Aureal
senior tag
De igen.
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
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
EQMontoya
veterán
Szétdobod port range-ekre, és tolod több szálon.
Illetve attól függően, hogy mondjuk helyi hálón scannelsz-e, lehet csökkenteni a timeoutot, 1s azért elég sok.
Same rules apply!
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...
É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
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
sonar
addikt
Hányas Pythonnal dolgozol?
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
2.7
A legrövidebb időt a privilegizált portok scannelésére 28 processel kaptam, 9 mp. Persze még mindig messze van az nmap teljesítményétől, de gyanús, hogy az nem pythonban készült.
[ Szerkesztve ]
https://www.coreinfinity.tech
sonar
addikt
2.x szériáknak nem az igazi a Multi thread kezelése.
Ha ilyet szeretnél akkor azt javasolnám, hogy 3.5 -tel kisérletezzél (vagy az utolsó verzióval 3.6)
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
azóta a python addonjai elég sokat fejlődtek (mármint amelyiket fejlesztik). érdemes átírni 3.6ra.
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.
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
mi alapján azonosítod a service-eket?
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.
socket.getservbyport
https://www.coreinfinity.tech
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.
Ez éppen Linuxon fut. Ahogy tesztelgettem, mintha összekeverednének a nyitott portok számai a service nevekkel, ha multithreadben futtatom. Multithread nélkül meg idétlen időkig fut...
https://www.coreinfinity.tech
sztanozs
veterán
Mondjuk elsőre nekem a nevek megfelelőnek tűnnek a portokhoz
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...
Többnyire igen, de pl. itt nem:
Open port 22 fsp - ez mi ssh helyett?
Open port 25 ftp - smtp
Open port 21 ftp - ez jó
Open port 23 ftp - telnet
https://www.coreinfinity.tech
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.
Köszi a segítséget, közben találtam egy jobb megoldást, ami elég gyors és a service-ek neveinél sem hibázik.
https://www.coreinfinity.tech
oszd meg kérlek velünk is, legalább mi is tanulunk belőle!
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.
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())