[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 09/12 00:16 / Filesize : 189 KB / Number-of Response : 952
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part34



1 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:23:19 ]
Pythonオフィシャルサイト
www.python.org/
日本Pythonユーザ会
www.python.jp/Zope/
まとめWiki
python.rdy.jp/
関連スレ
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
前スレ
pc12.2ch.net/test/read.cgi/tech/1240678081/

652 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 05:49:55 ]



653 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 09:38:46 ]


654 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 13:53:35 ]
python2.5でプロセス操作が可能なライブラリってありますか?

655 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 18:34:36 ]
subprocess

656 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 21:08:56 ]
>>651
うpろだの事かー!

657 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 21:31:49 ]
何番?
ttp://long.2chan.tv/jlab-long/s/long1252027171807.jpg

658 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 21:48:32 ]
d = dict
としたあとで key in d が出来る様にするにはどうすればいいんだろう?

659 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:37:06 ]
>>658
d = d()

660 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:08:03 ]
d = d.keys()



661 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:07:43 ]
いつもdictでfor文まわすのってどうやるんだったっけって調べてしまうぜ。
いちいち言語の文法をそらんじなくなって久しい。

662 名前:デフォルトの名無しさん [2009/09/05(土) 12:21:13 ]
>>660
なんでわざわざdictのkeyを取り出す必要があるんだ?

663 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 13:28:02 ]
>>662
keyの文字列自体を何かに使いたいとき

664 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 13:50:23 ]
入門書嫁。

665 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:33:28 ]
リファレンス嫁。

666 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 23:55:21 ]
Python + C# 最強説あらわる。これでR**yを殲滅できるぞ!
ttp://d.hatena.ne.jp/wasisan/20090905

667 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:01:46 ]
またRuby厨があらしてるのか

668 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:33:49 ]
C#イラネ
ヘジのクラスライブラリは勘弁

669 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:11:00 ]
どうみてもPythonもC#も被害者じゃないか

670 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 02:35:09 ]
いや、普通にPython+C#で商用プログラム書いてるところですが何か。



671 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 10:12:46 ]
>>666
変な主観で語られてもなぁw


672 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 11:30:55 ]
それと比べたらたとえ揚げ足取りであったとしても、ちゃんと文章を細かく読んでくれて、理由もつけられて、
その文章内容自体について説教・罵倒される方がはるかにましだということにあの人たちはなぜか気づかない
(多分、リアルがそれなりに充実した幸せな人たちだからだろう)。今の時代、話を聞いてくれて、まともな
ことを言ってくれる近所の頑固親父的な人なんて絶滅危惧種なのに。

まあ、普通の大人の現代(近代)社会を考えると仕方がないのかもしれないけど。よく言われることだが、社会人は
自分の利益になるケース以外では他人(特にいわゆる「バカ」)に対して注意なんてすることはないのだ。
そんなの時間がもったいない、「時は金なり」ということ(まったくいやなことだが)。

それにしても、「「バカ」であることを自己認識し自重する人たち」にとっては、現代とはなんと寂しい・辛い世界
であることか。その人たちは相手にされること、馴れ合うことすらできないのだから。



673 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 13:10:50 ]
αブロガーっぽいコピペだな

674 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 13:13:06 ]
最初の二行を読むだけで目が回ったが

675 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 13:29:13 ]
括弧が多すぎる。統合失調症の臭いがする。

676 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 14:05:16 ]
単にLISP使いなんだろ

677 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:18:57 ]
>>657
まいんちゃん一択

678 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:40:01 ]
真のLisperは括弧を省略しない

679 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:04:58 ]
Python使いからすると
閉じ括弧を省略できると最高なんだが

680 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:08:22 ]
かつて、対応する括弧までを一気に閉じるスーパー括弧というのがあってだな



681 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:09:27 ]
haskellの$演算子はカッコを減らすのにいい

682 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:22:28 ]
Python使いの口癖

オフサイド!

