Python 3.4 - jak uchovat nastavení

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #30 kdy: 28. 07. 2015, 12:53:55 »
Nemohu plně souhlasit s myšlenkou,

tazatel něco neumí nebo něčemu nerozumí, vytvoří nové téma kde pokud někdo ví poradí. A tečka.
Sem tam se najde někdo kdo ho trolí, ale to už tak v naší společnosti je. No a pak se tam nabalí offtopic příspěvky. Ano to se stává, ale k tomu to primárně neslouží.

Jak, a tečka? Tohle fórum se jmenuje Vývoj, ne "OPova osobní poradna".

Primární je zodpovědět a poradit co nejlepší cestu.
Databáze pro python by si zasloužily vlastní diskuzi, určitě ale nepatří jejich zmiňování do dotazu na uchování nastavení programu.

Tento příspěvek je také mimo mísu.

S tím prostě nemůžu souhlasit - primární by mělo být se něco dozvědět a vést diskuze (alespoň přibližně) k tématu. Což (objektové!) databáze určitě jsou, to pozná i OP, až mu ten program začne přerůstat přes hlavu.

Já jsem se například dozvěděl, že se dá použít RelStorage, což je pro mě důležitá informace, kterou bych jinak těžko získával. To že se tady z toho různí začátečníci snaží udělat jejich osobní helpdesk neznamená, že my všichni ostatní se jim musíme podřizovat.


Re:Python 3.4 - jak uchovat nastavení
« Odpověď #31 kdy: 28. 07. 2015, 12:59:47 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to
Bože to je prasárna...


Co je na tom za prasárnu? Ve skole sem za to dostal jednicku a ten ucitel ma vysokou skolu, tak by mi ji asi nedal ne?

Možná jsem jen nepoznal trolla, ale jestli se za toto dneska dávají jedničky, tak je to se školstvím mnohem horší, než se obecně soudí. Nebyl to příklad pro: udělejte na minimálním počtu řádků maximum programátorských chyb?

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #32 kdy: 28. 07. 2015, 13:03:26 »
Divní trolové,
tazatel se ptal v čem si má uchovat pár hodnot oběktu pro znovuspuštění, dokonce uvádí že si potřebuje uchovat tři proměné, a vy na něj jdete s databází ? Proboha proberte se a začněte přemýšlet než něco kváknete. Já jen doufám, že podobně neřešíte i vaše pracovní zadání. Já bych vás hnal, pokud by jste mi dotáhly kód kde místo využití základních knihoven na jednoduchý program/script budete mít půl A4 popsanou dependencies jen, že potřebujete uchovat pár bajtů kvuli znovu spuštění.

