Új hozzászólás Aktív témák
-
cousin333
addikt
válasz cousin333 #449 üzenetére
Így belegondolva az általam megadott példában talán célravezetőbb lenne, ha elrejtenénk a felhasználó elől a tényt, hogy a lista számozása nullától indul. Továbbá nem kellene a függvénynek többet csinálnia, mint amennyi szükséges, majd a program írója eldönti mihez kezd az információval. Tehát talán inkább ezt írnám:
def foglaltsag_ellenorzes(lista, sor, szek):
# Ennek az eredménye igaz vagy hamis (True/False)
return lista[sor-1][szek-1] == "x"
# 2. feladat
sorszam = int(input("Adja meg a sor szamat: "))
szekszam = int(input("Adja meg a szek szamat: "))
# Az if a visszatérési értéket vizsgálja
if foglaltsag_ellenorzes(lista, sorszam, szekszam):
print("A szek foglalt")
else:
print("A szek ures")[ Szerkesztve ]
"We spared no expense"
-
XP NINJA
őstag
válasz cousin333 #449 üzenetére
Köszönöm a részletes választ.
Az általad javasolt módhoz még nem jutottam el, az utolsó két feladaton kivül működik a program, de gyanitom nem a legegyszerűbb módon. Nem törekszem a legeslegegyszerűbb módra, annak szerintem még nincs itt az ideje, de ezt én is túlzásnak érzem.def feladat_1():
lista=[]
f=open("foglaltsag.txt")
for sor in f:
sor=sor.strip()
soronként=list(sor)
lista.append(soronként)
f.close()
return lista
lista=feladat_1()
print("2. feladat")
def feladat_2():
sorszam=int(input("Adja meg a sor számát: "))
szekszam=int(input("Adja meg a szék számát: "))
sor=lista[sorszam-1]
if sor[szekszam-1]==('x'):
print("A hely foglalt")
else:
print("A hely szabad")
feladat_2()
print("3. feladat")
def feladat_3():
f=open("foglaltsag.txt")
jegyek=0
for sor in f:
list(sor)
sorcnt=sor.count("x")
jegyek=jegyek+sorcnt
szazalekban=int((jegyek/300)*100)
print("Az előadásra eddig {0} jegyet adtak el, ez a nézőtér {1}%-a.".format(jegyek, szazalekban))
f.close()
feladat_3()A 4. for ciklusra gondoltam, de nem sikerült, viszont működik.
print("4. feladat")
def feladat_4():
f=open("kategoria.txt")
kat1=0
kat2=0
kat3=0
kat4=0
kat5=0
for sor in f:
list(sor)
cnt1=sor.count("1")
cnt2=sor.count("2")
cnt3=sor.count("3")
cnt4=sor.count("4")
cnt5=sor.count("5")
kat1=kat1+cnt1
kat2=kat2+cnt2
kat3=kat3+cnt3
kat4=kat4+cnt4
kat5=kat5+cnt5
kategoriak=[kat1,kat2,kat3,kat4,kat5]
legtobb=(kategoriak.index(max(kategoriak))+1)
print("A legtöbb jegyet a(z) {0}. árkategóriában értékesítették.".format(legtobb) )
f.close()
feladat_4()Az 5. feladat az előző leve alapján működik, de ez is hosszú.
print("5. feladat")
def feladat_5():
f=open("kategoria.txt")
kat1=0
kat2=0
kat3=0
kat4=0
kat5=0
for sor in f:
list(sor)
cnt1=sor.count("1")
cnt2=sor.count("2")
cnt3=sor.count("3")
cnt4=sor.count("4")
cnt5=sor.count("5")
kat1=kat1+cnt1
kat2=kat2+cnt2
kat3=kat3+cnt3
kat4=kat4+cnt4
kat5=kat5+cnt5
ar1=kat1*5000
ar2=kat2*4000
ar3=kat3*3000
ar4=kat4*2000
ar5=kat5*1500
print("A bevétel pillanatnyilag {0}Ft".format(ar1+ar2+ar3+ar4+ar5))
f.close()
feladat_5()A 6. és 7. feladat nem sikerült, de bemásolom mivel próbálkoztam.
def feladat_6():
f=open("foglaltsag.txt")
#lista=[]
rossz1=0
rossz2=0
rossz3=0
for sor in f:
list(sor)
#sor=sor.strip()
#soronként=list(sor)
#lista.append(soronként)
#print(sor)
#print(soronként)
#lista.append(sor)
cnt1=lista.count("x")
cnt2=lista.count("xox")
cnt3=lista.count("xo")
rossz1=rossz1+cnt1
rossz2=rossz2+cnt2
rossz3=rossz3+cnt3
print(rossz1)
print(rossz1)
print(rossz1)
f.close()
feladat_6()
def feladat_7():
f=open('szabad.txt','w')
for i in range(300):
if lista[i]=="x":
f.close()
feladat_7()Összegzésben eddig ez a legjobb munkám, eddig még egyik érettségivel sem jutottam el.
A megoldókulcsból ha jól értelmezem 4 pontot veszithetek a program terjedelme miatt?
Illetve a saját függvények készitése viszonylag megy, csak még hasznositani nem nagyon próbáltam.[ Szerkesztve ]
-
cousin333
addikt
válasz XP NINJA #452 üzenetére
"Nem törekszem a legeslegegyszerűbb módra, annak szerintem még nincs itt az ideje, de ezt én is túlzásnak érzem."
Szerintem a Python nyelv egyik legjobb tulajdonsága, hogy alapból egyszerű és logikus szerkezeteket használ. Teljesen felesleges elbonyolítani a dolgokat, érdemes egyből az egyszerűre rámenni.
Ami a megoldásodat illeti, az első feladatban két fájlt is be kéne olvasni, nem csak a foglaltsag.txt-t. A 4. feladat sem jó, mert nem az a kérdés, hogy melyik kategóriájú székből van a legtöbb, hanem hogy melyikből adták el a legtöbbet. Ehhez viszont valahol fel kéne használni a lista nevű listádat, ami sehol nem szerepel.
Az én megoldásom alább látható. Nem ellenőriztem le valós adatokkal és azt sem állítom, hogy nem létezik szebb vagy egyszerűbb megoldás a problémákra. Most ennyire tellett:
print("1. feladat")
def fajl_beolvasas(fajlnev):
with open(fajlnev, 'r') as f:
adat = [sor.strip('\n') for sor in f]
return adat
fog_lista = fajl_beolvasas("foglaltsag.txt")
kat_lista = fajl_beolvasas("kategoria.txt")
print("2. feladat")
def foglaltsag_ellenorzes(lista, sor, szek):
if lista[sor][szek] == "x":
return True
else:
return False
sor = int(input("A sor szama? "))
szek = int(input("A szek szama? "))
if foglaltsag_ellenorzes(fog_lista, sor, szek):
print("A szek mar foglalt")
else:
print("A szek meg ures")
print("3. feladat")
# Összefűzzük a foglaltságokat egyetlen sztringbe, hogy egyszerűbb legyen számolni
fog_sztring = "".join(fog_lista)
# Az alábbi formázás automatikusan egész százalékokat ír ki
uzenet = "Eddig {} jegyet adtak el, ami a nezoter {:.0%}-a"
foglalt_db = fog_sztring.count("x")
print(uzenet.format(foglalt_db, foglalt_db/len(fog_sztring)))
print("4. feladat")
# Összefűzzük a kategóriákat is egyetlen sztringbe, hogy egyszerűbb legyen számolni
kat_sztring = "".join(kat_lista)
# A kategorizált ülőhelyeket egy szótárba (dictionary) tesszük. Elsőre mind üres.
kategorizalt = {"1": 0, "2": 0, "3": 0, "4": 0, "5": 0}
# Végigmegyünk a foglaltsági fájlon, és megszámoljuk a foglalt kategorizált üléseket
for i, fogl in enumerate(fog_sztring):
if fogl == "x":
kateg = kat_sztring[i] # A kategória neve, ami a kategoria.txt fájlban volt
kategorizalt[kateg] += 1
legtobb = max(kategorizalt, key=kategorizalt.get)
print("A legtobb jegyet a {} kategoriaban adtak el".format(legtobb))
print("5. feladat")
arak = {"1": 5000, "2": 4000, "3": 3000, "4": 2000, "5": 1500}
bevetel = 0
for kat in kategorizalt:
bevetel += kategorizalt[kat] * arak[kat]
print("A pillanatnyi bevetel: {}Ft".format(bevetel))
print("6. feladat")
egyedul = 0
for sor in fog_lista:
# Ha a sor elején van egy egyedülálló üres hely
if sor.startswith("ox"):
egyedul += 1
# Ha a sor végén van egy egyedülálló üres hely
if sor.endswith("xo"):
egyedul += 1
# Ha a soron belül vannak egyedülálló üres helyek
egyedul += sor.count("xox")
print("A nezoteren jelenleg {} egyedulallo ures hely van".format(egyedul))
print("7. feladat")
sum_lista = []
for i, sor in enumerate(fog_lista):
sum_sor = []
for j, szek in enumerate(sor):
if szek == "x":
sum_sor.append("x")
else:
sum_sor.append(kat_lista[i][j])
sum_lista.append(sum_sor)
with open("szabad.txt", "w") as f:
[f.write(line + '\n') for line in sum_lista][ Szerkesztve ]
"We spared no expense"
-
snyz
tag
Sziasztok,
egy weboldalból szeretnék infót kinyerni, amihez bejelentkezés szükséges, tud ebben valaki segíteni?
Köszi!
-
LógaGéza
addikt
Üdv!
Van egy ilyen elkészített progi, amit aki megírta, az Ubuntun tesztelte, ott elvileg működik is. Viszont nekem Windowson kéne. Felraktam a Python 2.7.11-et, hozzá a pyGTK 2.24.2 all ion one-t és a pyserial 3.0-t.
Elindul a program, feljön a GUI, és egy olyan üzenetet kapok vissza, hogy:AttributeError: 'Serial' object has no attribute 'setPort'
Ubuntu alatt lenyíló menüben felismeri a csatlakozott COM portos eszközt, ki tudom választani, és tud csatlakozni, Windows alatt üres, és ki is van szürkítve a lenyíló. Jól gondolom, hogy a serial kiegészítéssel van a gond? Mit tudok vele tenni, hogy jó legyen?
"Go to work, get married, have some kids, pay your taxes, pay your bills, watch your tv, follow fashion, act normal, obey the law, and repeat after me: I AM FREE"
-
sonar
addikt
válasz LógaGéza #456 üzenetére
Nem olyan egyszerű, mégpedig azért mert linux alatt minden file, a soros port is:
for i in glob.glob('/dev/ttyUSB*')
win alatt így nem lehet lekérdezni. Hétfőn ha cégnél leszek és lesz időm megnézem (csak ott van wines gépem)A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
LógaGéza
addikt
Igazából adtál ezzel egy ötletet, kipróbáltam, és bejött - annyi a hátránya, hogy nem működik a Combo Box, és hardcoded a COM port, de működik.
26. sort írtam át erre:
self.ser.port = 'COM3'
Ez külön kóddal kilistázza az elérhető COM portokat, de sajnos arra nem jöttem rá hogy lehetne integrálni.
"Go to work, get married, have some kids, pay your taxes, pay your bills, watch your tv, follow fashion, act normal, obey the law, and repeat after me: I AM FREE"
-
XP NINJA
őstag
(#453) cousin333 :
Egy bekért szó karakterenkénti feldarabolására mi a függvény? Vagy tudna valaki linkelni egy beépitett függvénygyűjteményt?
[ Szerkesztve ]
-
cousin333
addikt
válasz XP NINJA #459 üzenetére
sonar megoldása jó, de mivel a Pythonban a sztring iterable, egy sima for ciklussal végig lehet menni rajta. Ezért nem hiszem, hogy mindenáron listát kell csinálni belőle.
Ha pedig sztring, akkor a függvények a Python string metódusok.
Pl. sonar példájával élve ez is működik:
>>> s = "python"
>>> s[3]
'h'[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz LógaGéza #458 üzenetére
Itt a PySerial dokumentációja a kérdéses modullal: [link]
Ezek alapján a kód a következő (létezik az, hogy nekem nincs egyetlen COM portom sem? Az Eszközkezelő sem említi őket Majd holnap én is kipróbálom):
# Valahol a kód elején a többi importtal
import serial.tools.list_portsA port lista létrehozása a comports() függvénnyel. Ez egy generátor objektumot hoz létre, amiből a portok így adódnak:
ports = list(serial.tools.list_ports.comports())Ennek a listának az elemei a dokumentáció szerint 3 elemű tuple-k. Ebből nekünk az elsőre van szükségünk (ami igazából a nulladik), azt adjuk be a serial.Serial() objektumnak. Ha csak az első elemek kellenek, akkor a fenti helyett egyszerűen írjuk ezt:
ports = [p[0] for p in serial.tools.list_ports.comports()]Ez elvileg működik, mint írtam, COM port hiányában nem tudom most kipróbálni... De holnap biztos megteszem, mert a téma engem is érdekel.
A kérdéses kódban pedig a 85-87-es sort kell módosítani, imigyen:
for p in serial.tools.list_ports.comports():
print(p)
self.combobox_port.append_text(p[0])[ Szerkesztve ]
"We spared no expense"
-
LógaGéza
addikt
válasz cousin333 #462 üzenetére
Az újabb gépeken nem nagyon van már, nekem is csak akkor ha rádugom az Arduinot.
Holnap tudom én is meglesni, ma már nem dolgozok többet"Go to work, get married, have some kids, pay your taxes, pay your bills, watch your tv, follow fashion, act normal, obey the law, and repeat after me: I AM FREE"
-
cousin333
addikt
válasz cousin333 #462 üzenetére
Folytatás: a 25-26-os sort meg le kell cserélni erre, és elvileg már működik is:
self.ser = serial.Serial(self.combobox_port.get_active_text())LógaGéza: Korábban amúgy nekem sem ment a listázás, pedig jó lett volna, de akkor nem így próbáltam. Talán ezzel már menni fog.
[ Szerkesztve ]
"We spared no expense"
-
#82595328
törölt tag
Valaki elmagyarázná nekem, hogy a return parancsot miért kell mindenképpen függvénybe rakni?
Miért ne lehetne belerakni az értékét pl: egy változóba, vagy egyéb módon használni? Ez valahogy nem világos. -
cousin333
addikt
válasz #82595328 #466 üzenetére
Nem kell beletenni, működik úgy is, ahogy mondod. De ha változóba rakod, akkor az elveszik, amint kilépsz a függvényből. Kivéve, ha globális változóba teszed, de az meg nem túl elegáns (kivéve talán a mikrokontrollereket). Biztos van itt nálam ideológiailag képzettebb, aki jobban elmagyarázza.
Szóval használnod nem kell, de pont azért találták ki, hogy az értéket visszaadja. Innentől kezdve nincs sok ok, hogy ne használd.
"We spared no expense"
-
#82595328
törölt tag
válasz cousin333 #467 üzenetére
De nem működik, vagy én csinálok valamit rosszul. Azt értem, hogy mire való. Viszont próbáltam shell-ben pár parancsot, és nem megy egyik sem.
De azt hiszem így egyszerűbb, ha mutatok példákat:Ez működik:
>>> def xecs(x):
return x>>> print (xecs(2))
2Ezek meg nem. De miért nem?
>>> x=1
>>> return x
SyntaxError: 'return' outside function>>> x=1
>>> a= return x
SyntaxError: invalid syntax>>> x=1
>>> print (return x)
SyntaxError: invalid syntax -
sztanozs
veterán
válasz #82595328 #468 üzenetére
mit szeretnél itt a returnnal csinálni?
ha csak a változónevet írod, akkor visszaadja az értékét...
>>> x=1
>>> y=2
>>> x+y
3
>>> print(x+y)
3[ 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...
-
cousin333
addikt
válasz #82595328 #468 üzenetére
A return - mint a neve is mutatja - egy függvényhívásból tér vissza egy értékkel. Ahhoz, hogy visszatérhess, előbb értelemszerűen "el kell menni", tehát egy függvényt kell hívni. Abban lehet a return. Az első példádban egy függvényt hoztál létre a def utasítással (vagy mi ennek a szabatos neve) ami visszatér a beírt számmal. Ha meghívod, pontosan ez történik.
A többi példádban nincs függvény, csak egyedi utasítások. Egyszerűen nincs miből visszatérni, így a return értelmetlenné válik és hibát dob.
A return tehát a függvény kimeneti értékével tér vissza, nem pedig egy változó értékével, mint az utolsó példádban. Az az alábbi módon lenne helyes, mert a print függvény maga is visszatér egy konzolra írt üzenettel, ami itt maga az x:
>>> x=1
>>> print (x)
1Mivel ez a konzol, még a print sem kell, ez is működik:
>>> x=1
>>> x
1[ Szerkesztve ]
"We spared no expense"
-
sztanozs
veterán
válasz #82595328 #472 üzenetére
Szerintem olvasgass egy kicsit programozás / programtervezés alapokról, ha a return utasítást, vagy a függvények működését (sem) érted.
Nem fogsz tudni új elkezdeni értelmesen prograomozni, úgy, hogy nem is érted, hogy egy program hogy működik, milyen vezérlési szerkezetek vannak és mire valók az alapvező vezérlési utasítások, vagy pl. mi a különbség egy változó és egy konstans között.
Ahogy kérdeztem, azt meg tudod mondani, hogy egyáltalán mire szeretnéd használni a return utasítást? Biztos vagyok benne, hogy nem azt csinálja, amit te elképzelsz hogy csinálnia kellene.
[ 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...
-
#82595328
törölt tag
válasz sztanozs #473 üzenetére
"Szerintem olvasgass egy kicsit programozás / programtervezés alapokról, ha a return utasítást, vagy a függvények működését (sem) érted."
Szerinted éppen mit csinálok?
Most ismerkedem a return paranccsal és a függvény készítéssel. Mivel az már ment, ilyenkor a következő lépés a kísérletezés. Azaz a tanultak eltérő módon való használata, és itt akadtam fel. Mert nem volt egyértelmű, hogy a return csak függvényen belül lehet.
Ez volt a kérdésem lényege, hogy a return csak függvényen belül használható? Mert a hibaüzenet alapján, amit kaptam ezt találtam a neten, de nem volt teljesen egyértelmű. -
sztanozs
veterán
válasz #82595328 #474 üzenetére
Ok, a lényeg az az, hogy ha nem interpreter módban dolgozol (futó program), akkor mindig egy függvényben vagy. EZeket úgy kell elképzelni, mint egy hagyma, ahogy mész a héjától befelé. ha meghívsz egy függvényt, akkor egy réteggel beljebb mész, return esetén meg eggyel kintebb. Ha a legkülső függvényben return-t adsz ki, akkor kilép a program.
Ha a függvény ad vissza értéket, akkor ezt a returnban tudod megtenni. Ezt az értéket természetesen célszerű felhasználni, pl kiiratni, vagy egy másik változónak átadni.>>> def osszead(a, b):
... return a+b;
>>> c = osszead(1,2)
>>> print(c)
3[ 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...
-
Dolphine
addikt
Sziasztok!
A segítségeteket kérném!
Adott egy KODI PC lejátszó, egy vezeték nélkül egér + légegér. A légegér jelen esetben távirányítóként funkcionál. A légegérben giroszkóp van, amit nem lehet kikapcsolni, így állandóan megjelenik a kurzor
Egy skript készült már, viszont az teljesen eltünteti az egér kurzort, így normál egér sem használható.
Na, ezt kellene valahogy kapcsolhatóvá tenni. Ha kell az egér akkor legyen kurzor, ha nem kell egér (pl. filmnézés), akkor meg kikapcsolni kellene a kurzort.
Szerintetek ez megoldható?Nem egyenlőre, hanem egyelőre! Nem ez miatt, hanem emiatt, vagy ez által!
-
#82595328
törölt tag
Újabb kérdés. Rátaláltam a python példaprogramokra, és ezt a függvényt nem értem teljesen.
def bottle(n):
if n == 0: return "no more bottles of beer"
if n == 1: return "one bottle of beer"
return str(n) + " bottles of beer"Vagyis az a része már világos, hogy ha n==0 vagy 1, akkor a " return str(n) + " bottles of beer"" már nem hajtódik végre, mert az első return után kilép a függvényből a program. Az is többé kevésbé világos, hogy azért nem elif és else, mert akkor nem lépne ki a függvényből a return után. Bár ezt még kipróbálom. Ami nem világos az ez a formátum:
if n == 0: return "no more bottles of beer"
Ez így miért helyes?Mert szerintem így kellene kinéznie:
if n == 0:
return "no more bottles of beer"Persze így egyszerűbb és olvashatóbb a kód. Csak ugye ":" után új sornak kellene következnie, és behúzásnak.
-
sonar
addikt
válasz #82595328 #478 üzenetére
Nem törvényszerű, hogy új sor legyen. Nyugodtan irhatod utána is csak akkor ugye egy sor lehet, Csak a kódot teszi áttekinthetőbbé. Egész pontosan több "sor" is lehet de akkor ; -vel kell elválasztani őket.
Tehát
if n == 1: parancs1 ; parancs2
vmi ilyesmi
if n==1: x=x*x; print xA tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
-
olivera88
veterán
Ha beteszem a python elérési útját #!/usr/bin/python a kód elejére, akkor nem nyit terminál ablakot enteres lefuttatás után. Van erre vmi megoldás?
LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_
-
olivera88
veterán
Nincs gui. A fájlra nyomok egy entert és úgy fut le, meg systemd ütemezővel, a systemd ütemező egy sh scriptet hajt meg amiben benne vannak a python scriptek nevei. Igen, Debian.
[ Szerkesztve ]
LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_
-
DrojDtroll
addikt
Sziasztok!
Van két szkriptem és azt szeretném hogy az egyik folyamatosan tudja olvasni a másik néhány változóját. A folyamat visszafele nem szükséges. MI lenne erre a legegyszerűbb megoldás?
-
Üdv!
Szerettem volna őt lefordítani, gond nélkül felment. Viszont nem tudom mik a parancsok, illetve a __main__.py sincs benne, így nem tudok vele mit kezdeni. Pippel is próbáltam feltenni, ott sem működött pl az adb devices parancs... Doksit nem találtam hozzá. Honnan lehetne megtudni, h működőképes-e?
Köszi!
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
cousin333
addikt
válasz DrojDtroll #484 üzenetére
Mit csinálnak a szkriptek? Az egyik szkript (vagy egy harmadik) importálja be a másikat. Esetleg egy fájlba összevonni a kettőt.
Vagy valami fájl objektumon keresztül tegye közzé a kérdéses változókat.
"We spared no expense"
-
cousin333
addikt
válasz DrojDtroll #487 üzenetére
Bevallom, ezen a téren nem vagyok képben, de számomra akkor a fájl alapú megosztás tűnik kézenfekvőnek. Nem használtam ugyan, de én a pickle modul körül nézelődnék.
"We spared no expense"
-
olivera88
veterán
Tud valaki valami letöltő scriptet írni pythonnal? Olyan kellene ami át is nevezi a letöltött fájlt egy adott névre.
LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_
-
cousin333
addikt
-
olivera88
veterán
válasz cousin333 #490 üzenetére
Nem működik. Nem jó.
import urllib.request as ur
ImportError: No module named request
Ennek a letöltésre kellene [link]
A link minden nap változik, vagyis benne a dátum, meg végén a T nél a szám.
Egy ütemezett letöltést akarok létrehozni ahhoz kell.[ Szerkesztve ]
LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_
-
olivera88
veterán
válasz cousin333 #492 üzenetére
Ezek szerint. Ami Debianon fent van alapból, nem tudom h van e újabb hozzá. Így már működött.
Azt nem lehet beállitani h a linkben lévő dátumot minden nap javítsa át aktuálisra magától?[ Szerkesztve ]
LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_
-
XP NINJA
őstag
Ha van egy olyan szöveges fájlom, amiben lottószámok szerepelnek ilyen formában (egy hét egy sor), akkor azt hogyan tudnám beolvasni egy darab listába? Csak úgy sikerült eddig, hogy soronként strip és split, majd hozzáadás a listához. De igy lesz egy listán belül annyi lista ahány sor .
Előre is köszönöm!
-
cousin333
addikt
válasz XP NINJA #496 üzenetére
Amikor a split-tel felosztottad a sort, és kaptál egy listát, azt ne append-del add hozzá a már meglévő listádhoz, hanem extend-del. Példa a különbségre:
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.append(b)
>>> a
[1, 2, 3, [4, 5, 6]]
>>> a = [1,2,3]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6][ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz olivera88 #495 üzenetére
Akkor meg. Említettem az URL parser könyvtárat. SZerintem az a legelegánsabb megoldás, de kicsit macerás. A favágó módszer, hogy az URL-t sztringként kezeled és a time modullal állítod elő a mai dátumot. Azaz:
link = "http://dcpc-nwp.meteo.fr/services/PS_GetCache_DCPCPreviNum?token=__5yLVTdr-sGeHoPitnFc7TZ6MhBcJxuSsoZp6y0leVHU__&model=ARPEGE&grid=0.1&package=SP1&time=61H72H&referencetime=2016-01-26T12:00:00Z"
Majd ezzel kell kiegészíteni a korábbi kódot:
import time
links = link.split("=")
t = time.localtime()
fmt = "%Y-%M-%dT12:00:00Z"
links[-1] = time.strftime(fmt, t)
link = "=".join(links)Vagy valami ilyesmi. Ez értelemszerűen csak a dátumot írja át, az órát perce nem.
"We spared no expense"
-
cousin333
addikt
válasz XP NINJA #498 üzenetére
Természetesen nem baj, ha tisztában vagy a kétdimenziós listákkal is, sok feladatnál kellhet ilyesmi. Arra emlékeztetnélek, hogy a Python nyelvben a sztring maga is iterable, azaz indexelhető, kereshető, mintha egy lista lenne. Pl.
>>> a = "Valami"
>>> a[2]
'l'
>>> a[-1]
'i'
>>> a.find('m')
4A lényeg, hogy gyakran feleslegesen bonyolult a sztringet karakterek listájává vagdosni. Ilyen értelemben a fenti példához első ránézésre nem kétdimenziós lista, hanem sztringek egyszerű (soronkénti) listája kell. Valami hasonlóra példa #453-as hozzászólásomban lévő megoldás.
[ Szerkesztve ]
"We spared no expense"
Új hozzászólás Aktív témák
- Háztartási gépek
- Nyár közepén jön az AOC 540 Hz-es gaming monitora
- Luck Dragon: Asszociációs játék. :)
- exHWSW - Értünk mindenhez IS
- Olcsóbb lett a Tesla Full Self-Driving szoftvere
- Starlink
- Horgász topik
- Mibe tegyem a megtakarításaimat?
- Automata kávégépek
- Android szakmai topik
- További aktív témák...
- ThinkPad L15 G4 15.6" FHD IPS i5-1345U 16GB 256GB NVMe ujjlolv IR kam gar
- Apple Magic Mouse bluetooth egér - doboz, garancia
- Macbook Pro 15" - 2019, 8 mag i9, 32/512 GB, 4GB Radeon, 90 ciklus, garancia, doboz, szürke (65)
- Macbook Pro 13" - 2021 gyártás, M1, 8/512GB, touchbar, 85 ciklus, garancia (63)
- LG UltraGear 27GP850P-B Monitor