Hirdetés
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- A luxusmárkáknak kell a bitcoin, az USA jegybankjának nem
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Nagy áttörés jön a napelemek piacán, nem kell annyi hely a paneleknek
- Belenyúlt az USA az Epic Games igazgatótanácsába, nyomoz az NVIDIA
Új hozzászólás Aktív témák
-
I02S3F
addikt
Sziasztok!
Arra gondoltam, hogy okulás képpen készítenék egy system monitor alkalmazást. Első programom lenne. Van kismillió ilyen program. Szerintetek a fenti motivációból ettől még megéri megcsinálni?
Szerk. : vagy keressek valami genuine, autentikus ötletet?
[ Szerkesztve ]
-
kovisoft
őstag
válasz DrojDtroll #2696 üzenetére
Általánosságban nem tudod ezt megtenni, csak ún. mutable adattípusokra, mint pl. lista, dictionary. A példád pont menni fog, ha b egy objektum, akkor annak egy attributumát tudod módosítani egy függvényben (de nem tudod lecserélni magát az objektumot):
>>> class myclass:
... def __init__(self, initc):
... self.c = initc
...
>>> x = myclass('semmi')
>>> x.c
'semmi'
>>> def a(b):
... b.c='valami'
...
>>> a(x)
>>> x.c
'valami'De ez nem fog minden adattípusra működni. Úgy kell elképzelni, hogy pythonban nem olyan változók vannak, amiknek - ahogy a nevük is jelzi - változhat az értékük (mint pl. C-ben), hanem sokkal inkább címkék. Ugyanis amikor egy változónak új értéket adunk, akkor igazából átcímkézzük azt, hogy egy új értékre mutasson. Legalábbis ez igaz, az ún. immutable típusokra (számok, stringek, stb). Ha egy ilyen változót átadsz egy függvénynek, majd a függvényen belül változtatod az értékét, akkor igazából a paraméter változót címkézed át az új értékre, de ennek nincs hatása az eredeti változóra, amit átadtál a függvénynek.
Nincs olyan nyelvi módosító elem, hogy egy változót érték vagy referencia szerint adhass át. A függvény paraméterek mindig érték szerint vannak átadva, de mutable típusoknál az objektum referencia van érték szerint átadva.
-
cousin333
addikt
válasz DrojDtroll #2696 üzenetére
Miért, amit írtál, nem így működik? [link]
[ Szerkesztve ]
"We spared no expense"
-
DrojDtroll
veterán
Python-ban valahogyan át tudok adni referenciaként egy argumentumot?
eddig leginkább c#-ban programoztam ott volt ref keywordPélda:
meg akarom változtani c-t.def a(b):
b.c='valami'
azt akarom hogy a függvény szkópján kívül is a megváltoztatott értéke legyen a c-nek
[ Szerkesztve ]
-
-
Janos46
tag
Sziasztok!
Hobbisoknak (mint én) és (talán nem csak) kezdőknek, van egy jó oldala az OSOYOO-nak, ahol 1916/04-től havonta napjainkig közölnek megépíthető részben gyakorló, bemutató programokat. Ezek nagyobbik része arduino-val foglalkozik. Érdemlegesen Innen indul: https://osoyoo.com/2016/04/
Miután itt ragadtam távol kis hazámtól van időm böngészgetni. Most mindenek előtt ajánlom figyelmetekbe a - yandex.ru - oldalt, mert én a magam színvonalához (is) számtalan sok hasznos megvalósítható cikket találtam. Igaz minden orosz nyelvű, de mivel a Raspberry Chromium böngészőjét használom, annak a fordítója kiválóan működik, nagyon érthetően fordít. Az itt talált alábbi oldalon kezdetnek 32 érzékelő cikke is van (meg még sok egyéb), mindegyikhez tartozik C nyelvben és Pythonban írt program. Ez az oldal angol nyelvű.
https://www.sunfounder.com/learn/sensor-kit-v2-0-for-b/lesson-1-dual-color-led-sensor-kit-v2-0-for-b.html[ Szerkesztve ]
Artillery, lelkes újonc vagyok, tanulni akarok!
-
axioma
veterán
válasz cousin333 #2688 üzenetére
Eleje OK, masodik felere: versenyen time limit-re a python altalaban 5-os szorzo a C/C++-hoz kepest, aztan megis van hogy kifut az idobol. Atirom java-ra vagy ujabban (bar nem all a kezemre mert sose hasznaltam masra) C++-ra, es siman belefer. Itt 1 vagy 2 masodperc alapidokrol van szo [jellemzo adatmeret 10**5 korul], ehhez jon a szorzo, java-ra is van 2. [Ezek a tobb napos versenyek, amikor van ido atbogaraszni, az teny hogy megirni leggyorsabban python-ban tudom, azert is azt hasznalom.]
Ezert irtam, hogy sajnos ha az algoritmust a kodban kell megirni, akkor erezhetoen lassabb. Nyilvan ha valamit osszeraksz meglevo megoldasokbol, az mar egy masik eset, es az iparban az a gyakoribb, hogy nagyitoval kell keresni az algoritmikus feladatokat...[ Szerkesztve ]
-
cousin333
addikt
Nem fogalmaztam elég pontosan. Erre a méretre kb. mindegy, hogy mit használ. Ha (jóval) több adat van, akkor jöhet jól a deque, ami elvileg pont ilyen cirkuláris buffer szerű használathoz van.
Ami a sebességet illeti: van a programozás sebessége, meg a futtatásé. A kettő együtt már nem feltétlenül rosszabb a Python esetében, más nyelvekkel összevetve, hacsak nem 7/24-ben nyomják. De egy optimálisan megírt kód, ami a háttérben C függvényeket használ (tehát pl. nem "natív" Python for ciklus), szerintem nyers sebességben sem vall szégyent. Alkalmazásfüggő.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
Online Python futtatókörnyezet: [link]
Most találtam, az alapokhoz jónak tűnik"We spared no expense"
-
cousin333
addikt
válasz cousin333 #2681 üzenetére
Meg is feledkeztem arról, hogy a sztring is iterálható, szóval a kód egyszerűsödhet kissé:
import itertools
hossz = 5
nums = itertools.product('0123456789abcdef', repeat=hossz)
prods = itertools.product(('02', '03'), (''.join(i) for i in nums))
with open('d:/test_output.txt', 'w') as ofile
for pre, num in prods:
ofile.write(pre + num + '\n')
[ Szerkesztve ]
"We spared no expense"
-
-
kovisoft
őstag
válasz davidvarga #2680 üzenetére
Nem írtad, milyen hosszú sorokról lehet szó, de ha abból indulok ki, ami példákat írtál, akkor az első 2 számjegy után 8 db hexadecimális számjegy jön. Ilyenből 16^8 db van, mindegyikhez 2-féle előtag jöhet (02, 03), egy sorba a sortöréssel együtt 11 karakter kerül (Windowson 12), ez összesen 11*2*16^8, ami 94 gigabájt. Biztos ezt akarod?
Ha igen, akkor egy nem túl szép, de egyszerű megoldás egy ciklus a ['02, '03']-ra, ezen belül 8 db egymásba ágyazott ciklus, mind ezen a listán megy végig:
['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']
-
cousin333
addikt
válasz davidvarga #2680 üzenetére
Szerintem valahogy így, bár vannak benne "nem szép" elemek...
import itertools
hossz = 5
x = [hex(i)[-1] for i in range(16)]
with open('d:/test_output.txt', 'w') as ofile:
nums = itertools.product(x, repeat=hossz)
prods = itertools.product(('02', '03'), (''.join(i) for i in nums))
for pre, num in prods:
ofile.write(pre + num + '\n')
A hossz értelemszerűen a számok hossza a 02/03 nélkül.
ui: A hosszal vigyázz, mert hamar elszáll a fájlméret!
[ Szerkesztve ]
"We spared no expense"
-
davidvarga
tag
Sziasztok! Hogyan lehet egy ilyen karakter sornak az összes lehetséges variációját lementeni egy text fájlba, úgy hogy az összes variáció 02 és 03-al kezdődjön, a lehetséges karakterek pedig 0-9 és a-f ig legyenek. Pl
0289aab405
03bf0627ce
0279be667e
Köszönöm. -
axioma
veterán
válasz cousin333 #2678 üzenetére
Nem feltetlen gyorsabb a deque ekkora meretben. Egy versenyfeladatot irt meg ismeros azzal, igaz nem is a legjobb algo-val, de utana hiaba probaltam minel kevesbe hozzanyulni a kodjahoz (demonstracios cellal volt az egesz) ugy, hogy atmenjen es ne TLE-re fusson, a deque-val nem sikerult teljesen.
Aztan lehet hogy jelenleg pont hasznalna, csak jeleztem hogy nem erdemes egybol annak nekiesni. Bar ha idokritikus a dolog, akkor meg eleve nem erdemes python-nal nekiesni
Amugy en is tuple, sort, visszairas megoldast alkalmaznam. Jobb esetben beleillik a kodba hogy ne kelljen kulon list-kent eloallni. Tuple-ben is lehet utana binarisan keresni pl. (bar a meret nem annyira indokolja). -
cousin333
addikt
válasz alec.cs #2675 üzenetére
Én kezdetnek összefűzném őket egy tuple-t tartalmazó listává:
lista = [(i, j) for i, j in zip(list1, list2)]
Ennyi elemnél mondjuk még nem lesz teljesítménybeli gondod. De ha a sebesség is számít, akkor lista helyett deque.
Esetleg készíthetsz egy generátor függvényt, ami az adott pozícióból indexelve adja vissza az értékeket. Tehát nem a listát módosítod, hanem a kiolvasást végzed máshogy.
"We spared no expense"
-
-
kovisoft
őstag
válasz alec.cs #2675 üzenetére
Gondolom, nem ez a leggyorsabb módszer, de valószínűleg az egyik legegyszerűbb:
>>> list1=list1[3:]+list1[:3]
>>> list2=list2[3:]+list2[:3]
>>> list1
['4', '5', '1', '2', '3']
>>> list2
['Négy', 'Öt', 'Egy', 'Kettő', 'Három']
Ha esetleg félreértettem, és előtte meg kell keresni a '4' elem pozícióját, akkor először kell egy ilyesmi:>>> list1.index('4')
3[ Szerkesztve ]
-
alec.cs
tag
Sziasztok!
Hogy lehet ezt a legegyszerűbben megoldani (egy példát mutatok):
Jelenlegi állapot:
list1 = [ '1' , '2' , '3', '4', '5']
list2 = [ 'Egy' , 'Kettő' , 'Három', 'Négy', 'Öt']Ezt kellene elérni:
list1 = [ '4' , '5' , '1', '2', '3']
list2 = [ 'Négy', 'Öt' , 'Egy' , 'Kettő' , 'Három' ]Tehát, egy lista1 tetszőleges elemétől kezdve (mostani példában: '4') az utána lévő elemeket a list1 elejére kellene tenni úgy, hogy a lista2 elemei is hasonlóan kerüljenek előre.
A előbbi példa mutatja, hogy is kellene megoldani.A lista1 és a lista2 egyforma nagyságú (max 100 elem).
A lista1 elemei ismertek (string-ek), de a lista2 elemei nem ismertek, csak azt tudni, hogy ugyan annyi elemet tartalmaz, mint a lista1.Ha a lista1-ben előre kerül néhány elem, akkor ugyanannyinak kell előre kerülnie a lista2-ben is (ugyanabba a pozícióba).
Hogy lehet ezt úgy megoldani, hogy viszonylag gyorsan működjön?
-
davidvarga
tag
válasz davidvarga #2673 üzenetére
megoldódott .
-
davidvarga
tag
Hogy kell megváltoztatni ezt a kódot hogy a kimenetet egy text fájlba mentse?
with open("pubkey.txt") as f:
for line in f:
print(pubtoaddr(line.strip()))[ Szerkesztve ]
-
-
Rimuru
veterán
válasz davidvarga #2669 üzenetére
A grep sehogy, de a curl tud.
igy nezne ki:curl localhost/foo | grep bar
Itt a
|
a lenyeg, a curl kimenetet atadja a grep-nek (ami a keresest vegzi).Vigyázat, csalok!
-
-
davidvarga
tag
Sziasztok! Létezik olyan program ami nagyon gyorsan megkeres egy számokból és betűkből álló karakter sort pl.: localhost:4050 címen?
-
davidvarga
tag
válasz davidvarga #2665 üzenetére
Megoldódott
-
davidvarga
tag
a python2 szkriptnél pedig ezt (2van egy 2es és 3.5ös)
Hiba a config file-ban
Traceback (most recent call last):
File "C:\Users\david\OneDrive\Desktop\vmi_web\webparse.py", line 58, in <module>
config.set('SETTINGS','SAVED',SAVED)
File "C:\Python\lib\ConfigParser.py", line 396, in set
raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'SETTINGS'
ugyen ez a config fájl volt és ment régen most meg ez -
davidvarga
tag
sziasztok mi lehet a gond? Egy itteni koléga írta nekem anno és jó is volt, viszont most ezt a hibaüzenetet kapom
python3 webparse_p35.py
BASEURL: http://www.pythonforbeginners.com/python-on-the-web/web-scraping-with-beautifulsoup/
START_NUM: 1
END_NUM: 10
POSTSTRING: _page.html
KEYWORDLIST: web,Scraping,harom - Type: <class 'str'>
Traceback (most recent call last):
File "webparse_p35.py", line 137, in <module>
main()
File "webparse_p35.py", line 106, in main
if os.path.exists(KEYWORDFILE):
File "/usr/lib/python3.6/genericpath.py", line 19, in exists
os.stat(path)
TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType -
oszi666
őstag
-
Siriusb
veterán
-
cousin333
addikt
válasz cousin333 #2660 üzenetére
Még egy példa a hivatalos dokumentációból. Tuple-lista sorba rendezése a második elemek alapján:
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1])
Eredmény:
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')][ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz oszi666 #2659 üzenetére
A lambda alapvetően egyszerű függvények helyett van, ami így nem foglal nevet, és kompaktabbul használható, mert nem kell előtte definiálni és elég egy sort írni. Nyilván nem kell mindig ezt használni, de néha jól jöhet.
Egy példa a pandas modul használatával:
import pandas as pd
data = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
Az eredmény egy indexelt "táblázat", oszlop fejlécekkel:
A B
0 1 4
1 2 5
2 3 6Tegyük fel, hogy egy számításhoz minden sorban össze akarom adni az A oszlop köbét és a B oszlop felét. Hogyan lehet ezt megcsinálni? Létezik az apply() metódus, ami soronként, vagy oszloponként végigmegy a táblázaton, és az első argumentumban megadott függvényt futtatja. Az első megoldás, hogy készítünk egy függvényt, majd ezt használjuk:
def process(sor):
return sor.A**3 + sor.B / 2
data.apply(process, axis=1)
Az eredmény:
0 3.0
1 10.5
2 30.0
dtype: float64A megoldás tehát működik, viszont a process mostantól egy foglalt név (vagy felülír egy korábbit) olyasvalamire, amit talán soha többé nem használunk. Ráadásul írtunk 2 extra sort. Ugyanez lambda függvénnyel jóval egyszerűbb:
data.apply(lambda x: x.A**3 + x.B/2, axis=1)
A helyzet hasonló a list comprehension-hoz. Azt is meg tudod oldani for ciklussal, de miért írnád azt, hogy
a = [1, 2, 3, 4, 5, 6, 7, 8]
b = []
for elem in a:
if elem % 2 == 0:
b.append(elem**2)
ha írhatod jóval egyszerűbben (és gyorsabban) is:
a = [1, 2, 3, 4, 5, 6, 7, 8]
b = [elem**2 for elem in a if a % 2 == 0]
Sőt, utóbbi esetben, ha mondjuk alapvetően csak ezen négyzetszámoknak az összegére vagyunk kíváncsiak, akkor azt is írhatjuk, hogy:
szumma = sum(elem**2 for elem in a if a % 2 == 0)
és akkor nem számoltunk ki és tároltunk el feleslegesen egy egész listát.
[ Szerkesztve ]
"We spared no expense"
-
oszi666
őstag
Sziasztok
valaki el tudná magyarázni miért hasznosak a lambda függvények? Nem teljesen értem, hogy amit egy lambdafüggvénnyel megcsinálok, azt meg tudom anélkül is. Lehet még nem futottam bele olyan esetbe, hogy pont ez kelljen. Értem, hogy lehet anonim és nem foglalja akkor a memóriát de mégsem értem mikor kellene őket használniIt is not birth, marriage, or death, but gastrulation, which is truly the most important time in your life.
-
kovisoft
őstag
válasz kissb528 #2656 üzenetére
Gondolom, a szövegfájlod nem utf-8 kódolású, hanem közép-európai (latin-2 vagy iso-8859-2 vagy micsoda), legalábbis a 0xe1 karakterre panaszkodik, ami talán az á betű kódja. Meg kellene próbálni a fentiek közül valamelyik kódolással beolvasni utf-8 helyett. De kipróbálhatod encoding nélkül is, csak akkor nem fogsz tudni rendesen kezelni ékezetes szavakat. Vagy pedig átkonvertálod a fájlodat utf-8 formátumra.
-
kissb528
friss újonc
válasz kovisoft #2655 üzenetére
Most égek ki teljsen....
file = open("magyar értelmező szótár a-betű.txt","r",encoding="utf-8")
text = file.read()
list1 = text.splitlines()
file.close()
És még így sem működik....Traceback (most recent call last):
File "/home/xy/PycharmProjects/Kísérletezés/Experiment1.py", line 26, in <module>
text = file.read()
File "/usr/lib/python3.5/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe1 in position 3: invalid continuation byte
Arra gondoltam még hogy talán eleve a fájllal lehet baj mait be akarok olvasni? Pedig az egy sima plain text egy jegyzettömbfájl. Valmi ötlet? -
kissb528
friss újonc
válasz kovisoft #2653 üzenetére
Rendben köszi. Akkor a javított verzióm így néz ki:
answer = input(" ")
#list = ["alma", "apa", "alap", "alak", "auto"]
while answer[0] == "a":
file = open("magyar értelmező szótár a-betű.txt","rt",encoding='utf-8') and print("fájl megnyitva")
text = file.read()
print("fájl beolvasva")
list1 = text.splitlines()
print("fájl listázva")
if answer in list1:
print("benne van a szótárban")
else:
print("új listához adás")
file.close()
break
else:
print("nincs benne az A szótárban")
Viszont így sajnos ezt a hibaüzenetet dobálja:alma
Traceback (most recent call last):
File "/home/xy/PycharmProjects/Kísérletezés/Experiment1.py", line 34, in <module>
text = file.read()
AttributeError: 'NoneType' object has no attribute 'read'
fájl megnyitva
Ötlet hol ronthattam el? Biztos nagyon alap hiba de hát ennyire kező vagyok....[ Szerkesztve ]
-
kovisoft
őstag
válasz kissb528 #2652 üzenetére
Megnyitás után file.read()-del beolvasod a file-t egy string változóba, majd splitlines()-szal soronként felbontod egy listába:
text=file.read()
list=text.splitlines()
A break pedig nem jó helyen van, mert nem zárja a file-t, ha sikeresen megnyitotta. Természetesen a close előtt kell beolvasni a file-t.
[ Szerkesztve ]
-
kissb528
friss újonc
Hello mindenkinek!
Frissen csatlakoztam és most ismerkedem csak a pythonnal.
Olyan kérdésem lenne hogy hogy tudok egy .txt fájlt megnyitni úgy hogy a python a txt tartamát mint egy lista elemeit értelmezze? Vagy bevegye egy listába. Eddig így működik. Va ugye egy változóm az answer ez felvesz egy értéket amit a kedves felhasználó begépel. Ha ez az érték egy a betűvel kezdődő szó akkor ugye megnyitja a megfelelő szótárfájlt és ki is írja hogy fájl beolvasva eddig megy. Aztán ha nem a betűs a begépelt szó akkor neincs benne a szótárban üzenetet kapunk. Ezt tovább szeretném finomítani azzal hogy ténylegesen ellenőrizze hogy benne e van a begépelt szó vagy csak annyi hogy egy a betűs halandzsa. Erre azt találtam ki hogy talán egy if állítással el lehetne intézni. Ha a szó benne van a listában akkor kiítja hogy benne van. Ha nincs új listához adja. Mint már fent említettem a kettő összekapcsolása nem megy. Hogy lesz a txtből egy lista amiban kereshet a program??answer = input(" ")
while answer[0] == "a":
file = open("magyar értelmező szótár a-betű.txt","rt",encoding='utf-8') and print("fájl beolvasva")
break
file.close()
else:
print("nincs benne az A szótárban")if answer in list:
print("benne van a szótárban")
else:
print("új listához adás") -
kovisoft
őstag
-
Janos46
tag
Sziasztok!
Most, hogy a DHT11-el szórakozok, egy fura dologra lettem figyelmes.Kipróbáltam 2 programot, és az eredmény meglepett. A HW környezet változatlan, csak a SW más. Mellékelem a programokat, nem nagyok. Az elsőnél akár órákig is futhat hibátlanul, a másodiknál pedig kb. 10%-ban - Sensor failure. Check wiring. - üzenetet kapok. Csak úgy kíváncsiságból érdekelne az oka ha valaki meg tudná mondani. Mert ez azt is jelentheti, hogy a jelenséget nem feltétlenül a HW-ban kell keresni minden esetben.
Köszi a választ.csvfile = "/home/pi/My-logs/temp_181.txt" # Létre kell előbb hozni ezt a fájlt
import time
from datetime import datetime
import Adafruit_DHT
pin_dht11 = 21
while True:
date = datetime.now()
timestamp = date.strftime("%Y/%m/%d %H:%M:%S")
#Read the DHT11 device to get humidity and temperature
hum_dht11, temp_dht11 = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, pin_dht11)
values_10 = timestamp, round(temp_dht11,1), round(hum_dht11,1)
with open(csvfile, "a") as f:
f.write (str(values_10) + "\n")
print(values_10)
f.close()
time.sleep(3)
-------------
import Adafruit_DHT
import time
DHT_SENSOR = Adafruit_DHT.DHT11
DHT_PIN = 21
while True:
humidity, temperature = Adafruit_DHT.read(DHT_SENSOR, DHT_PIN)
if humidity is not None and temperature is not None:
print("Temp={0:0.1f}C Humidity={1:0.1f}%".format(temperature, humidity))
else:
print("Sensor failure. Check wiring.");
time.sleep(3);
Artillery, lelkes újonc vagyok, tanulni akarok!
-
lekai
friss újonc
Sziasztok most leszedtem a pythont és a pycharm programokat. Mikor újra telepítettem akkor meg nem kommunikálnak egymással. Nem tudok futtatni semmit. Nincs futtató program. Már vagy 4x-er ujra telepítettem.
[ Szerkesztve ]
-
cousin333
addikt
Ez melyik 2-es verzió pontosan? Én kipróbáltam 2.7.17-el, ami elvileg a legfrissebb. Ha azt írod be, hogy vacak, akkor kivételt dob (NameError), tehát nem is fut le. Ha azt írom, hogy 'vacak', tehát idézőjelek között, akkor viszont jó. Egyébként meg, ahogy kovisoft írja, használd a raw_input függvényt. De inkább a Python 3-at tedd fel.
[ Szerkesztve ]
"We spared no expense"
-
lekai
friss újonc
Nagyon köszönöm.
De nem értem nálam mi a baj.
Python 2x használok
Amit még észrevettem, hogy mikor futtatni szeretnék valamit először akkor a futtatási ablakban be kell állítanom, hogy python.exe t futtasson. -
kovisoft
őstag
Letöltöttem és kipróbáltam 3-as pythonnal, nálam ez is jól működik. Itt van, hogyan futtattam:
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exec(open('jelszó progi.py').read())
Mi a jelszo? vacak
Ugyes vagy!
>>> -
lekai
friss újonc
https://drive.google.com/open?id=11f8ze49M-CyvpDcqD3mHRw5y3IPe9Y6O
köszönöm
-
kovisoft
őstag
Ha nem használsz szóközt, akkor esetleg próbáld ki, hogy lecseréled a tab-okat szóközökre. Vagy tegyél be debug kiírásokat a kódba, hogy lásd, merre jár és mi a változók értéke. De ha felrakod valahová a kódodat változatlan formában (pl. zip-elve), akkor szívesen kipróbálom, hogy nálam megy-e.
-
lekai
friss újonc
köszi a választ
nem használok szoközt : dob le az aktuális helyre
az enyém pont úgy néz ki mint a tiéd, csak a bemásolásnál nem raktam mindent ugyan oda. -
kovisoft
őstag
Kipróbáltam a kódodat és nálam működik, ha a vacak jelszót írom be. De mivel az idemásolt kódodban az első indent 5-ös, a második 7-es, ezért az a tippem, hogy nálad esetleg keverednek szóköz és tab karakterek. Ezeket kellene megnézni és egységesíteni. És az indentálás mértéke lehetőleg mindig ugyanannak a számnak a többszöröse legyen, pl. 4, 8, 12, stb szókoz úgy, hogy egységesen vagy mindig szóközt használsz vagy mindig tab-ot.
-
lekai
friss újonc
pont úgy néz ki
folyton azt írja ki Mi a jelszo?jelszo = 'vacak'
bemenet = input('Mi a jelszo? ')
proba = 0
while bemenet != jelszo:
proba += 1
if proba == 3:
print('Rendszer lezarva! ')
break
print('Rossz jelszo, probald ujra! ')
bemenet = input('Mi a jelszo? ')
if bemenet == jelszo:
print('Ugyes vagy! ')[ Szerkesztve ]
-
kovisoft
őstag
Ez most sem sikerült. Válaszd a hozzászólás szerkesztőben a </> kinézetű ikont és abba másold bele a kódodat, ügyelve az indentálásra. Valahogy így kellene kinéznie, de nem biztos, hogy nálad is így van indentálva:
jelszo = 'vacak'
bemenet = input('Mi a jelszo? ')
proba = 0
while bemenet != jelszo:
proba += 1
if proba == 3:
print('Rendszer lezarva! ')
break
print('Rossz jelszo, probald ujra! ')
bemenet = input('Mi a jelszo? ')
if bemenet == jelszo:
print('Ugyes vagy! ')[ Szerkesztve ]
-
lekai
friss újonc
jelszo = 'vacak'
bemenet = input('Mi a jelszo? ')
proba = 0
while bemenet != jelszo:
proba += 1
if proba == 3:
print('Rendszer lezarva! ')
break
print('Rossz jelszo, probald ujra! ')
bemenet = input('Mi a jelszo? ')
if bemenet == jelszo:
print('Ugyes vagy! ') -
lekai
friss újonc
Sziasztok!
Nagyon kezdő vagyok viszont lelkes tanuló.jelszo = 'vacak'
bemenet = input('Mi a jelszo? ')
proba = 0
while bemenet != jelszo:
proba += 1
if proba == 3:
print('Rendszer lezarva! ')
break
print('Rossz jelszo, probald ujra! ')
bemenet = input('Mi a jelszo? ')
if bemenet == jelszo:
print('Ugyes vagy! ')kérdezném miért nem működik ez a kulcs? Videon nézve működik.
Válasz köszönöm.
Tisztelettel Krisztián -
Rimuru
veterán
-
davidvarga
tag
Sziasztok! Olyan szkriptet keresek ami egy txt fájlban (egymás alatt) felsorolt szavakat tartalmaz és ezeket a szavakat szeretném megkeresni egy másik txt fájlban úgy hogy listázza ki az egyezést vagy csak sorolja fel. Köszönöm a tippet hogy itt kérdezzem sztanozs fórumtársnak és köszönöm előre is.
-
-
-
válasz velizare #2625 üzenetére
A connection refused rendben van, a live hostok azt küldik vissza. Az egyetlen anomália, amit nem értek, ha a range első hostja offline, akkor mindig OSError: no route to host-ot kapok, a többi offline-ra socket timeoutot, az online rendszerekre pedig connection refused-ot.
https://www.coreinfinity.tech
-
válasz sztanozs #2624 üzenetére
Ezt csak a saját hálón belül használom, nem kell, hogy kimenjen az internetre.
Kovisoft: ha kívülről célzod meg a 0-s portot, akkor host discovery célokra kiválóan alkalmas. Ami meglepett, hogy pl. az nmap a mobilokat nem találta meg, de ez igen. Megjegyzés: nmappel is tudsz 0-s scant csinálni.
https://www.coreinfinity.tech
-
nagyúr
itt egész jól leírják: [link]
tl, dr: tradicionális *nix implementáció miatt kapsz connection refusedet.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.
-
sztanozs
veterán
Internetről:
Many internet service providers (ISPs) block traffic on port 0 — both incoming and outgoing messages — to guard against these exploits.Egyébként elképzelhető, hogy bizonyos OS-ek sem routolnak tcp/0 vagy udp/0-ra...
Egyébként, ha kifejezetten egy 0-s porton hallgató szervízt kereső szkennert szeretnél írni, arra a python szvsz nem lesz a megfelelő megoldás.
[ 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
Nem vagyok hálózati guru, de szerintem azért kapsz connection refusedot, mert a 0-s porthoz nem lehet kapcsolódni. A 0-s port arra van fenntartva, hogy dinamikusan lehessen egy szabad portot kiosztani (ami utána nem a 0 lesz). Ha port scannert akarsz csinálni, akkor minden címre végig kellene pásztázni a portokat 1-től pl. 1024-ig. Vagy csak egy adott porthoz kellene kapcsolódni, ami mindegyik hoston nyitva van. Vagy csak szimplán pingelni kellene a címeket.
-
Írkálok egy egyszerű network scannert, ami a célgépek 0-s portjához kapcsolódna. Teljesen mindegy, mi a kezdő IP-cím, annál mindig no route to host hibát kapok, a többi offline címre az elvárt socket timeoutot. Az online címek connection refusedot küldenek vissza (akkor is, ha ez az egyetlen vizsgálandó cím).
Tudja valaki, mitől lehet a routing hibaüzenet?
https://www.coreinfinity.tech
-
cousin333
addikt
válasz 0xmilan #2617 üzenetére
Ebben az esetben nem biztos, hogy jobb, mivel sosem keveredik ki a
while True
ciklusbólRandom hint: az
if
így egy fokkal szebben nézne ki (ha már egyszer lehet ilyet):if humidity is not None and 0 <= humidity <= 100 and temperature is not None and -100 < temperature < 150:
"We spared no expense"
-
-
eldvor
csendes tag
Igen, köszönöm beraktam a ciklus elejére az csatlakozást és megoldotta a problémát
iT kontár
-
eldvor
csendes tag
válasz cousin333 #2607 üzenetére
Szia!
Köszönöm! Azóta két tabig én is nagy nehezen eljutottam, le is fut az elsőre, de utána a következő hibákat kapom:
Traceback (most recent call last):
File "temptodb2.py", line 20, in <module>
cur.execute("INSERT INTO TH(THdate, THtemperature, THhumidity) VALUES ('" + dt + "'," + str(temperature) + "," + str(humidity) + ")")
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
_mysql_exceptions.InterfaceError: (0, '')Ez nekem már full magas, sajnos python tudásom elég féllábas
iT kontár
-
cousin333
addikt
Két behúzás is kell bele:
while True:
if humidity is not None and humidity >= 0.0 and humidity <= 100.0 and temperature is not None and temperature > -100.0 and temperature < 150.0:
cur = db.cursor()
cur.execute("INSERT INTO TH(THdate, THtemperature, THhumidity) VALUES ('" + dt + "'," + str(temperature) + "," + str(humidity) + ")")
db.commit()
cur.close()
del cur
db.close()
time.sleep(300)
[ Szerkesztve ]
"We spared no expense"
-
-
Itt a második sor hibádzik:
while True:
humidity is not None and humidity >= 0.0 and humidity <= 100.0 and temperature is not None and temperature > -100.0 and temperature < 150.0:Mit is akartál vele?
A formázásod még mindig nem tökéletes. Egyben kéne az egész kódot formázni és nem soronként.
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
eldvor
csendes tag
Elnézést:
#!/usr/bin/python
import sys, MySQLdb, Adafruit_DHT, datetime, time
#
pin = 17
#
sensor = Adafruit_DHT.DHT11
#
db = MySQLdb.connect(host='localhost',user='logger', passwd='*******', ,db='home')
#
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
#
while True:
humidity is not None and humidity >= 0.0 and humidity <= 100.0 and temperature is not None and temperature > -100.0 and temperature < 150.0:
cur = db.cursor()
cur.execute("INSERT INTO TH(THdate, THtemperature, THhumidity) VALUES ('" + dt + "'," + str(temperature) + "," + str(humidity) + ")")
db.commit()
cur.close()
del cur
db.close()
time.sleep(300)
iT kontár
-
Új hozzászólás Aktív témák
- HP 630 laptop (15,6/i3-G2/4GB/500HDD/Magyar/Windows7)
- GAMER Ryzen 5 3600 / RX 6600 XT 8GB / 16GB DDR4 / 512GB NVME / Beszámítás / Garancia
- Dell Latitude 3490 laptop (14/i3-G7/8GB/128SSD/AkkuX)
- Meta Quest 3 128gb +kiegészítők! (Garanciális)
- Volkswagen Passat Variant 2.0 TDI DSG LED facelift, új vezérlés, sérülésmentes
- Xbox 360 eredeti vezeték nélküli fekete kontroller joystick
- Komplett bányagép videókártyák nélkül eladó
- Samsung Galaxy S24 okostelefon független 2027-ig Samsung.hu garancia + ESR fólia
- Garanciás,ASUS TUF Gaming GeForce RTX 3070 Ti OC 8GB GDDR6X 256bit,dobozos,hibátlan!
- Zyxel FWA510 5G SIM-kártyás, WIFi6-os modem + router - FÜGGETLEN, GARANCIÁLIS
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Axon Labs Kft.
Város: Budapest