[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