[python] Otázky kladené Pythonem
Jarek Krcmar
krcmar1 na volny.cz
Pondělí Červen 9 14:17:50 CEST 2008
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" <geon na post.cz>
To: "Konference PyCZ" <python na py.cz>
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
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
Další informace o konferenci Python