Hirdetés

2024. május 3., péntek

Gyorskeresés

Hozzászólások

(#1151) sztanozs válasza adam0913 (#1150) üzenetére


sztanozs
veterán

Teszel a szöveg elé egy aposztrofot - akkor fixen szövegnek veszi a tartalmat.

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...

(#1152) adam0913 válasza sztanozs (#1151) üzenetére


adam0913
tag

Az egész datatable-t íratom ki, így ez sajnos lehetetlen.
output.writerows(datatable)

(#1153) EQMontoya válasza adam0913 (#1152) üzenetére


EQMontoya
veterán

Az egész datatable-t íratom ki

így ez sajnos lehetetlen.

Nem vélek a kettő között felfedezni ok-okozati összefüggést.
Mielőtt kiírod, tudsz rajta módosítani.

Same rules apply!

(#1154) kezdosql


kezdosql
tag

Neki kell allnom pythont tanulni, telepitettem a 3,62-ot, begyujtottem az elerheto magyar doksikat, de atolvasva oket remenytelennek latom a helyzetet, hogy hetfore irjak egy peldaprogramot, tul sok idot igenyel, hogy egyaltalan atlassam, mi mire jo.

Segitsegeteket kerem, hogyan tudok "modularisan" haladni?
Hetfore ket, egyszeruen hangzo rutint kell irnom, de nem tudom, hogyan kezdjek hozza.

Az elsonel harom halmazt kell definialni, pl. A1, A2 es A3, amikbe 0-9 kozotti egesz szamokat kell feltolteni.
Minimum3 es maximum 9 elem lehet minden tomb.
Ezutan ki kell listazni, hogy mely szamok szerepelnek mind a harom tombben.

A masik feladatnal husz elemet kell definialni, mindegyik egy betu legyen es meg kell adni, hogy melyiknek milyen szine van, 12 szinbol lehet legfeljebb 3 szint kivalasztani.
Majd ki kell irni, hogy szinenkent hany elem van, ami 0 es 20 kozotti szam lehet.
Vegul ki kell listazni ahhoz a legtobb, egyetlen szinhez tartozo elemeket.

Egy kis segitseget kernek az elindulashoz.

(#1155) sztanozs válasza kezdosql (#1154) üzenetére


sztanozs
veterán

Milyen nyelven tudsz programozni?

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...

(#1156) cadtamas válasza kezdosql (#1154) üzenetére


cadtamas
tag

1. feladat:

Létre kell hozni 3 üres listát.
Utána létre kell hozni egy while ciklust, amiből csak akkor lehet kilépni ha elérte a lista a 3. elemet és az input mezőben csak üres string van, (if,elif,else)
Itt érdemes a try és except metódusokat használni, hogy kiszűrd a nem megfelelő inputot
ha eléri a 9. elemet automatikusan kilép és átugrik a következő listára, egészen a végéig ( break)
Ha megvan mindhárom lista for és print metódussal tudod kilistázni
A listák elemeit a len metódus számolja meg.

Ha valamit kihagytam, a többiek majd kijavítanak. :)

[ Szerkesztve ]

(#1157) cadtamas


cadtamas
tag

Tudok ennél konkrétabban is segíteni, de ha utánanézel a parancsoknak és a működésüknek, szerintem menni fog.

(#1158) sztanozs válasza kezdosql (#1154) üzenetére


sztanozs
veterán

A feladatokhoz:
mind a kettőhöz - hogy kell feltölteni az elemeket, mi határozza meg mennyi elem lesz?
(1) magyarán csak ki kell listázni három tömböt?
(2) ezekhez csak az alap tömb kezelési kulcsszavaknek kell utána nézni (és egy matekos kucsszó): list, dict, defaultdict, max

Ha van programozásio tapasztalatod, akoor a fentieknek elégnekk kell lennie mankónak..

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...

(#1159) kezdosql válasza cadtamas (#1156) üzenetére


kezdosql
tag

Koszonom, most el tudok indulni - mindjart kinyomtatom a szazegynehany oldalas leirast es vegigsetalok rajta a folyoson. ;]

PS:
Gondolom, nehany tanar forog a sirjaban, hogy micsoda intelligens programnyelv az, aminek a ciklusabol break-kel kilepni... :F

[ Szerkesztve ]

(#1160) sztanozs válasza kezdosql (#1159) üzenetére


sztanozs
veterán

majd minden intelligens nyelv ciklusából break-kel kell kilépni: wiki:break

[ 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...

(#1161) cadtamas válasza kezdosql (#1159) üzenetére


cadtamas
tag

Én kérek elnézést.

(#1162) Rimuru válasza kezdosql (#1159) üzenetére


Rimuru
veterán

Te a goto-t szereted ugye? ;) ;]

Vigyázat, csalok!

(#1163) adam0913


adam0913
tag

Nekem az lenne a problémám, hogy amikor csv-ből MYSQLdb-be íratok ki adatokat és autoincrementet használok primary ID-ként az 1000. sornál meg áll a történet, és nem tölti tovább :(

Ezt valaki tudja esetleg, hogy miért? Hiába állítok be INT-et, BIG INT-et, vagy bármit neki, 1000-ig szépen kilistázza, utána pedig meg áll (jelzem hiba üzenet nélkül).

A hozzá tartozó kódrészletem :

`ID` BIGINT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8"""

(#1164) adam0913 válasza adam0913 (#1163) üzenetére


adam0913
tag

Meg is válaszolom a kérdésemet, hátha valaki hasonló problémába ütközne a közeljövőben!
A MYSQL Workbench-en belül, amikor megnyitjuk a táblát van egy fül : "toggle limitation of the records number" amit ha "Don't limit"-re állítunk láthatóvá válik minden :B

(#1165) cadtamas válasza adam0913 (#1164) üzenetére


cadtamas
tag

Önsegélyező egylet :p

(#1166) tvamos


tvamos
nagyúr

Sziasztok!
A kovetkezo a problemam: epitettem egy "muszert", ami feszultseget mer, arduino alapon, es soroson elkuldi PC-re. Ez eddig ugye nem egy nagy truvaj... tettem ra optocsatolot, hogy galvanikusan le legyen valasztva. Hanem mostmar kifogytam a soros portbol, mert 8 ilyet akarok a gephez kotni. Tettem a panelocskamra egy RS485 drivert, meg az FTDI-hoz is toltam egy drivert, amin az adat iranyt a DTR szignallal kivantam allitani. A python kodom ugye kesz, ami eddig "patentul" ment, (kevesse igenyes, de mukodik, ir a kepernyore, ment file-ba, ilyenek, mondjuk kilepni nem lehet belole rendesen, de most ez mindegy is,) meg tudom kapcsolgatni a DTR-t, de sehogyan sem tudom szinkronba hozni a DTR kapcsolgatasat a kommunikcioval. Ott van a kutya elasva, hogy kapcsolom adasra a konvertert, tolom ki az adatokat, de azt nem tudom, mikor szalad ki az adat a soros porton.
Tudnatok ebben segiteni? Elore is koszi a segitseget!

Jut is eszembe... most W7-en nyomulok, de jo lenne, ha tudnam migralni RP-ra. (Raspbian)
Most Python 2.7-et hasznalok, mert a cegnel is az van, es igy egyszerubb nekem.

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#1167) kezdosql válasza Rimuru (#1162) üzenetére


kezdosql
tag

Pont az ellenkezojet allitod, mint amit leirtam.

Nekem meg azt tanitottak, hogy ugy kell megirni a ciklust, hogy az vegigfusson.
Ha azt irod, hogy 1-x legyen a futasi tartomany, addig kell ismetelnie, amig x erteke el nem eri a beallitottat.
Kulonosen, hogy ott van az else ag is, igy azzal lehet kezelni a kiveteleket.

(#1168) kezdosql válasza sztanozs (#1158) üzenetére


kezdosql
tag

Sajnos nem ilyen egyszeru. Eloszor fel kell oket tolteni, majd kozos elemeket keresni bennuk, ami tobb tombben szerepel es azok szamat kell megadni, hany ilyen van, es vegul ki kell listazni oket sorrendben.

Ezert gondoltam, hogy inkabb halmazelmeleti feladat, de ha tombokkel kell megoldani, mas logikat kell talalnom hozza.

Mindenkihez:
Az elte oldalan levo python3-as leirast olvasom, de minden fejezetnel kiderul, hogy az 1.5 vagy 2.3 es hasonlo verziok alatt irodtak evekkel korabban.
Megnyugodhatok, hogy akkor azon a parancsok azota nem valtoztak, vagy job, ha megprobalok megbizhatobb forrast talalni?

(#1169) velizare válasza kezdosql (#1168) üzenetére


velizare
nagyúr

megnyugodhatsz, elég sok minden változott. 1.5 óta meg pláne. ettől még nem kell kidobni a 2.7 tutorialt, ha konkrét problémád van, a python doksi elég részletes.

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.

(#1170) sztanozs válasza kezdosql (#1167) üzenetére


sztanozs
veterán

Nekem meg azt tanitottak, hogy ugy kell megirni a ciklust, hogy az vegigfusson.

Szerintem ez egetverő baromság, de nem vagyok egy professzor, hogy az oktatási anyagon vitatkozzam.

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...

(#1171) EQMontoya válasza sztanozs (#1170) üzenetére


EQMontoya
veterán

Már egyetemen is sokszor volt az az érzésünk, hogy "aki tudja, az megél belőle, aki nem tudja, az meg tanítja."...

Same rules apply!

(#1172) kezdosql


kezdosql
tag

Tudnatok segiteni az alabbiak magyar megfelelojeben?

A Python forditoja szerint ezek magyarra lefordithatatlan szavak:

argument
handler (exeption-nel fordul elo)
List Comprehensions
prompt
right-hand side expression
sequence unpacking
shortcut operators
slice notation
string-literal
token
tuple

(#1173) EQMontoya válasza kezdosql (#1172) üzenetére


EQMontoya
veterán

argument: --...
handler (exeption-nel fordul elo): except:
List Comprehensions: [x for x in ... if ...]
prompt: ~
right-hand side expression: ami jobb oldalt van
sequence unpacking: for x in ...
shortcut operators: && illetve ||
slice notation: X[y:z]
string-literal: "..."
tuple: (..., ..., ...)

Same rules apply!

(#1174) tvamos válasza tvamos (#1166) üzenetére


tvamos
nagyúr

Erre az RS485 problemara nincs otlet? Majd megprobalom akkor ez alapjan megegyszer: [link] Csak azt nem ertem, hogy miert nem megy az en hardware-emen.

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#1175) kezdosql válasza EQMontoya (#1173) üzenetére


kezdosql
tag

Koszonom, van,amit ertek.;)

argument: --...

Ez mit akar jelenteni? Morzejelek?

handler (exeption-nel fordul elo): except:

Ezt se ertem.:-(

List Comprehensions: [x for x in ... if ...]

Koszonom, ezt sejtem.;)

prompt: ~

annak a karakternek a neve?

right-hand side expression: ami jobb oldalt van

Vagyis a keplet vagy kifejezes jobb oldalon talalhato karakterhalmaz

sequence unpacking: for x in ...

Ezt mreg nem talaltam meg.

shortcut operators: && illetve ||

Tehat ezek is karakterek.

slice notation: X[y:z]

Ez nem ugrik be, X halmaz y-z kozti tartomanya?

string-literal: "..."

idezojelbe tett szoveg?

tuple: (..., ..., ...)

erre is csak tippelek: felsorolas? sorozat?

(#1176) EQMontoya válasza kezdosql (#1175) üzenetére


EQMontoya
veterán

Trollkodtam alapvetően, ahhoz képest egész jó. :)

argument: argumentum, amit a paranccsorban átadunk. Pl. ilyen szokott lenni: --file joska.txt --force

prompt: parancssor.

sequence unpacking: egy szekvenciát tömörítesz ki, tehát egy változó segítségével végigiterálsz valamit, ami több elemet tartalmaz.

shortcut operators: rövidzárnak hívjuk magyarul. A logikai és (Pythonban: "and") és a logikai vagy (Pythonban: "or") úgy működnek, hogy ha az első kifejezés értékéből egyértelműen következik az eredmény, akkor nem értékeli ki a másikat. Itt írnak róla valamennyit.

slice notation: ez arra való, hogy egy kollekció X. és Y. elemei közötti részt tudod vele kiszedni. Pl. egy string 3.-tól 8. betűjéig tartó substringet.

string literal: egy szöveget tartalmazó konstans gyakorlatilag

tuple: több elemből álló kollekció, amely nem módosítható.

Same rules apply!

(#1177) KEAN válasza EQMontoya (#1176) üzenetére


KEAN
tag

Sziasztok!

"shortcut operators: rövidzárnak hívjuk magyarul. A logikai és (Pythonban: "and") és a logikai vagy (Pythonban: "or") úgy működnek, hogy ha az első kifejezés értékéből egyértelműen következik az eredmény, akkor nem értékeli ki a másikat."

Szerintem, ez inkább a short-circuit "definíciója".
A shortcut (rövidítés) a +=, -=, /=, stb. akar lenni.
Például: sum = sum + 5 rövidíthető így: sum += 5

[ Szerkesztve ]

"Persze, hogy tudtam, csak nem sejtettem!"

(#1178) kezdosql válasza EQMontoya (#1176) üzenetére


kezdosql
tag

Igen, koszonom.

Akkor meg erre is rakerdezek a biztonsag kedveert, hatha rosszul sejtem:
List Comprehensions: [x for x in ... if ...]

(#1179) EQMontoya válasza kezdosql (#1178) üzenetére


EQMontoya
veterán

Igen, ez arra való, hogy a egy listából kiszedd a bizonyos elemeket.

L = [tök, makk, alma, birs, paprika]
Gy = [x for x in L if gyümölcs(x)]
Print Gy
[alma, birs]

[ Szerkesztve ]

Same rules apply!

(#1180) cousin333 válasza kezdosql (#1178) üzenetére


cousin333
addikt

A list comprehension-re találtam egy jónak tűnő fordítást: listaképző

Ez a funkció tulajdonképpen egy tipikus for ciklus alkalmazásnak a tömörebb megfogalmazására szolgál: amikor egy meglévő listán (pontosabban iterálható elemen) kell végigmenni, hogy elemről-elemre haladva az egyes elemeken végrehajtott műveletek segítségével egy új listát hozzunk létre.

Például ha minden elemhez hozzá akarunk adni 2-t, és ebből lesz az y.

x = [1, 2, 3, 4, 5]
y = []

for elem in x:
y.append(elem+2)

Ezt leegyszerűsíthetjük egy (két) sorra, így nincs a felesleges értékadás az elején és nem kell egyesével hozzáadogatni az új elemeket sem.

x = [1, 2, 3, 4, 5]
y = [elem + 2 for elem in x]

Ráadásul lehet megadni feltételt is, mindezt szintén egy sorban:

x = [1, 2, 3, 4, 5]
y = [elem+2 for elem in x if elem % 2 == 0]

Ennek a "hagyományos" megfelelője:

x = [1, 2, 3, 4, 5]
y = []

for elem in x:
if elem % 2 == 0:
y.append(elem+2)

Az első esetekben az eredményül kapott y hossza megegyezik az x-ével, az utóbbinál meg rövidebb, vagy egyenlő.

[ Szerkesztve ]

"We spared no expense"

(#1181) velizare


velizare
nagyúr

aki már kínlódott ssh/scp/sftp és társaival:

a feladat egy gatewayen keresztül betalálni egy remote gépre (valami solaris dinoszaurusz), és onnan illetve oda fileokat elvinni/odatenni.
mivel paramikoval úgyis megcsináljuk a transportot, adná magát az sftp class, deviszont a remote gépen át kell sudozni egy másik (technikai) userre (nopasswordos, de akkor is), és utána lehet csak hozzáférni a szóbanforgó fileokhoz. sajnos a sudoval egyszerre nem lehet más parancsot kiadni (csak a keyloggert (rootsh) hajlandó indítani), ezért az exec_command kiesett (kiadom a sudót, beveszi, de zárja is a transportot), ezért az invoke_shell-el kínlódok. van jobb megoldás?
mert így a saját userrel felloggolok a remote gépre, de így csak ezt tudom használni, mert a technikai user jelszavát az üzemeltetés nem adja ki. viszont az paramiko sftp nem támogat sudózást.
nézem az scp modult, de sudót az sem szeret.
ötlet?
nem igazán akarok workaroundokat (direkt bejelentkezéses useren keresztül, cat-tel fileokat létrehozni, cvs repón keresztül szinkronizálni, stb.) hackelni, ha van egyenes út is.

[ 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.

(#1182) EQMontoya válasza velizare (#1181) üzenetére


EQMontoya
veterán

Szerintem erre a feladatra inkább való bash, mint python. :)

Same rules apply!

(#1183) velizare válasza EQMontoya (#1182) üzenetére


velizare
nagyúr

az a python és a solarison kívül még valami lenne, amihez nem értek, és három már kicsit sok nekem. ;)

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.

(#1184) EQMontoya válasza velizare (#1183) üzenetére


EQMontoya
veterán

Python helyett, úgy értettem.

Same rules apply!

(#1185) cadtamas


cadtamas
tag

Tudnátok abban segíteni, hogy szeretném telepíteni a djangot, de korábban telepítettem egy udemy-os kurzushoz egy másik pythont (anaconda, a jupyter notebookhoz kell) és most amikor a pip-el telepítem a djangot szerintem az anacondához telepíti, mert nem találom a python mappájában.
Van rá mód (az anaconda törlése nélkül), hogy ismét a megfelelő helyre települjenek a modulok?

(#1186) KEAN


KEAN
tag

Nézd meg, hogy a PATH környezeti változóban melyik python van előrébb, szerintem oda telepíti, ha nem a standard, akkor mozgasd előre és próbáld meg újratelepíteni a django-t. (Persze ezt most csak gyorsan tippeltem, nem 100%-hogy tényleg a PATH alapján találja, ki, hogy hová telepítsen.)

Illetve, szerintem kezd el használni a Virtual Environments nevű csodát. A mostani problémádat nem feltétlenül oldja meg, de a jövőben segít elkerülni őket. Link: [http://docs.python-guide.org/en/latest/dev/virtualenvs/]
( Elsőre én se értettem, hogy ez miért jó, ma meg már kis túlzással nem bírnék meglenni nélküle és baromi egyszerű a használata. :) )

[ Szerkesztve ]

"Persze, hogy tudtam, csak nem sejtettem!"

(#1187) cadtamas válasza KEAN (#1186) üzenetére


cadtamas
tag

Ha a pip is egy ilyen virtualenv dolog, akkor már feltelepítettem. Természetesen az anacondához. :D

Egyénként nagyon köszönöm, ha jól látom megoldotta a problémát a környezeti változók babrálása.
Nagy pacsi!!!

(#1188) cousin333 válasza cadtamas (#1187) üzenetére


cousin333
addikt

Nem, a pip egy külön csomagkezelő modul, ami eleve része az Anaconda telepítésnek... :)

Igazából az a kérdés, hogy miért használsz 2 különböző környezetet. Ha pedig mégis kell, akkor az Anaconda támogatja ezek létrehozását. Ráadásul a csomagkezelője (conda) a Pythont is csomagként kezeli, ezért lehetőséged van arra is, hogy egyidejűleg használj egy 64-bites Python 3.6-t a legfrissebb csomagokkal az újabb munkáidhoz és mondjuk egy 32 bites 2.7-et adott verziójú csomagokkal a régebbi kódjaidhoz.

[ Szerkesztve ]

"We spared no expense"

(#1189) cadtamas válasza cousin333 (#1188) üzenetére


cadtamas
tag

Áh, nekem nincsenek "régebbi" munkáim. :)
Új gyerek vagyok. A pythont gondoltam beugrónak a programozás világába.
A Gerard Swinnen könyvből tanulok lassan egy éve. Elég cammogósan, mert amit nem értek, annak többször is nekifutok. Párhuzamosan meg megcsináltam egy udemy-os kurzust. (ehhez kellett az anaconda)
Most járok a webprogramozós résznél, de a könyv szerintem annyira nem naprakész ebben a témában, hogy inkább elkezdtem egy djangos kurzust.

Pycharm-ot használok és az meg úgy vettem észre, hogy nem az anacondát használja, hanem a sima pythont interpreternek.

Hogy jó alaposan tökönrúgjam magam elhatároztam, hogy belevágok egy golang kurzusba is.
Tegnap este elszöszöltem másfél órát, hogy megfelelő ide-t találjak a golanghoz.
Még mindig nem találtam. :)

(#1190) zeix válasza kezdosql (#1154) üzenetére


zeix
senior tag

(#1191) zeix


zeix
senior tag

Én is szeretnék egy kis segítséget kérni. Nekem is új a python, a php-t jobban ismerem.
Ez pontosan micropython, amit mikrokontrollerekhez fejlesztettek (alakítottak), de sok dologban egyezik a pythonnal. A problémám egy szimpla webserver:

import time
from machine import Pin
import usocket as socket
import network


sta_if = network.WLAN(network.STA_IF)
while not sta_if.isconnected():
print ('csatlakozás')
time.sleep(1)

ipadress = sta_if.ifconfig()

ipcim = tuple(ipadress)
print (ipcim[0])

html = """<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
button {
background-color: #555555;
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
}

</style>
</head>
<BODY>

<form>
<input type="hidden" name="kapcsolas" value="szimpla">
<table width="100%">
<tr>
<td>LED RED</td>
<td><button name="relay" value="01-1" type="submit">BE</button></td>
<td><button name="relay" value="01-0" type="submit">KI</button></td>
</tr>
<tr>
<td>LED RED</td>
<td><button name="relay" value="02-1" type="submit">BE</button></td>
<td><button name="relay" value="02-0" type="submit">KI</button></td>
</tr>
<tr>
<td>LED RED</td>
<td><button name="relay" value="03-1" type="submit">BE</button></td>
<td><button name="relay" value="03-0" type="submit">KI</button></td>
</tr>
<tr>
<td>LED RED</td>
<td><button name="relay" value="04-1" type="submit">BE</button></td>
<td><button name="relay" value="04-0" type="submit">KI</button></td>
</tr>
<table>
</form>

<form>
<input type="hidden" name="kapcsolas" value="1multi1">
<table width="100%">
<tr>
<td align="CENTER"><button name="relay" value="1111000000000000" type="submit">MINDEN BE</button></td>
<td align="CENTER"><button name="relay" value="1111000000000000" type="submit">LÁMPÁK BE</button></td>
</tr>
<tr>
<td align="CENTER"><button name="relay" value="1111000000000000" type="submit">LÁMPÁK KI</button></td>
<td align="CENTER"><button name="relay" value="1111000000000000" type="submit">MINDEN KI</button></td>
</tr>
<table>
</form>
</BODY>
</html>
"""

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 80))
s.listen(5)
while True:

conn, addr = s.accept()

request = conn.recv(1024)

request = str(request)
kapcsolas = request[18:25]
print (request[32:36])
relay = request[32:36]


response = html
conn.sendall(response) #a probléma itt van!!!!
conn.close()

usocket modul leírása
A conn.sendall(response) parancs random elszáll egy szép hibakóddal: OSError: [Errno 104] ECONNRESET

Ha a sima conn.send(response) parancsot használom, akkor nem küldi el az összes adatot max. kb 1074Byte-ot.
Ez, ha jól értelmezem le is van írva, hogy a send parancs nem küldi el az összes adatot (“short write”).
Cselesen több részre tagoltam a html kódot és így próbáltam több send paranccsal küldeni, de így ugyanaz a
hibakód fogad véletlen számú lekérdezések után: OSError: [Errno 104] ECONNRESET

Írtam már a micropython fórumba is, de nem érkezett segítőkész válasz eddig.
Remélem Ti tudtok segíteni!
:R

[ Szerkesztve ]

(#1192) cousin333 válasza zeix (#1191) üzenetére


cousin333
addikt

Mindig hibát dob, vagy csak néha-néha?

A sendall helyett a write-ot próbáltad már?

"We spared no expense"

(#1193) cousin333 válasza cadtamas (#1189) üzenetére


cousin333
addikt

Gondoltam, hogy nincs korábbi munka, azért furcsállottam, hogy két környezetet használsz (gondolom az egyik 2.7, a másik 3.x).

A PyCharm-ban a projekt beállításainál ki tudod választani az interpretert. De ha rám hallgatsz, törlöd a "normál" Pythont és meghagyod az Anacondát.

Már írtam párszor: a Gerard Swinnen könyv jó és magyar de elég régi. Ha megy az angol, inkább olyan könyvet keress.

"We spared no expense"

(#1194) zeix válasza cousin333 (#1192) üzenetére


zeix
senior tag

Köszi a választ!
A sendall kb. 5-10 lekérdezésig működik.
A write-ot is próbáltam, ugyanaz mint a sendall, az is elszáll 5-10 lekérdezés után.
A micropython fórumban sem jött még válasz. Szerintem csak 1074byte-ot tud küldeni stabilan.
Az unokahúgomnak szeretnék gyártani egy okoslámpát, neopixel rgb ledekből.
Ahhoz kevés lesz az 1074byte. Vagy több részre tagolom a html-t, funkciónként. (szín, animáció, mozgás érzékelés, beállítások, stb.) A python meg majd eldönti, hogy éppen mit küldjön a telójára. (ami belefér 1kB-ba :) )

[ Szerkesztve ]

(#1195) Orionhilles


Orionhilles
senior tag

Sziasztok!

Elkezdtem szépen lassan Pythont tanulni, és úgy voltam vele, hogy akkor neki is állok írni valami apróbb dolgot magamtól. Egy programocskát, ami kiírja 3 változó megadása után, hogy:
a, derékszögű háromszög vagy
b, háromszög vagy
c, nem háromszög

A három eshetőségből az a, működik, a b, és c, már nem. Hol rontottam el?
if (c**2) == (a**2 + b**2):
print ("This is a Pythagorean triangle.")
elif a<b+c == True and b<a+c == True and c<a+b == True:
print ("This is a triangle.")
else:
print ("This is NOT a triangle.")

Válaszotokat előre is köszönöm! :R

Még régebben írtam a topikba, amikor még konkrétan semmit se tudtam, akkor is segítettek, és útmutatást adtatok, azért is nagy köszönet! :R

– Yet, thou serves with thine eyes clouded in chaos. Thou, bound in the cage of madness. I am he who commands those chains – Fate/Zero Berserker Mad Enchantment

(#1196) Orionhilles válasza Orionhilles (#1195) üzenetére


Orionhilles
senior tag

if a<b+c == True and b<a+c == True and c<a+b == True:
if (c**2) == (a**2 + b**2):
print ("This is a Pythagorean triangle.")
print ("This is a triangle.")
else:
print ("This is NOT even a triangle.")

Na ez már egymása ágyazott utasításokkal készült, mégse jó. :DDD :F

– Yet, thou serves with thine eyes clouded in chaos. Thou, bound in the cage of madness. I am he who commands those chains – Fate/Zero Berserker Mad Enchantment

(#1197) cadtamas válasza Orionhilles (#1195) üzenetére


cadtamas
tag

Próbáld így:

if (c**2) == (a**2 + b**2):
print ("This is a Pythagorean triangle.")
elif a<b+c and b<a+c and c<a+b:
print ("This is a triangle.")
else:
print ("This is NOT a triangle.")

(#1198) EQMontoya válasza Orionhilles (#1196) üzenetére


EQMontoya
veterán

Nem kell a "== True", csak zavar az éterben.

De a fő probléma az, hogy ha itt lemész az 5.15 (operator precedence) részhez:

Operator Description
lambda Lambda expression
if – else Conditional expression
or Boolean OR
and Boolean AND
not x Boolean NOT
in, not in, is, is not, <, <=, >, >=, <>, !=, == Comparisons, including membership tests and identity tests
| Bitwise OR
^ Bitwise XOR
& Bitwise AND
<<, >> Shifts
+, - Addition and subtraction

Akkor látszik, hogy a relációsjel precedenciája nagyobb az összeadásénál.

Tehát ez fog történni a kódodban:

(a<b)+c == True.

Namost ez egy oltári baromság, de nézzük, hogy mit csinál:
(a<b) -> True
True + c -> bool + int, a bool konvertálódik intté, tehát c+1 a végeredmény.
c+1 == True -> nem, az előző miatt C nagyobb, mint 1.

Same rules apply!

(#1199) cadtamas válasza EQMontoya (#1198) üzenetére


cadtamas
tag

Merek ellentmondani. :D
A kód működik zárójelek nélkül is. A logikai vizsgálat nem igényli, mert a python megvizsgálja mi található a bal oldalon, aztán a jobb oldalon és úgy értékeli ki.

(#1200) Orionhilles válasza EQMontoya (#1198) üzenetére


Orionhilles
senior tag

Köszönöm szépen a kimerítő választ! :Y :R

cadtamas: Neked is köszi!

– Yet, thou serves with thine eyes clouded in chaos. Thou, bound in the cage of madness. I am he who commands those chains – Fate/Zero Berserker Mad Enchantment

Copyright © 2000-2024 PROHARDVER Informatikai Kft.