683 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 01:14:27 ]
「M式というのもある」と発言してうそつき呼ばわりされた屈辱の日々

684 名前:デフォルトの名無しさん [2009/09/07(月) 06:57:21 ]
最近C++一辺倒でもなと思ってPythonを使い始めたやつですが,
Pythonってのは本質的に関数言語であって,クラスシステムは
後付けっつーことですか?

self とか cls があらわになっているをの見て,
そういうもんなのかなと.

なぜPythonに手を出したかというと
普段使わなくても多重継承がないと不安だからとか
そういう理由だとまた叩かれるのかな.

685 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 07:17:35 ]
ドMの癖に
いやらしいねえこの男は

686 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 07:19:35 ]
>>684
OOP機能は最初から装備されていたそうなので、あとづけではないらしい。
そこかしこに不自然さが残るのは確か(superとか)なんだけど、許容範囲だから我慢してる。
あとPythonの作者は関数型言語をあまりよく知らないらしいから、「本質的に関数型」ではなくて「偶発的に関数型」じゃないかな。

> self とか cls があらわになっているをの見て,
> そういうもんなのかなと.

そういうもんです。違和感あるだろうけど、我慢できる範囲だと思うので、我慢して使ってください。そのうち慣れます。

687 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:28:42 ]
>>684
個人的にはselfとかどの名前空間なのか明示する方が分かりやすい
省略しまくる言語とか訳分からん記号使いまくる言語は氏ねとか思う

688 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:48:25 ]
>>687
そうじゃない。self.method()は別に構わない。
def method(self): がちょっと嫌いなだけ。

689 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:55:11 ]
> self とか cls があらわになっているをの見て,
> そういうもんなのかなと.

そういうもんです。
どの名前空間なのか明示する方が分かりやすいです。

慣れないうちは __init__() に self 入れ忘れて、
"引数の数があわない"
という一見変なエラーに悩まされますが、
そのうち気にならなくなります。

どちらかというとわたしは unicode/str の
encode/decode でよく悩まされました。
こちらももうすっかり慣れましたけど。

どちらも今となっては良い思い出です。

690 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 09:12:47 ]
>>688
俺も前から第一引数のselfに疑問を持っているんだが、Guidoがimplicit selfを
絶対に導入しない理由は何なの?
ちょっとググってみたが良く分からんかった。



691 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 09:15:08 ]
>>688
selfまで省略されるとお前どっから来たんだよッて俺がキレる

692 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 09:31:39 ]
書くときは冗長に思えるけど読むときには便利、と思えるかな?>self

693 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 09:53:30 ]
>>690
これは既出?
www.python.org/doc/faq/general/#why-must-self-be-used-explicitly-in-method-definitions-and-calls

694 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:01:34 ]
>>693
和訳。
coreblog.org/ats/translation-of-why-explicit-self-has-to-stay
どのくらい正確なのかはわからんが。

695 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:39:14 ]
>>693
それは読んで知ってたけど、論拠としては弱いと思ってた。

>>694
サンクス。これを読んで一応納得した。デコレータを使った時に困るのは分かるが、
半分以上はGuidoの思想上の問題のような気がする。本人が絶対にexplicit self
を無くさないと言っているのだから仕方ないが。

696 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:50:10 ]
Pythonのメソッドって関数みたいなもんでしょ?
逆にいつでもselfを使える前提にするほうが変だと思う。
引数とって値を返す、関数らしい構造で良いと思う。
逆にRubyでは関数はメソッドの亜種だから、関数でもわざわざselfが設定されてる。
Javaではそもそも裸の関数が無いのだからselfがあるのは納得。

697 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:50:53 ]
って、Javaはthisだった、ごめ

698 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:51:49 ]
>>695
>デコレータを使った時に困るのは分かるが、

自分はここがよくわからないんだけど、だれか解説たのむ。

