作者: Fe2+
日時: 2002/4/09(23:30)
Fe2+ です。

From: "Naomasa Numajiri" <naonuma@...>
Date: Mon, 8 Apr 2002 23:38:57 +0900

> 他に書き方があったら遠慮なくよろしくです>>pythonな方

ということで若干補足。

> for i in map(atoi,argv[1:]):
>  sum = sum + i

ここで map をつかうならいっそ

sum = reduce(lambda x,y:x+y,map(atoi,argv[1:]),0)

とか(Python らしさはない気もしますけど)。
あるいは operator.add を使うかな。

あと、atoi を使わずに int でもいいとか。

>  buf = stdin.readline()[:-1]

stdin.readline() よりも raw_input() の方が普通じゃないかとか。


総合すると、こんな感じ。

from sys import argv
from operator import add

sum = reduce(add, map(int, argv[1:]), 0)
while 1:
      buf = raw_input()
      if buf == '0': break
      sum += int(buf)
print sum


map はあんまり受けが良くなかったりするので、
代わりに [int(x) for x in argv[1:]] とか書いてみるのもあり。
少なくとも初心者にはこの方が易しいかも。

# for buf in stdin: と書けるような気もしたけどうまくいかない。

--
MATSUI Fe2+ Tetsushi
 mailto:VED03370@...
 http://member.nifty.ne.jp/Fe/