Newsgroup: it.comp.programmare
Titolo: [Python] forme idiomatiche

sto scrivendo il mio primo codice python, funziona tutto, grazie (se
usate gwm (un veeecchio window manager) sotto debian o mandrake vi
potrebbe pure servire)...
mi chiedo se il mio accrocchio per leggere lo stdin sia idiomatico, o
se si possa fare altrimenti... (lo chiedo perche' mi sembra -poco-
elegante come l'ho fatto)
#################################################
import sys
f=sys.__stdin__
initializing_code()
while 1 :
  l=f.readline()
  if l :
    do_stuff
  else :
    break
closing_code()
#################################################
-- 
Lovercraft, bestia.                                -- Whip,    in IFQ

#################################################
Non ho ben capito che vuoi fare ma non fai prima ad usare le funzioni
built-in come input() e raw_input() ?
--
Rhymes (
rhy...@myself.com
)
http://www26.brinkster.com/rhymes
" ride or die "

 #################################################
f/up settato
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Mi piace avere amici rispettabili;
Mi piace essere il peggiore della compagnia.

 raw_input() ?
  sto appunto chiedendo... 
-- 
"It will be rain tonight."
            "Let it come down."

 f/up settato
  it.comp.lang non e' it.comp.lang.python, per quesiti relativi all'
  _uso_ dei linguaggi IMHO e' piu' appropriato icp
-- 
l'amore e' un sentimento a senso unico. a volte una via comincia dove
finisce un'altra e viceversa                       -- Caldana, in IFQ

  finito fare ancora qualcosina
Ah allora io avevo frainteso


  sto appunto chiedendo... 
cmq non usare __stdin__ perchè deve restare cosi :)
usa sys.stdin


  _uso_ dei linguaggi IMHO e' piu' appropriato icp
Peccato che tutti i Pythonisti (italiani) che conosco seguano quell'NG
o perlomeno non seguano questo :)
Insomma posta di la :P


 #################################################
per essere esplicito, quello che _non_ mi piace e' il "while 1",
quello che vorrei e' testare l'EOF come condizione del ciclo,
pensandoci perfino questo lo trovo_quasi_ piu' soddisfacente...
l='\n'
while l :
  l=f.readline()
  do_stuff()
closing_code()
ma quello che il mio DNA vuole e' leggere la linea di input nel
while... ma tutto quello che mi sono inventato senza aver letto il
"reference" (ma "I would prefer not,", per ora) non funziona...
-- 
le mie sacrosante questioni di principio
          VS     gli sciocchi puntigli di quel cretino del mio vicino

closing_code()
Normalmente si scriverebbe:
import sys
initializing_code()
for l in sys.stdin.readlines():
    do_stuff
closing_code()
readlines() ritorna una lista contenente tutte le linee del file
(contenenti il '\n' finale). Se il file è molto grosso puoi usare
xreadlines (dalla versione di python 2.1 mi pare) che non le legge
tutte assieme ma una per volta. Se invece hai la 2.2, nella quale sono
stati aggiunti i generatori, puoi scrivere solo "for l in sys.stdin:".
-- 
Marco Barisione (ICQ 84277092)

  sto appunto chiedendo... 
Secondo me č meglio usare sys.stdin in quanto č molto semplice e
soprattutto, se in futuro decidessi di farlo funzionare su un altro
file e non sullo standard input, dovresti cambiare una sola riga di
codice.


  _uso_ dei linguaggi IMHO e' piu' appropriato icp
No, it.comp.lang è stato creato apposta per ospitare le discussioni
che dovrebbero andare nei vari it.comp.lang.python, it.comp.lang.ruby,
it.comp.lang.fortran ecc. che però per motvi di traffico non
abbastanza elevato attualmente non esistono. Dal manifesto:
|Nella gerarchia it.* esistono molti newsgroup legati ai linguaggi di
|programmazione piu` diffusi. it.comp.lang vuole essere il gruppo dove 
|sia possibile discutere:
| - dei linguaggi che non hanno un gruppo specifico a causa della loro
|   minore diffusione
|[...]
Ed è stato infatti creato da "pythonisti" insoddisfatti di non avere
un proprio gruppo.


"reference" (ma "I would prefer not,", per ora) non funziona...
Non capisco perché non usi il for con readline, readline c'era
sicuramente già in python 1.5.2 ed è il modo tipico di fare ciò.


 sicuramente già in python 1.5.2 ed è il modo tipico di fare ciò.
  per ignoranza, ecco perche'!