以下引用:
> メソッドがデコレートされたときに,self引数が渡されるかどうかを知ることはできない。
> というのは,デコレータはメソッドをスタティックメソッドに変えることもあるし(この場合selfはない),
> クラスメソッドに変えることもあるし(この場合は,selfの変わりにクラスオブジェクトが渡される),
> まったく違ったことをすることもできる
> (@staticmethodや@classmethodと同じ働きをするデコレータをPythonで書くことは希だと思うが)。
> つまり,デコレータが何をするかを知り得なければ,メソッドに明示的にselfが定義されているかどうかを知ることができないのである。

699 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:55:19 ]
>>696
> 逆にいつでもselfを使える前提にするほうが変だと思う。
>>694のリンク先を読めば分かるが、そんなことは誰も主張してない。

700 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:08:55 ]
>699
しってるよw 俺の感想を言っただけ。



701 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:13:11 ]
見苦しい言い訳だな。妄想は自分の脳内で完結させろ

702 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:13:57 ]
>>698
デコレータは関数を引数にとって「何か」を返す関数。
クラス宣言の中でデコレータを使うと、デコレータの返したモノがクラスのメンバになる。
そうするとコンパイル時に「何か」を決定できないので暗黙の引数を追加できない。

703 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:30:51 ]
>>701
それ自体が>>699の誤読の見苦しい言い訳であり
脳内からはみ出たお前の妄想じゃんw

704 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:10:27 ]
>>696
classと無関係なただの関数はself書かなくていいよ

705 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:13:24 ]
お前は何が言いたいんだ

706 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:15:07 ]
基地外が暴れだしたか

707 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:22:47 ]
今更selfがなくなると違和感ありまくり。

708 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:44:13 ]
解説ありがとうございます。でもやっぱりわからない。

>>702
>デコレータは関数を引数にとって「何か」を返す関数。
>クラス宣言の中でデコレータを使うと、デコレータの返したモノがクラスのメンバになる。

↑これはわかる。↓これがわかんない。

>そうするとコンパイル時に「何か」を決定できないので暗黙の引数を追加できない。

・コンパイル時に「何か」を決定することと、暗黙の引数を追加することに、どういう関係がありますか?
・コンパイル時ではなく実行時に決定するのではだめでしょうか。
・暗黙の引数を、追加するのではなく最初から追加しておけばいいように思うけど、それだとまずいでしょうか。


だれか時間のある人教えてください!




709 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:45:54 ]
オナニー言語やね

710 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 14:42:38 ]
低脳はPHPがRubyをやればいいよね



711 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 14:54:08 ]
またRuby厨が荒らしてるのか
まったく・・・

712 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:04:02 ]
>>698
デコレータは関数を関数に変換するもの(最近はクラスもできるが)。

self必須にすることで関数とメソッドはほぼ互換になる
>foo.meth(arg) == C.meth(foo, arg)
ここで、C.methは関数扱いできる。

メソッドが関数として扱えるので、
メソッドのデコレータは関数のデコレータを作るのと同じやり方でできる。

逆にself省略できるようにしたらメソッドのデコレータを作るのが難しくなると思う。

713 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:20:37 ]
>>712
若干の冗長性が柔軟性を生むいい例だね。
Pythonは仕様の簡潔性が特徴のスクリプト言語なわけで。
(予約語や特殊な文法が少ない)

714 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:33:22 ]
>>712
厳密に言うと、デコレータの出力は関数とは限らないよね。
@property
def foo(self):...
みたいにすると、 foo は foo.__get__() というメソッドが定義されたオブジェクトになる。

715 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:37:47 ]
すげー今更だけどこれって紹介されてたっけ?

Python 3.0開発者ガイド:コア言語の変更点
Python 3.0の主要な言語機能
codezine.jp/article/detail/4051

Python 3.0開発者ガイド:数値、文字列、データ
codezine.jp/article/detail/4052

716 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:41:09 ]
>>714
いや、まぁそこら辺は厳密性を犠牲にして説明しやすくしたということで(ry

717 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 19:08:14 ]
codezineの翻訳はクソ

