Hirdetés

2024. április 26., péntek

Gyorskeresés

Hozzászólások

(#501) olivera88 válasza cousin333 (#499) üzenetére


olivera88
veterán

Így?

import urllib as ur

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"

mport time

links = link.split("=")
t = time.localtime()

fmt = "%Y-%M-%dT12:00:00Z"
links[-1] = time.strftime(fmt, t)

link = "=".join(links)
where = '/home/oliver/SP1'
name, header = ur.urlretrieve(link, where )

LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_

(#502) XP NINJA válasza cousin333 (#500) üzenetére


XP NINJA
őstag

Még egy kérdés (#496)-hoz kapcsolódva: Megvan egy darab listában az összes szám, az általad leirt módszer alapján, meg is csináltam vele egy feladatot. A következőben már szükséges lenne hogy integer legyen az összes szám. Régebben sikerült megcsinálnom, de most sehol sem találom.

Tehát most igy néz ki:
x=['37', '42', '44', '61', '68']

És ezt szeretném:
x=[37, 42, 44, 61, 68]

Próbáltam int-tel és map-pal is de nem jött össze :N

[ Szerkesztve ]

(#503) cousin333 válasza XP NINJA (#502) üzenetére


cousin333
addikt

Pedig ez a megoldás, csak az a kérdés, hogyan próbáltad pontosan :)

Én így csinálnám:
x = [int(i) for i in x]

De az int/map megoldással is működik:
x = list(map(int, x))

A list Python 2.7 alatt nem tudom, hogy kell-e, de Python 3.x-nél biztosan.

[ Szerkesztve ]

"We spared no expense"

(#504) cousin333 válasza olivera88 (#501) üzenetére


cousin333
addikt

Az importokat az elejére szokták írni, de igen, valahogy így. Esetleg a link-et kiírathatod, mielőtt használod. Vagy a links[-1]-et a join előtt.

"We spared no expense"

(#505) #82595328


#82595328
törölt tag

Egy for ciklust szeretnék, ami így nézne ki:

for x in range (dátum1, dátum2):

Azaz annyiszor fusson le, ahány nap van két dátum között.

azaz így is jó lenne:
for x in range(dátum2-dátum1):

Nézegettem a time és a calendar modult, de nem láttam benne olyan funkciót, mint az excel-ben. Hogy a dátumot egy számmá lehetne alakítani.
Értelemszerűen az év, hónap,nap külön külön számmá alakítása nem jó, mert évváltásnál rossz eredmény születik.
20160101-20151231= ennek 1-nek kellene lenni és nem 8.870-nek.

Tehát mondjuk a feladat, amit meg szeretnék oldani:
2015.12.15-2016.02.08 között kerestem 100 Ft-t. ? Ft-om van?

(#506) cousin333 válasza #82595328 (#505) üzenetére


cousin333
addikt

A fenti példádhoz miért van szükséged for ciklusra? Amúgy a dátumhoz és azok kezeléséhez jó a datetime modul. Példa a használatára:

>>> import datetime as dt
>>> x = dt.date(2015, 12, 3)
>>> x
datetime.date(2015, 12, 3)
>>> y = dt.date(2016, 1, 12)
>>> y
datetime.date(2016, 1, 12)
>>> z = y-x
>>> z
datetime.timedelta(40)
>>> z.days
40
>>> type(z.days)
<class 'int'>

"We spared no expense"

(#507) #82595328 válasza cousin333 (#506) üzenetére


#82595328
törölt tag

Tehát ha jól értem, akkor ez a ciklus működni fog? Csak este tudom kipróbálni.

import datetime as dt
x = dt.date(2015, 12, 15)
y = dt.date(2016, 2, 08)
z = y-x
for x in range(z.days):
a += 100
print (a)

"A fenti példádhoz miért van szükséged for ciklusra?"
Bocsánat kimaradt a mondatból a "minden nap". Tehát a példafeladat ez lenne:
2015.12.15-2016.02.08 között kerestem minden nap 100 Ft-t. Hány Ft-ot kerestem összesen?

(#508) #82595328 válasza #82595328 (#507) üzenetére


#82595328
törölt tag

Köszönöm a segítséget ez lett a végső kód:

import datetime as dt
x = dt.date(2015,12,15)
y= dt.date(2016,2,8)
z = y-x
a = 0
for i in range(z.days):
a +=10
print (a)

(#509) cousin333 válasza #82595328 (#508) üzenetére


cousin333
addikt

Használd a hozzászólás-szerkesztőben a Programkód gombot, akkor nem rontja el a formázást (pl. behúzást) a fórummotor.

Igazából nem véletlenül gyanakodtam a for ciklus kapcsán, mert jelen esetben a használata teljesen felesleges, sőt kontraproduktív (lassú). Javasolnám a célra a szorzás műveletet. :)

import datetime as dt

x = dt.date(2015,12,15)
y= dt.date(2016,2,8)
z = y-x

print(100 * z.days)

Vagy még szebben:

print("{} forintot kerestem összesen".format(100 * z.days))

[ Szerkesztve ]

"We spared no expense"

(#510) #82595328 válasza cousin333 (#509) üzenetére


#82595328
törölt tag

Igazad van és nincs. Jelen pillanatban tényleg elég lenne ciklus nélkül. De ez a ciklus csak a váza lesz majd egyszer valaminek. Most csak a megoldás érdekelt.
Mondjuk kiegészíteném a példafeladatot erre:
Dolgoztam 2015.12.15 - 2016.02.08-ig. Az órabér 10 Ft/h. Páratlan napokon 8, páros napokon 6 órát, 15-e után pedig dupla órabérért dolgoztam. Ezt én már nem tudnám megoldani ciklus nélkül.
De köszönöm még egyszer a segítséget!

(#511) cousin333 válasza #82595328 (#510) üzenetére


cousin333
addikt

Igazad van, az adott példához már lehet, hogy én is így állnék hozzá, mert talán az a legrugalmasabb módszer.

"We spared no expense"

(#512) XP NINJA


XP NINJA
őstag

Ha van egy listám amiben van 90 szám, azt hogyan tudom olyan formában kiiratni, hogy 6 sorban jelenjen meg, soronként 15 értékkel?

Kérdés 2:

Hogyan lehet bekérni 2 időpontot (óra,perc,mp) úgy, hogy számolni lehessen vele? Pl: A kettő közötti eltelt időt kiszámitani.

Kérdés 3: :D

A feladatban egy bekért szöveget kell ékezetmentessé alakitani, majd eltávolitani belőle a nem angol ábécébe való karaktereket.

Itt az angol ábécés dolgot nem is értem. Az lenne hogy # * _ ilyenek ne legyenek benne? :R

(#513) cousin333 válasza XP NINJA (#512) üzenetére


cousin333
addikt

1. kérdés

A Python lista nem igazán erre való, de van egy elegáns, bár nem triviális megoldás a problémára, ami megvillant valamit a Python tudásából :) :

szamok = list(range(90)) # A 90 számból álló lista
sor = 6
elem = 15

# tuple-k listája
felosztva = list(zip(*[iter(szamok)] * elem))

# listák listája
felosztva = [list(i) for i in zip(*[iter(szamok)] * elem)]

Ha valaki nagyon tömbökkel/mátrixokkal akar szórakozni, akkor mindenképpen a numpy modul ajánlott. Ez a tudományos területen a Python-használat alfája és omegája, viszont nem része az alap Python telepítésnek. Ebben pl. van reshape függvény, ami pont erre való, igaz azt nem listákon, hanem a speciálisabb ndarray tömbökön lehet végrehajtani.

2. kérdés

Erre alapvetően a datetime modul datetime objektuma való, de az dátumot is vár, nem csak órát meg percet. Furcsamód a time objektum nem támogatja a kivonást. Példának ott az #509-es hozzászólásom.

3. kérdés

Ez két lépés. Az első, hogy bizonyos karaktereket le kell cserélni. Ehhez létre kell hozni egy hozzárendelést, ami megmondja, hogy mit mire kell cserélni, majd el kell végezni a cserét. Nem tudom, hogy van-e egyszerűbb módszer.

>>> szoveg = "Árvíztűrő tükörfúrógép"
>>> trans = str.maketrans("áéíöüóőúűÁÉÍÖÜÓŐÚŰ", "aeiouoouuAEIOUOOUU")
>>> szoveg.translate(trans)
'Arvizturo tukorfurogep'

Az angol karakterkészlet a string modulban szerepel:

>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

Ebből az eltávolitás valahogy így megy:

>>> szoveg = "Szoveg,-amit meg?:akarunk#szurni"
>>> szurt = [i for i in szoveg if i in string.ascii_letters or i in " "]
>>> szurt = "".join(szurt)
>>> szurt
'Szovegamit megakarunkszurni'

[ Szerkesztve ]

"We spared no expense"

(#514) Pulsar


Pulsar
veterán

Olyan lehetseges hogy egy egyszeru html oldalt python lement egy text file-bba esetleg bizonyos részét (bizonyos adatokat) ment csak le?

(#515) DrojDtroll


DrojDtroll
addikt

Csak engem zavar, hogy Win alatt az IDLE shelljében nem lehet nyilakkal váltani a régebbi parancsok között?

(#516) cousin333 válasza DrojDtroll (#515) üzenetére


cousin333
addikt

Nem csak téged. Ezért (sem) használok IDLE-t... :)

"We spared no expense"

(#517) DrojDtroll válasza cousin333 (#516) üzenetére


DrojDtroll
addikt

Windows alatt van valami jó alternatíva?

(#518) sonar válasza DrojDtroll (#517) üzenetére


sonar
addikt

Kódszerkesztésre én ezt a hármat próbáltam és kb az alábbi sorrendben használom windows alatt.
- Notepad++ python ident plugginnal (céges környezetben ahol sok a policy meg minden ez a legegyszerűbb)
- Spyder
- Visual Studio + Iron Python modul

Linux alatt
- Spyder
- Geany

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#519) DrojDtroll válasza sonar (#518) üzenetére


DrojDtroll
addikt

A spyder-ről még nem is hallottam. Utánanézek.

(#520) DrojDtroll


DrojDtroll
addikt

Először készítek hosszabb python programot!

Elég sok függvényem van már.

Milyen sorrendben érdekes őket elhelyezni a fájlban?

Ilyen szempontból mik a tapasztalatok?

(#521) cousin333 válasza DrojDtroll (#517) üzenetére


cousin333
addikt

Van, több is. Attól is függ, hogyan akarod használni a Python-t.

1. kódszerkesztő (nagyobb programokhoz)
Spyder - talán az egyik legsokoldalúbb, noha nem hibátlan
PyCharm (Community Edition) - talán az egyik legkomolyabb
Ninja IDE - aranyos, de úgy látom, már nem fejlesztik

2. interaktív: parancssorból, soroként (mint az IDLE)
Spyder
IPython - A Spyderben is van ilyen interpreter

3. kódblokkonként, újra futtathatóan:
IPython Notebook (újabban Jupyter Notebook) - elsősorban kísérletezésre, adatfeldolgozásra, prezentációra. Demo

"We spared no expense"

(#522) DrojDtroll válasza cousin333 (#521) üzenetére


DrojDtroll
addikt

nagyon szépen köszönöm :))

(#523) gyurkikrisz válasza Pulsar (#514) üzenetére


gyurkikrisz
őstag

requests modullal tudsz weboldalt szövegként leszedni, fájlba írni szerintem triviális. Ha kell, akkor tagek alapján a BeautifulSoup modullal tudsz belőle információt kiszedni.

A tuning a kisfiúk alap órajele. | i5 6500

(#524) Pulsar válasza gyurkikrisz (#523) üzenetére


Pulsar
veterán

KKoszonom meg probalom. :R
Tegnap sikerult mas modszerrel urllib.urlretrive, es szepen teszi is a dolgat.

Ezt a BeautifulSoup-ot meg nézem, mert rendszerint elég sok felesleges infó jön le, és a lényeget nem tudtam kiszűrni :)

(#525) olivera88


olivera88
veterán

Hogyan lehet megadni pythonban h két szöveg közt hagyjon ki helyet? Kötőjellel megtehetném de nem akarok kötőjelet.
Van egy ilyen kód ami kiolvassa dátumot a fájlból aztán ráteszi a képre, és az a bajom vele h egybefolyik szöveg ha nem rakok kötöjelet.
text_line_1 = "run <grib_info key='dataDate' /> <grib_info key='dataTime'/> - <grib_info key='name'/> <grib_info key='stepRange'/> H - <grib_info key='valid-date'/> "

[ Szerkesztve ]

LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_

(#526) olivera88 válasza olivera88 (#525) üzenetére


olivera88
veterán

Ja és csak kód elejében van ez, a valid datenál már van hely kihagyva.

LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_

(#527) sonar válasza olivera88 (#526) üzenetére


sonar
addikt

Szerintem neked a dátum formázás kell
string to datetime

>>> s = '2010-12-31 23:59:59'
>>> dt = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
>>> print dt
2010-12-31 23:59:59

Ide összegyűjtöttem az összes lehetséges konverziót: [link]
Vagy ha string ként jön és úgy kezeled akkor pikk pakk tudsz egyedi formázást is csinálni egyszerű string manipulációval (megfelelő poziciókba beszúrni a kivánt karaktereket)

[ Szerkesztve ]

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#528) DrojDtroll


DrojDtroll
addikt

Valaki találkozott már olyan scripttel, amely egy hangfájlban megkeresi az ütemeket, és kiírja, hogy mikor(timecode szerűen) vannak ezek?

(#529) EQMontoya


EQMontoya
veterán

Hát én ma jót nevettem.
Különösen a megoldáson: íme. :))

Same rules apply!

(#530) DrojDtroll válasza EQMontoya (#529) üzenetére


DrojDtroll
addikt

Túl lusta vagyok most ezt elolvasni. Miről is volt szó?

(#531) EQMontoya válasza DrojDtroll (#530) üzenetére


EQMontoya
veterán

Ha létrehozol egy datetime objektumot, akkor a default year 1900. Tehát ha február 29-et próbálsz létrehozni, az exception, mert 1900 feb. 29 ugye invalid. (100 évente nincs szökőév, és 400 évente van).

Fix: ha Febr. 29 az input, és üres az év, akkor 1904 a default year. :D

Same rules apply!

(#532) DrojDtroll válasza EQMontoya (#531) üzenetére


DrojDtroll
addikt

Így már világos :)

Köszönöm :R

(#533) Riko88


Riko88
csendes tag

Sziasztok!

Python programozást szeretnék tanulni,az a kérdésem hogy van-e valami könyv vagy hasonló ami alapján lehet tanulni?Lehetőleg magyar legyen.Mark Summerfield Python 3 című könyvét elkezdtem,de ahhoz kell már alap programozási tapasztalat ami nekem nincsen ...
Előre is köszönöm!

(#534) EQMontoya válasza Riko88 (#533) üzenetére


EQMontoya
veterán

Csak a hivatalos Python oldalon lévő tutorialt tudom ajánlani, az szerintem tök jó, de az is épít programozói alapismeretekre. Javaslom, hogy mellé valami általános programozással kapcsolatos könyvet olvass, ami nem a nyelvet magyarázza, hanem a függvények, algoritmusok és mindenféle hasonlók működését.

Same rules apply!

(#535) cousin333 válasza Riko88 (#533) üzenetére


cousin333
addikt

Én anno ezzel kezdtem: Gérard Swinnen: Tanuljunk meg programozni Python nyelven

Már egy kicsit régi, de az alapoktól kezdi.

Angol nyelvű könyv is jó?

"We spared no expense"

(#536) DrojDtroll válasza cousin333 (#535) üzenetére


DrojDtroll
addikt

Én is ezzel kezdtem a Python pályafutásomat. :))

(#537) Riko88 válasza cousin333 (#535) üzenetére


Riko88
csendes tag

Angol könyv nem jó...
Azt a könyvet is néztem,de az meg Python 2höz van ...

(#538) EQMontoya válasza Riko88 (#537) üzenetére


EQMontoya
veterán

Python2 teljesen jó kezdésként.
Viszont ha angolul nem tudsz, akkor azzal kezd, anélkül sokkal nehezebb tanulni és elhelyezkedni sem fogsz tudni.

Same rules apply!

(#539) J. Lovelace válasza Riko88 (#537) üzenetére


J. Lovelace
újonc

Én is abból a könyből tanulok, időnként be kell pótolni pár zárójelet, de amúgy teljesen jól használható. Plusz még ezt olvasgatom: http://blog.molnardenes.hu/python-programozas-kezdoknek/

Tu, was getan werden muss.

(#540) tvamos válasza Riko88 (#537) üzenetére


tvamos
nagyúr

Tudsz valami jo angol nyelvu konyvet ajanlani? Valami programozas villamosmernokoknek... :)

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

(#541) #82595328 válasza Riko88 (#533) üzenetére


#82595328
törölt tag

Elkezdtem összeírni, hogy én miből tanultam eddig:

http://python3tutorial.blog.hu/admin/post/edit/8395310
http://python3tutorial.blog.hu/admin/post/edit/8397806

Ez kezdetnek szerintem bőven elég.

(#542) DrojDtroll


DrojDtroll
addikt

Én egyébként a Python 2-vel szimpatizálok.

Ki hogy van ezzel?

(#543) sonar válasza DrojDtroll (#542) üzenetére


sonar
addikt

Igazából tök mindegy. Az élet dönti el, hogy ki mit használ. Én speciel rá vagyok kényszeritve a 2.7-re (esetenként 2.5,2.4) De haladni kell a korral ezért ha lehetséges akkor meg meg próbálkozom a 3-assal.

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#544) cousin333 válasza tvamos (#540) üzenetére


cousin333
addikt

Milyen témára kéne elsősorban? Azaz mire szeretnéd használni? Léteznek általános célú könyvek, meg specifikusabb tematikájúak is. Attól is függ, milyen stílust szeretsz: ami jó alaposan körbejárja, a témát, vagy ami a második bekezdésben már webszerver kódot közöl.

Előbbire jó példa lehet a Mark Lutz féle Learning Python, ami elég alapos, helyenként talán túlságosan is. Vagy mondjuk a Think Python.

Utóbbiak sokan vannak, előbb szűkíteni kell a kört. Például Think DSP, az A Primer on Scientific Programming with Python vagy a Numerical Methods in Engineering With Python 3 esetleg a Python for Signal Processing. Ezeket kevéssé ismerem, de igényesnek tűnnek.

Mindezek az általános tudást alapozzák meg. Egyébként pedig meg kell ismerkedni a Python ökoszisztémával (pl. Spyder, PyCharm, Jupyter Notebook) és a hasznos modulokkal (pl. Numpy, Scipy, Sympy). Akkor pedig lehet olvasgatni ezek dokumentációját, az általában elég alapos és naprakész.

[ Szerkesztve ]

"We spared no expense"

(#545) cousin333 válasza DrojDtroll (#542) üzenetére


cousin333
addikt

Én mondhatni friss szoftver mániás vagyok, ezért nálam a 3-as a nyerő, mert sok mindent rendbe szedtek, ami korábban kicsit szét volt csúszva: pl. range vs xrange, zip vs izip. Valahogy koherensebbnek tűnik az egész. Ma már minden tisztességes modulból találhatsz Python3-as verziót, szóval szerintem ez sem lehet kifogás.

A 2-es viszont kiforrottabb (bár így a 3.5 megjelenése után már ezt sem feltétlenül mondanám) és még mindig elterjedtebb. Ha korábbi kódot kell kiegészíteni, akkor egyértelmű a választás.

Ami nem tetszik annyira a 3-asban, az a sztring-bájt szétválasztás és a print függvény, bár nyilván mindkettőt jó okkal változtatták meg.

[ Szerkesztve ]

"We spared no expense"

(#546) DrojDtroll válasza cousin333 (#545) üzenetére


DrojDtroll
addikt

sajnos pont az a modul amit az esetek 80%-ban használok csak a python2-höz van :(

(#547) theiron320


theiron320
aktív tag

Sziasztok!
Azt szeretném kérdezni, hogy ennél :

from datetime import datetime as d
import sys
print (d.strptime(sys.argv[1],'%m%d%y')-d(1995,07,07)).days

van e rövidebb megoldás erre a problémára?(Ez csak egy része). Azért kellene mert házi feladatnál be kell férjek egy bizonyos keret alá, már csak 4 byte van pluszba és nem tudom, hogy nézzek más módszert vagy lehet valamit itt is javítani.

Szerk : syst máshol nem használok szóval felesleges neki más nevet adni.

[ Szerkesztve ]

Nem a győzelem a részvét, hanem a fontos!

(#548) tvamos válasza cousin333 (#544) üzenetére


tvamos
nagyúr

Virtuális műszer. Már tavaly elkezdtem vele foglalkozni, csak egy időre mással kellett foglalkozni.

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

(#549) cousin333 válasza tvamos (#548) üzenetére


cousin333
addikt

Mint a LabView? :)

Gondolom a virtuális műszer valami igazinak a leképezése lenne (multiméter, tápegység vezérlés, ilyenek). Nem tudom, meddig jutottál vele és milyen irányból közelítetted meg a témát.

Ami a modulokat illeti: pyvisa, pyserial, numpy, scipy, pandas, ilyesmi. Emellett érdemes megnézni a Qt Designer-t, amivel egyszerűen lehet felületeket kreálni (grafikusan). A WinPython-ban benne van minden.

[ Szerkesztve ]

"We spared no expense"

(#550) DrojDtroll


DrojDtroll
addikt

Meg lehet e csinálni a Google keresőhöz hasonló találat kijelzését cmd-ben?

Olyan kellene, hogy el kezdem gépelni a keresendő stringet, és a megfelelő találatok pl max 10 mindig megjelenne. MInt a Google keresőben. Lehet ilyet?

Copyright © 2000-2024 PROHARDVER Informatikai Kft.