<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-2" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Petr Prikryl napsal(a):
<blockquote
cite="midE8AE1CAFC84D634A9CCC887B8AAB15EC028A5D@skil01.skil.mistni"
type="cite">
<pre wrap="">[...]
</pre>
<blockquote type="cite">
<pre wrap="">Je to tam, ale je mezi uzavřenými [...] Částečné řešení
lze nalézt u poslední poznámky by birkenfeld, tj. explicitně
raw_input(s.encode(sys.stdout.encoding))
Dá se to vyřešit centralizovaně například definicí vlastní funkce:
def my_input(s):
import sys
return raw_input(s.encode(sys.stdout.encoding))
Ale moc se mi to nelíbí, protože takhle by měla fungovat
raw_input() už "od narození". [...]
</pre>
</blockquote>
<pre wrap=""><!---->
Až teď jsem si všiml názoru GvR, který se týká
raw_input() -- viz <a class="moz-txt-link-freetext" href="http://www.python.org/peps/pep-3000.html">http://www.python.org/peps/pep-3000.html</a>
a <a class="moz-txt-link-freetext" href="http://www.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf">http://www.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf</a>
Stučně řečeno, GvR lituje, že raw_input() vůbec vzniklo.
Doporučuje používat sys.stdin.readline(). Něco na tom je.
Nedobře fungující implementaci raw_input() můžu jednoduše
nahradit vlastní malou funkcí:
========================================
import sys
def my_input(prompt):
sys.stdout.write(prompt)
return sys.stdin.readline()
r = my_input('prompt: ')
print r
========================================
pepr
</pre>
</blockquote>
<br>
Mám k tomu snad 2 poznámky:<br>
<br>
* rozhodně to není pro začátečníky. Je to takové nejednoduché, nepřímé.
Sice by se to dalo udělat, jako třebas v
kurzu livewires, kde si takto podobně nadefinují funkce i na čtení
čísel i s ošetřením hodnot, ale to zas funguje jen pokud člověk jede v
livewires nebo v tom jednom kurzu, kde to je implementováno<br>
* proč se takto neimplementuje raw_input? (možná že to tam guido píše,
četl jsem to zhruba)<br>
<br>
Myslím že není dobré začátečníky hned upozorňovat na bug, který je
téměř v prvním příkazu, se kterým se setkají. Spíš je se snažit přimět
nepoužívat diakritiku a teprv když na to sami přijdou, že jim to
nefunguje, tak jim napovědět buď co píšeš nebo staré dobré:<br>
<tt><br>
# -*- coding: ...... -*- <br>
vyzva=u"Otázka s nabodeníčky: "<br>
print vyzva,<br>
odpoved=raw_input()</tt><br>
<br>
<pre class="moz-signature" cols="100">--
geon
Vyjímka je pravidlo. Rekurzivní.
</pre>
</body>
</html>