718 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 02:33:13 ]
>>717
神降臨
書き換えてこい

719 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 09:37:04 ]
reportlabでpdfを作ると
同じものを作っても作るたびに
出来るファイルのサイズが違うのですが
こんなもんなのでしょうか?
pdfデータに日時が入ってるのかな

720 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 10:24:59 ]
帝国ピストンはMLで質問しろよ



721 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 11:47:07 ]
動的に渡す関数(メソッド内で関数を定義して戻り値で返すような)って、
自由変数の束縛はいったいどうやるんだ?

そういうことをやりたいときはグローバル変数使うかクラス使うかしかないんだろうか……。

722 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:31:53 ]
やってからいえ

関数の呼び出し->local名前空間の生成->関数オブジェクト生成->local名前空間の解放->関数オブジェクト返る
関数オブジェクトから参照してる変数は上位の名前空間が消えてもクロージャな参照が残ってるからGCに回収されずに使える

723 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:21:31 ]
>>やってからいえ
その言葉をそのまま返そう。

外側のメソッド[A]で定義した関数内関数[B]で[A]のローカル変数aを[B]内で使用しようとしたとき、
[B]内でそのままaと書くと未定義参照エラーになる。
かといって[B]の引数で与えても値渡しなのでa自体を書き換えることはできないよね。

724 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:32:29 ]
python3 nonlocal

725 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:38:48 ]
>>> def fa():
...  a=3
...  def fb():
...   a=5
...   print a
...  print a
...  return fb
...
>>> b=fa()
3
>>> b()
5


726 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:42:35 ]
nonlocalをpython2.xで模倣するときは
・L=[x]みたいにリストにして、L[0]に対する操作にする
・f.x = xのように関数の属性にして、f.xに対する操作にする

727 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:53:18 ]
>>725

>>> def fa():
... a=3
... def fb():
... a+=5
... print a
... print a
... return fb
...
>>> b=fa()
3
>>> b()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in fb
UnboundLocalError: local variable 'a' referenced before assignment
>>>

728 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 16:05:07 ]
>>726
ですよねー。

ふと調べてみたらそれについて記述したページを見つけたよ。
www.shido.info/py/py1_comment.html

実際にやってみたら
関数内関数[B]の中だけじゃなくて、
外側のメソッド[A]の側でも配列参照してあげないと
変更後の値にアクセスできないね。
実用にはなるんだけど不便だ……。

ともあれ、やり方がわかったよ。ありがとう。

729 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:11:51 ]
>>726
>>> def fa():
...  a=3
...  def fb():
...   fa.a+=5
...   print fa.a
...  print a
...  return fb
...
>>> b=fa()
3
>>> b()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in fb
AttributeError: 'function' object has no attribute 'a'


730 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:14:10 ]
>>728-729
>>> def fa():
...  fa.a=3
...  def fb():
...   fa.a+=5
...   print fa.a
...  print fa.a
...  return fb
...
>>> b=fa()
3
>>> b()
8
>>>




731 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:40:00 ]
>>727 >>729-730
Pythonのニシキヘビ共が、タチコマみたいな会話してるみたいで萌えたw

732 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 03:07:25 ]
pprintを使ってて、読めなくなった日本語をそのまま、読めるようにしたい。

>>> k=dict(hoge=u"欝")
>>> k
{'hoge': u'\u6b1d'}
>>> r=pprint.pformat(k)
>>> r
"{'hoge': u'\\u6b1d'}"
>>>
これを、pprintのフォーマットを保持したまま
"{'hoge': u'欝'}"
みたいに人が読める形に、出来ませんか?


733 名前:732 mailto:sage [2009/09/09(水) 03:22:29 ]
自己レス
一旦unicode化して、"unicode-escape"を使えば行けた。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pprint
d=dict(hoge=u'欝')
k=pprint.pformat(d)
print k
>>>{'hoge': u'\u6b1d'}
u=unicode(k,'utf-8')
print u.decode('unicode-escape')
>>>{'hoge': u'欝'}