Doufám že víte, jak přesně toto potom dopadá v praxi. V praxi se také chce udělat jednu věc rychle a jednoduše (místo blablabla použít blabla). Jenže tohle trvá asi tak týden, potom přijde požadavek, kde je potřeba udělat něco co sice jde ale drhne to, a potom přijde požadavek, který už znamená to kompletně přepsat (přitom kdyby se na počátku šlo na problém "z větší šíře", tak se další požadavky implementují jedna radost. Každý velký program začínal tím, že "je potřeba uchovat tři proměnné". Je naopak dobré tazateli poradit další možnosti, jak se s takovou situací vypořádat.

rizi

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #33 kdy: 28. 07. 2015, 13:26:26 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to
Bože to je prasárna...


Co je na tom za prasárnu? Ve skole sem za to dostal jednicku a ten ucitel ma vysokou skolu, tak by mi ji asi nedal ne?

Možná jsem jen nepoznal trolla, ale jestli se za toto dneska dávají jedničky, tak je to se školstvím mnohem horší, než se obecně soudí. Nebyl to příklad pro: udělejte na minimálním počtu řádků maximum programátorských chyb?

Ale tam zadna chyba neni! Dyt to funguje dobre.

frk

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #34 kdy: 29. 07. 2015, 09:05:33 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to


Jo, jasně. A takhle nějak vy a ten váš učitel šifrujete, žejo?

Kód: [Vybrat]
text = "Tohle je tuze tajne"
klic = 3
delka = len(plaintext)
for i in range(delka):
    plaintext[i] = plaintext[i] + klic
print text


K>

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #35 kdy: 29. 07. 2015, 10:21:26 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to
Bože to je prasárna...


Co je na tom za prasárnu? Ve skole sem za to dostal jednicku a ten ucitel ma vysokou skolu, tak by mi ji asi nedal ne?

Možná jsem jen nepoznal trolla, ale jestli se za toto dneska dávají jedničky, tak je to se školstvím mnohem horší, než se obecně soudí. Nebyl to příklad pro: udělejte na minimálním počtu řádků maximum programátorských chyb?

Kdybys radsi chytraku hned v prvnim prispevku napsal jak je to neprasacky. Nebo jen tak blbe kecas?

rizi

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #36 kdy: 29. 07. 2015, 10:42:38 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to
Bože to je prasárna...


Co je na tom za prasárnu? Ve skole sem za to dostal jednicku a ten ucitel ma vysokou skolu, tak by mi ji asi nedal ne?

Možná jsem jen nepoznal trolla, ale jestli se za toto dneska dávají jedničky, tak je to se školstvím mnohem horší, než se obecně soudí. Nebyl to příklad pro: udělejte na minimálním počtu řádků maximum programátorských chyb?

Kdybys radsi chytraku hned v prvnim prispevku napsal jak je to neprasacky. Nebo jen tak blbe kecas?

Jen blbe keca, protoze na tom linuxu stejne programovat nejde. Neni pro nej visual studio.

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #37 kdy: 29. 07. 2015, 13:39:42 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to
Bože to je prasárna...


Co je na tom za prasárnu? Ve skole sem za to dostal jednicku a ten ucitel ma vysokou skolu, tak by mi ji asi nedal ne?

Možná jsem jen nepoznal trolla, ale jestli se za toto dneska dávají jedničky, tak je to se školstvím mnohem horší, než se obecně soudí. Nebyl to příklad pro: udělejte na minimálním počtu řádků maximum programátorských chyb?

Kdybys radsi chytraku hned v prvnim prispevku napsal jak je to neprasacky. Nebo jen tak blbe kecas?

Kód: [Vybrat]
hodnoty = [1,2,3,4]
delka = len(hodnoty)
for x in range(delka):

List je sám o sobě iterable, takže zjistit délku listu a potom vygenerovat další list (range) a ten naprat do smyčky je prasárna.

Prvek listu sice můžeme odkazovat indexem, ale když už máme smyčku, tak máme přímo hodnoty:

Kód: [Vybrat]
hodnoty = [1,2,3,4]
for h in hodnoty:
   f.write(h + "\n")

Což je ale ten menší problém a začátečník na to časem přijde.

Dále se nikde nezavírá soubor f, lepší konstrukce je with open() as work_file: což automaticky uzavře a uvolní soubor i při výjimce.

Větší problém je chybné generování výsledného CSV. (Comma separated values) rfc4180

Co když budou hodnoty: ["a,b,c", "1,2", "x"]?

Program vygeneruje výstup, kde na každém řádku bude jiný počet hodnot (dejme tomu sloupců) - což není správné CSV. Vstup je třeba ošetřit.

Dále \n neodpovídá RFC, správně se řádek CSV ukončuje CRLF (\r\n).

Ještě by se dalo diskutovat o tom sčítání stringů apod.

Proto python obsahuje ve standardní knihovně modul pro práci s CSV.

Snow

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #38 kdy: 29. 07. 2015, 13:51:16 »
nehlede na to ze spojuje int a str coz nejde...

v tak kratkem kodu nasekat tolik chyb je umeni :-)

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #39 kdy: 29. 07. 2015, 14:00:12 »
nehlede na to ze spojuje int a str coz nejde...

Pravda.

v tak kratkem kodu nasekat tolik chyb je umeni :-)

jj, sem tam se najde chytrý troll   :)

wifina

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #40 kdy: 29. 07. 2015, 14:10:59 »

jen poznamka k iteraci pres list - nekdy je potreba i index, ruby na to ma cosi, a python taky :
http://stackoverflow.com/questions/522563/accessing-the-index-in-python-for-loops

rizi

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #41 kdy: 29. 07. 2015, 15:50:29 »
jj, sem tam se najde chytrý troll   :)

Ale mentálně mě celkem uspokojuje, kolik času ste vrazili do toho mi všechno vyvrátit a ještě mě do puntíku opravit :)

mxlbzn

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #42 kdy: 29. 07. 2015, 18:16:09 »
...

Jo, jasně. A takhle nějak vy a ten váš učitel šifrujete, žejo?

Kód: [Vybrat]
text = "Tohle je tuze tajne"
klic = 3
delka = len(plaintext)
for i in range(delka):
    plaintext[i] = plaintext[i] + klic
print text

RoFl. It is wrong on so many levels..

Snow

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #43 kdy: 29. 07. 2015, 18:49:17 »
jj, sem tam se najde chytrý troll   :)

Ale mentálně mě celkem uspokojuje, kolik času ste vrazili do toho mi všechno vyvrátit a ještě mě do puntíku opravit :)
neboj tolik času to nebylo, řekl bych asi tak stejně jako napsání toho tvého ukázkového kodu :-)