Az eredeti kérdésre lehet, de közel negyven éve tanultam ilyesmit, viszont sosem használtam, szóval matekból nagyjából a négy alapművelet maradt meg. :)
Sziasztok lenne egy programozás feladatom, amire nem igazán tudok rájönni, hogy hogy kellene csinálni. Valaki esetleg tudna benne segíteni? Ez lenne a feladat:
Adott egy m x n méretű mátrix és egy k pozitív egész szám. Készítsen programot, amely megnézi a mátrixban lévő négyzeteket (egy részmátrix, pl 1x1 vagy 2x2, stb. méretű részmátrix) és visszaadja annak az összegét, amely a legnagyobb, de még nem haladja meg k értékét.
Példák
bemenet: matrix = [[1,0,1],[0,-2,3]], k = 2 kimenet: 2
most kezdtem a pythonnal foglalkozni és nagyon tetszik.
Az alap kis számolgatós .py dolgaimból szeretnék egy windows alatt futatható . exe fájlt csinálni, de sehogy se akar sikerülni...
Az auto-to-exe minen létező videóját megnéztem..megcsináltam, elindítja az exe fájlt, bekéri a számot, megadom, de onnan már nem megy tovább. Ebben szeretném a segítségeteket kérni, hogy ezt hogy lehetne megcsinálni..
Sziasztok! Segítséget kérnék, nemrég kezdtem a Pythont, tetszik nagyon, kaptam egy feladatot, amiben viszont elakadtam. Yaml file-ból olvasva az adatok mennyisége szerint kell kigenerálnom cimkéket és mezőket, majd gombnyomásra
kimenteni object-be az adatokat (class) majd egy másik gombra kigenerálni dikt-be majd json fileba írni.
Megoldottam, működik a feladat, viszont elvileg a yaml mezőinek bővítésével is működnie kellene,
(mezők, cimkék, visszaolvasás, dump, kiírás minden megy) de dinamikusan kéne létrehoznom a Person osztályt, aminek a konstruktora és a metódusai várják a yaml adatok alapján a mezőket.
Ebben kérném a segítséget: Dinamikus.osztály létrehozása.
# config.yaml data_file: ../Data/saved.json
fields: - field_name: code label: Code - field_name: result label: Result [%] - field_name: mark label: Mark [1-5] - field_name: teszt label: Teszt [1-5]
a kézzel létrehozott class és érintett metódusai (a működő 3 mezős app-ból):
# Person osztaly
class Person: def __init__(self, code=None, result=None, mark=None): self.code = code self.result = result self.mark = mark
Ha jól vélem érteni, túl sok az akadályozó játékos a történetben, a legrosszabb közülük maga a MS Windows. De van esély, ha ez egy Windows 10: abban aktíválod a WSL nevű komponenst, ahhoz telepítesz egy Ubuntu18-at, és lesz egy programozáshoz való rendszered (igaz, GUI nélkül, csak Command Line).
Most ismerkedek a Pythonnal, nulla előélettel. Szeretném installálni a Paramiko-t Pycharm-ban, de nem akar összejönni, hibára fut. Viszont IDLE alatt megy (ott pip-pel tettem fel, minden OK). Hogy kell ezt felinstallálni Pycharm alá? Hogy hol kellene, azt tudom (Settings/Project Interpreter és Add), de hibára fut:
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "<string>", line 1, in <module> File "C:UsersKiss RóbertAppDataLocalTemppip-install-b8o3qroccffisetup.py", line 127, in <module> if sys.platform == 'win32' and uses_msvc(): File "C:UsersKiss RóbertAppDataLocalTemppip-install-b8o3qroccffisetup.py", line 105, in uses_msvc return config.try_compile('#ifndef _MSC_VERn#error "not MSVC"n#endif') File "C:UsersKiss RóbertAppDataLocalProgramsPythonPython38libdistutilscommandconfig.py", line 225, in try_compile self._compile(body, headers, include_dirs, lang) File "C:UsersKiss RóbertAppDataLocalProgramsPythonPython38libdistutilscommandconfig.py", line 132, in _compile self.compiler.compile([src], include_dirs=include_dirs) File "C:UsersKiss RóbertAppDataLocalProgramsPythonPython38libdistutils_msvccompiler.py", line 360, in compile self.initialize() File "C:UsersKiss RóbertAppDataLocalProgramsPythonPython38libdistutils_msvccompiler.py", line 253, in initialize vc_env = _get_vc_env(plat_spec) File "C:UsersKiss RóbertPycharmProjectsce_konfigvenvlibsite-packagessetuptools-40.8.0-py3.8.eggsetuptoolsmsvc.py", line 185, in msvc14_get_vc_env File "C:UsersKiss RóbertPycharmProjectsce_konfigvenvlibsite-packagessetuptools-40.8.0-py3.8.eggsetuptoolsmsvc.py", line 843, in __init__ File "C:UsersKiss RóbertPycharmProjectsce_konfigvenvlibsite-packagessetuptools-40.8.0-py3.8.eggsetuptoolsmsvc.py", line 485, in __init__ File "C:UsersKiss RóbertPycharmProjectsce_konfigvenvlibsite-packagessetuptools-40.8.0-py3.8.eggsetuptoolsmsvc.py", line 492, in _find_latest_available_vc_ver distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in C:UsersKiss RóbertAppDataLocalTemppip-install-b8o3qroccffi
Átvettem a python elméletet, OOP-t is, készítettem egy-két gyakorlatot is.
Az lenne a kérdés szerintetek milyen területen kellene elindulnom, hogy gyakorlati tapasztalatot szerezzek.
Milyen területen van a legjobban elterjedve, illetve mi az ami a legkeresettebb jelenleg. Rövid távú cél az lenne, hogy kisebb freelancer projekteket oldjak meg, tanulás céljából.
A Hengersor nevű suliba mennék esti teljesen ingyenes programozó / szoftverfejlesztő OKJ -s képzésre, de nem vagyunk elegen, hogy induljon a képzés. Ha valaki szeretne ingyen tanulni, mint én, akkor hívja fel a sulit telefonon, vagy írjon nekik e-mail-t, hogy esti szoftverfejlesztő OKJ -ra szeretne járni. Teljesen ingyenes. Köszi a többiek nevében is ha csatlakozol, vagy ha szólsz az ismerőseidnek, akiket esetleg érdekelhet a képzés. Sose késő :)
Eleg absztraktak a kerdeseid, ha tobb konkretumot irnal, lehet hogy jobb adatszerkezetetre kapnal javaslatot.
Nekem ugy tunik, pontosan tudod, mirol van szo.
pl legyen 8 set, akkor letrehozza oket:
Milyen adatokbol, milyen szabaly alapjan?
Eleg egyertelmu, hogy a peldakban mindig csak egy listaval dolgoztok, nekem tobb lista kell, es a listakat kell valahogy automatikusan kezelni.
Ahogy a legelejen irtam, jo lenne, ha lenne vegre egy ertelmes konyv, es talan a fejlesztoknek is kellene valami ertelem, hogy miszerint fejlesztik a pythont, mert nekem ugy tunik, hogy radikalis kulonbsegek vannak kulonbozo veriziok kozott es ez nagyon nem jo.:-((
Hogyan tudom for ciklussal megoldani a set-ek letrehozasat?
pl legyen 8 set, akkor letrehozza oket:
Milyen adatokbol, milyen szabaly alapjan?
A dict eseteben kizarolag ket elem szerepelhet?
A dict kulcs-ertek parok halmaza, barmennyi (ld. a korabbi valaszt) parost tartalmazhat. A kulcsnak egyedinek kell lennie, ertekeknek nem. Ha a dictbe mar egy letezo kulccsal akarsz uj adatot berakni, akkor az elozo felulirodik.
Csakhat, ugye, elvileg van maximalis karakterszam, amit be lehet irni illetve ki lehet iratni egy sorba
Jo, de ezt egy normalis UI (GUI/TUI) tudja kezelni: szovegek csonkolasa, tobb sorba valo tordeles, scrollbar...
A leirasokbol viszont a lista es tuple mind memoriaban foglalja helyet, ami eros korlatot jelent.
Nem szukseges mindent a memoriaban tartani, csak annyit, amennyi az adott feladathoz/szamitashoz szukseges. (Persze lehet a memoriaban is - cache, de kitalaltak mar ezt.) Nyilvan egy alapszintu leiras nem fogja teljeskoruen taglalni ezt a problemat, ahogy irtad bemutatjak a Python alapjait 20 db elore megadott szammal.
Eddig barmivel talalkoztam, ez elejen volt egy hasonlo adatbeviteli rutin:
Pythonban is van for ciklus:
l = []
for i in range(9):
l.append("adat")
vagy rovidebben list comprehension: l = [i for i in range(1, 21) if i % 2 == 0] ez peldaul listaban visszaadja az 1 es 20 koze eso paros szamokat.
Mindezt user inputtal:
data = [input("Ird be a(z) %d. adatot: " % i) for i in range(1, 6)]
Na igen, erre tippeltem, mert annyit talaltam, hogy a tuple kisebb memoriat foglal, mint a lista. Csakhat, ugye, elvileg van maximalis karakterszam, amit be lehet irni illetve ki lehet iratni egy sorba, egeszen mas, mint egy hatalmas adatbazisbol mindig csak azt a par rekordot beolvasni, ami eppen kell.
Ezen a forumon is van vagy tobb millio hozzaszolas, topikokba rendezve, oldalankent n db megjelenitve beloluk, a HTTP keresnek megfeleloen (nyilvan nincs is a memoriaban az, ami nem kell)...
Na igen, ezt hivjak adatbazisnak. A leirasokbol viszont a lista es tuple mind memoriaban foglalja helyet, ami eros korlatot jelent.
melyik programnyelv(ek) tutorialja(i)ban targyaljak ki ezeket (akar mar a legelejen)?
Eddig barmivel talalkoztam, ez elejen volt egy hasonlo adatbeviteli rutin: for i=1to9 a(i)="adat" next
Itt sehol se talaltam ilyet, hogyan tudom lista1 - lista9 ciklussal listakba bevinni az adatokat? Amiket talaltam, ott elore megadtak a lista elemeit, es utana csak adott lista elemeivel vegeztek muveleteket.
Meg kell keresni, hogy adott elem melyik listakban szerepel: lista_alma = lista1, lista2 lista_baba = lista1 stb.
2. tablazat
Ez tuple-kkel a legjobb: tuple1 = 1,3,5 tuple2 = 1,2,5 tuple3 = 2,4,5
Ekkor azonnal letre lehet hozni es kiiratni a 3x5-os tablazatot
3. halmazok tobbfele eredmeny lehet: 1. fuggetlenek egymastol, ha nincs egyetlen kozos elemuk se 2. egyik a masiknak teljesen resze 3. vannak kozos elemeik, de mindkettonek van olyan eleme, ami a masikban nem szerepel
Ez a legproblemasabb, nem talaltam ra osszehasonlitasoknal megfelelo parancsot ra, es ugy tunik, egeszan maskent kell osszehasonlitani listakat, tuple-kat es valtozokat.
Ezert kerdeztem, hogy milyen lehetoseg van meg lista es tuple mellett, kulonosen, ha rengeteg adatrol van szo.
Listanak, tuplenek, stb. hany eleme lehet maximum?
Gepfuggo (memoria). Amugy sys.maxsize: The largest positive integer supported by the platform’s Py_ssize_t type, and thus the maximum size lists, strings, dicts, and many other containers can have.
A mintapeldakban allandoan kiiratjak az elemeket, ami nyilvan csak max. 20 elemig ertelmes dolog. Mi van, ha tobb szaz elemu a lista? Ki se fer a kepernyore.
Mi a kerdes? Mit akarsz az elemekkel csinalni? Ezen a forumon is van vagy tobb millio hozzaszolas, topikokba rendezve, oldalankent n db megjelenitve beloluk, a HTTP keresnek megfeleloen (nyilvan nincs is a memoriaban az, ami nem kell)...
Mas programnyelvek mintaprogramjaiban mit csinalnak a 20 elemnel tobbet taralmazo listaval/vektorral/tombbel stb?
"adatbazis elem"
Ilyen tipus nem letezik a pythonban, barmit is jelentsen
Erdemi osszehasonlitasokra hogyan van lehetoseg?
Tudsz sajat implementaciot is adni (sajat) tipusokra:
celiranyosan segit a google, ha mar jobban tudod mit szeretnel.
Ha van pl. 50x20 tuple-m, es tudni akarom az osszes elemet, akkor egyesevel kell uj listaba letrehozni oket egyesevel szurve, vagy egyszerubb csak listaba masolni, majd kiszurni a duplatr?
Ez mit jelent? Van 50 db 20 elemu tuple-d vagy 1000 db n elemu? tuple-nel hasznalhato a hash() osszehasonlitasra (nem kell a tuple elemeit egyesevel osszehasonlitgani), listanal nem. Amugy, ha adatbazisbol jonnek a rekordok, miert nem azzal szursz?
+ bonusz, csak a kivancsisag kedveert: melyik programnyelv(ek) tutorialja(i)ban targyaljak ki ezeket (akar mar a legelejen)?
Pythont kezdtem tanulgatni, de ugy tunik, a peldak nagyon primitivek es alapveto informaciokat se talalok, amiket mas programozasi nyelvekben mar az elejen kitargyalnak.
Tudna valaki segiteni, hol talalok rendes peldakat?
Elsosorban a lista, tuple es tarsai erdekelnek, vagy adatbaziskezeles.
Nehany pelda, mire gondolok:
Listanak, tuplenek, stb. hany eleme lehet maximum?
A mintapeldakban allandoan kiiratjak az elemeket, ami nyilvan csak max. 20 elemig ertelmes dolog. Mi van, ha tobb szaz elemu a lista? Ki se fer a kepernyore.
Lista, tuple, adatbazis elemeinek osszehsonlitasara szinte semmi lehetoseget nem talaltam, csak a < jelet hasznaljak, de a leiras szerint az csak lexikografikusan dolgozik. Erdemi osszehasonlitasokra hogyan van lehetoseg?
(peldaul hogyan tudom meg, egy tuple-nek egy masik tuple valodi es teljes resze, vagy csak par kozos elemuk van, vagy nincs kozos elemuk, csak az elemszamuk kulonbozik?)
Hogyan lehet parameteradassal listakat letrehozni?
Peldaul ciklusba rendezni, hogy ha van ezer elemem, akkor mondjuk 50-esevel tarolja tuple001, tuple002, stb.-be?
Mekkora elemszamot optimalis listaban, vagy tuple-ben kezelni?
Erdemesebb 50-esevel darabolni, kulonosen, ha csak elemek szerinti kiiratasra van lehetoseg a kepernyon?
Hogyan lehet vele adatbazist kezelni es milyen tipusut?
Ha van pl. 50x20 tuple-m, es tudni akarom az osszes elemet, akkor egyesevel kell uj listaba letrehozni oket egyesevel szurve, vagy egyszerubb csak listaba masolni, majd kiszurni a duplatr?
Miert szeretned listaba rakni a tizesbe() fuggveny eredmenyet?
Amugy ajanlanam figyelmedbe a https://pastebin.com/ szolgaltatast (vagy van meg 1000 masik ilyen), oda bekopizhatod a forraskodot (vagy csak a lenyeget). Elonyok:
- nem kell screenshotot (akar tobbet) keszitened, ide feltoltened:
- macera - pastebinen ez ctrl-c ctrl-v + ide egy link beszurasa
- a kep itt megmarad az orokkevalosagig - a pastebinen torolheted/torlodik automatikusan
- konnyebb mindenkinek kiprobalni a kodod elesben, nem kell bepotyogni a keprol