配列の中に入った日本語とかも効くようだ。

734 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 07:20:56 ]
関係ないけど /usr/bin/env を使うのは環境依存でハマる事があるからあまり良くない気が。

735 名前:デフォルトの名無しさん [2009/09/09(水) 12:17:23 ]
環境依存ではまらないように設けた仕組みだろうに、
環境依存で動かないなんて本末転倒だな。


736 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:20:34 ]
> /usr/bin/env を使うのは環境依存でハマる

具体的に詳しく。

/usr/bin/env が無くて /bin/env とか、
PATHの設定に問題が、とか?

737 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:30:11 ]
/usr/local/bin/env

738 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:07:17 ]
>>734
おれも詳しく知りたい。

 #!/usr/bin/python
 #!/usr/local/bin/python

はよくなくて

 #!/usr/bin/env python

とするほうがいいとずっと思ってたんだけど、違うの?



739 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:17:43 ]
734は相当劣悪な環境を使っているに違いない。激しく同情する。

740 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:20:49 ]
レンタルサーバで使えない



741 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:21:17 ]
HOME以下に自分でビルドしたPythonをインストールしてパスを通してるとき、
/usr/bin/meld とかディストリビューションのアプリが #!/usr/bin/env 使ってて
軒並み動かなくなったなぁ。

742 名前:デフォルトの名無しさん [2009/09/09(水) 15:49:53 ]
ターミナルから起動して使うと、なぜか出力が最後にまとめて行われてしまいます。
バッファリング周りを自分なりに調べて試してみたのですが、改善しません。
教えていただけるとうれしいです _ _

#!/usr/bin/env python -u
import sys

for line in sys.stdin:
  line = line.rstrip()
  if line:
    print "true"
  else:
    print "false"
  sys.stdout.flush()


743 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 15:54:45 ]
>>741
どうでもいいところでハマってそれを自慢したがるド変態のM夫君っているものですね。

744 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 16:07:48 ]
質問の本題とは関係ないのだが、

> #!/usr/bin/env python -u

shebang で複数の引数を渡そうとした場合の動作は移植性がない。

745 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 16:36:04 ]
>>743
でもこの場合は、単に君が、どうでもいいところで「こいつは自慢してるんだろう」と誤読する
キチガイなだけでは?

746 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 16:45:37 ]
#!/usr/bin/python

にすればいいじゃん?

747 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 17:06:46 ]
python2.6.2/python3.1.1 ○バッファされない ×バッファされる
× py2 sys.stdin
○ py2 sys.iter(stdin.readline, None)
○ py3 sys.stdin
○ py3 sys.iter(stdin.readline, None)

ファイルのf.next()は効率のために先読みするんだけど、それが原因かな。
py3でどこが変更されたかはよくわからなかった

748 名前:747 mailto:sage [2009/09/09(水) 17:07:36 ]
訂正。
× py2 sys.stdin
○ py2 iter(sys.stdin.readline, None)
○ py3 sys.stdin
○ py3 iter(sys.stdin.readline, None)

749 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 17:08:49 ]
出力がバッファリングされてるんじゃなくて、

> for line in sys.stdin:

これのために、入力が終わるまで実行が止まってる。

for line in iter(sys.stdin.readline, ""):

こうする。

750 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 17:21:07 ]
ああpy3kのf.__next__は単純にf.readlineを呼び出すだけみたいだ。
ドキュメントには先読みすると書いてあるけど、たぶんこれはドキュメントのバグ。



751 名前:742 mailto:sage [2009/09/09(水) 17:36:41 ]
>>744 ありがとうございます、勉強になります!
>>747-750
ありがとうございます、出来ました!
バッファリングの問題じゃなかったんですね、お恥ずかしい。

752 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 17:49:21 ]
>>745
変態のくせにプライドだけ高いなんてどんだけひとりぼっち君。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<189KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef