Zdravím všechny na konferenci, asi jsem při představování se udělal chybu, protože jsem neuvedl svůj věk.
Narodil jsem se v roce 1964. Nemějte mi prosím za zlé, že mám někdy dotazy, které kladou dvanácti-leté děti. Pokud jde o matematiku, chodil jsem od samého začátku do zvláštní, a tam výuka probíhala tak, že co se děti učily ve třetí třídě, v tzv. zvláštní se to samé učili děti z první třídy. Ale to nemění nic na tom, že bych se chtěl naučit programovat. Přeji příjemný den. Jarek ----- Original Message ----- From: "Pavel Kosina" <[EMAIL PROTECTED]> To: "Konference PyCZ" <[email protected]> Sent: Monday, June 09, 2008 12:49 PM Subject: Re: [python] Otázky kladené Pythonem > Zmizení klasického inputu je jedna z věcí, co mi vadí na 3.0. Vaše > argumenty jsou pěkné, neplatí však pro 12-ti leté kluky. Tím nechci > říci, že Jarkovi je 12. Srovnejte čitelnost: > > cislo1=input("Zadej cislo") > cislo1=int(raw_input("Zadej cislo")) > > V druhém příkladě je až moc závorek a funkce int navíc proti první. > Přichází chyby ze špatně napsaných závorek a horšího kompletního > porozumění. Jde o to, že asi tady bude místo, kde se začně říkat žákům: > tohoto si zatím nevšímejte, prostě to napiště jak to je, vysvětlení bude > později. To je jedna z hlavních věcí, které se chci u absolutních > začátečníků vždy vyhnout. > > Naopak, to že se do inputu dají zadávat nejen 1+1, ale výraz s > proměnnými, je jedna z věcí, kterou mí žáci vždy vítali s nadšením, s > velkým nadšením, byl to jakýsi první hack, a povzbudilo je to k dalšímu > zápolení s jazykem. > > Pavel Kosina > > > Filip Štědronský napsal(a): >> Dobrý den >> No jde o to, že input jako funkce je dost nelogická, >> protže provádí dva zcela odlišné úkony — načtení řetězce >> a jeho vyhodnocení jako výrazu. Myslím, že cílem většiny >> vstupů nebývá vyhodnocení výrazu, takže nemá cenu >> začínajícím plést hlavu. Navíc, není to dvakrát >> nejrychlejší (což je tady jedno, ale stejně). >> >> Jediný důvod, proč se ve skutečnosti input tak často >> používá je, že v jednoduchých programech pracujeme >> častěji s čísly než řetězci a input nám při prostém >> zadání čísla jej vrátí. Ale "opravdu" si chceme z >> funkce input() udělat read_number ? Navíc pro v původní >> otázce zmíněný příklad zkoušení příkladů by šlo na prompt >> 1+1 napsat prostě 1+1 a vše by fungovalo. >> >> Takže vážení, pokud chcete načítat čísla, použijte >> int(raw_input()). Funkce input() stejně v Pythonu 3 >> zmizí. I pokud byste doopravdy potřebovali vyhodnotit >> výraz ze vstupu a věděli, co děláte, použijte >> eval(raw_input()), protože je to daleko čitelnější. >> Funkce input() je archaický přežitek zachovávaný kvůli >> zpětné kompatibilitě, a v žádném případě by se neměla >> používat. >> >> PS: V Pythonu 3 se bude raw_input jmenovat input(), je >> to hezčí. Původní input pak nahradí přehledné >> eval(input()). >> >> > > > -- > geon > Pavel Kosina > > _______________________________________________ > Python mailing list > [email protected] > http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
