Pythonのお勉強 Part40

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2010/10/29(金) 17:55:47
以上
3デフォルトの名無しさん:2010/10/29(金) 19:54:31
>>1さん乙っす!
4デフォルトの名無しさん:2010/10/30(土) 09:23:11
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
5デフォルトの名無しさん:2010/10/30(土) 09:58:07
「ここでの議論・3大要素」
"幸福", "自由", "美徳"
幸福の最大化
自由の尊重
美徳の涵養
6デフォルトの名無しさん:2010/10/30(土) 13:10:22
http://python.rdy.jp/
これって更新されてんの?
7デフォルトの名無しさん:2010/10/30(土) 13:12:12
ああ
更新はされてるのか
だけど↓この情報がかなり古くなってるな
http://python.rdy.jp/wiki.cgi?page=%B2%E1%B5%EE%A5%ED%A5%B0
8デフォルトの名無しさん:2010/10/30(土) 13:13:33
python.rby.jp
9デフォルトの名無しさん:2010/10/30(土) 13:23:34
python.rby.pl
10デフォルトの名無しさん:2010/10/30(土) 13:40:49
python.ruby.jp
11デフォルトの名無しさん:2010/10/30(土) 14:09:44
>>6
管理放棄されてるので更新不能
12デフォルトの名無しさん:2010/10/31(日) 03:50:29
>>1乙なり
なんで3DCGツールってpython採用してるの多いんだろうか
13デフォルトの名無しさん:2010/10/31(日) 08:16:04
>>1
乙!
python.jpいらなくね?
14デフォルトの名無しさん:2010/10/31(日) 09:05:41
ドジャンゴ脳はこれだから…。
15デフォルトの名無しさん:2010/11/01(月) 14:39:42
http://twitter.com/yukihiro_matz/statuses/29317109670

yukihiro_matz: 英語圏でRubyとPythonを比較する記事を見ることが少なくなってきた
のは、RubyとPythonでクラスタが分離してきたからか。逆に日本語でRubyとPythonを
比較 する記事を見かけるのは国内でのPythonの地位が向上したからか。

               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <こいつ最高にアホだお
  \     ` ー'´     //
  / __        /
  (___)      /
16デフォルトの名無しさん:2010/11/01(月) 15:06:26

               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <こいつ最高にアホだお
  \     ` ー'´     //
  / __        /
  (___)      /
17デフォルトの名無しさん:2010/11/01(月) 18:37:13
マルチするお前モナ
18デフォルトの名無しさん:2010/11/01(月) 21:02:59
またガラパゴス化!
19デフォルトの名無しさん:2010/11/02(火) 09:20:56
pythonしょぼすぎワロタ(ww
20デフォルトの名無しさん:2010/11/02(火) 15:00:27
pass
21デフォルトの名無しさん:2010/11/02(火) 16:19:04
日本のPythonがドジャンゴ脳に浸食されているの?
22デフォルトの名無しさん:2010/11/02(火) 16:26:13
pass
23デフォルトの名無しさん:2010/11/02(火) 16:53:49
>>15
Python信者は何がしたいの?
24デフォルトの名無しさん:2010/11/02(火) 23:05:57
信者とか言っちゃう時点でRuby教徒乙
Pythonと同列で扱われてると勘違いしてるのは
同じ日本人として恥ずかしいわ、それも言語開発者まで。
25デフォルトの名無しさん:2010/11/02(火) 23:14:19
くだらない話はやめて、Python のお勉強しようよ。





26デフォルトの名無しさん:2010/11/02(火) 23:15:31
俺Pythonエバンジェリストだけどなんか質問ある?
27デフォルトの名無しさん:2010/11/02(火) 23:20:11
余計なことはしないでくれるかな。
必要な人は勝手に使うと思うから。
28デフォルトの名無しさん:2010/11/02(火) 23:36:32
pass
29デフォルトの名無しさん:2010/11/03(水) 00:50:09
>>24
Ruby教徒とか言っちゃう時点でPython信者乙
30デフォルトの名無しさん:2010/11/03(水) 02:03:06
くだすれが本スレ化してここがくだらないすれになっているとはこれいかに
31デフォルトの名無しさん:2010/11/03(水) 04:42:31
>>30
それでも難しめの質問が来たらそれなりに対応してるから大丈夫

たぶん
32デフォルトの名無しさん:2010/11/03(水) 12:20:15
[[0]*5 for _ in range(5)]
みたいに参照しない変数の名前を_にするのって一般的?
33デフォルトの名無しさん:2010/11/03(水) 12:24:38
Haskell屋さんか何か?
自分は気にせずxとかにしてるけど
34デフォルトの名無しさん:2010/11/03(水) 12:50:47
(_, foo, bar) = tup とか便利だし
pylintやらpycheckerが_ならUnused variableの警告を出さないんだよね
35デフォルトの名無しさん:2010/11/03(水) 12:57:12
Python Cookbook の中の人のお答え
http://stackoverflow.com/questions/2745018/python-is-there-a-dont-care-symbol-for-tuple-assignments

>>34にはハワイ旅行がプレゼントされますん
36デフォルトの名無しさん:2010/11/03(水) 12:58:25
>>32
参照しない変数を_にするのはむしろ推奨されてると思ってた
……けど公式ドキュメントで言及されてるのは見当たらない
ソースはどこなんだろう
37デフォルトの名無しさん:2010/11/03(水) 13:03:10
そういえば
foo = 0
foo, foo = 1, 2 # foo → 2
みたいなコードが通るようだが多重代入の評価順って常に先頭からかな?
38デフォルトの名無しさん:2010/11/03(水) 13:08:09
はい
3932:2010/11/03(水) 13:13:17
そうそう、ふと出会ったPythonのコードで_使ってるの見て
unused variableも出なくなるし便利だと思ったんだけど
ドキュメント類でそういうの見たことがなかったからどうなんだろうと
ありがとう
40デフォルトの名無しさん:2010/11/03(水) 13:38:08
>>34
(foo, bar) = tup[1:3]
じゃだめなん?
41デフォルトの名無しさん:2010/11/03(水) 13:48:20
>>34のほうがtupleの第一要素はいらないという意図が明確になるし
添字でミスることもなくなるから望ましいと思われ
42デフォルトの名無しさん:2010/11/03(水) 14:13:03
>>40
それなら
(foo, bar) = tup[1:]
で十分だし、「先頭を捨てる」意図をよりはっきり示せるんじゃないの

が、tup[1:]の時点でコピーが発生するので、2度コピーを行うことになるよ

Pythonはimmutableなtupleのスライスであっても愚直にコピーするので
スライスはO(n)
43デフォルトの名無しさん:2010/11/03(水) 17:44:18
それいつのはなし
44デフォルトの名無しさん:2010/11/03(水) 17:57:20
>>43
それって何のこと
45デフォルトの名無しさん:2010/11/05(金) 04:34:17
Rubyのが明らかに簡潔に書けるよなぁ
46デフォルトの名無しさん:2010/11/05(金) 04:42:27
subprocess.Popen について質問です
perl とかで open("cat hoge.txt | grep fuga |", "rb") 見たいな
複数のコマンドをパイプ繋いだものを実行するとき
subprocess.Popen の一つ目の引数に
'cat hoge.txt | grep fuga |'.split() を指定しても
次のエラーが出て止まってしまいます
OSError: [Errno 2] No such file or directory
どうすればよいのでしょうか?
47デフォルトの名無しさん:2010/11/05(金) 05:52:53
shell=True
48デフォルトの名無しさん:2010/11/05(金) 06:14:33
>>47
できました!!
ありがとうございました!!!
このスレで質問して本当に良かったです!!!!!
49デフォルトの名無しさん:2010/11/05(金) 15:02:55
すげーエスパー
50デフォルトの名無しさん:2010/11/06(土) 00:01:32
問題
関数の引数として値渡しとなるオブジェクトをすべて述べよ
51デフォルトの名無しさん:2010/11/06(土) 00:03:03
>>50
1. おぶじぇくとぜんぶ
2. 述べよだと?てめぇが述べろよ!
3. もう秋田
52デフォルトの名無しさん:2010/11/06(土) 00:53:14
質問、初心者です

for i in range(200):
try:
print i

こんな感じの例外処理をしましたところ
unexpected indentation error
と怒られました
余計なインデントがある、あるいはtabとスペースインデントが混在しているときに起きるらしいですが
(この文ではスペース4つですが、)実際はタブのみでつくっていて、そんなはずはないのにエラーが帰ってきます
なにがいかんのでしょうか?
53デフォルトの名無しさん:2010/11/06(土) 00:55:56
おおう、スペースが消えとる
tryの前にスペース4つ(実際はタブ一つ)
printの前にスペース8つ(実際はタブ2つ)
です
54デフォルトの名無しさん:2010/11/06(土) 00:57:27
55デフォルトの名無しさん:2010/11/06(土) 00:58:21
exceptかfinallyを書けばいい
56デフォルトの名無しさん:2010/11/06(土) 00:58:23
まず初めにPythonではTabスペースが嫌われてる
そして4半角空白が一般的でエディタ側で設定はPython使いの常識
単純にエディタをまともな物にすればそういうエラーは出ない筈
それに私はエスパーでないので細かい例外は分かりません
57デフォルトの名無しさん:2010/11/06(土) 00:58:48
exceptは書いてる?
58デフォルトの名無しさん:2010/11/06(土) 01:00:46
except書いたら通りました
勉強不足でした、すみません
59デフォルトの名無しさん:2010/11/06(土) 11:55:49
>>52
たしかにその例なら
>unexpected indentation error
じゃなくて、「exceptまたはfinallyが必要です」というメッセージにしてほしいところだな。
60デフォルトの名無しさん:2010/11/06(土) 12:34:46
うちだとこれが出た
IndentationError: unexpected unindent
61デフォルトの名無しさん:2010/11/06(土) 12:46:23
うわーん、きもいよー

>>> a = b = []
>>> a += [1]
>>> print a,b
[1] [1]
>>> a = b = []
>>> a = a + [1]
>>> print a,b
[1] []
62デフォルトの名無しさん:2010/11/06(土) 12:48:33
どこが?
63デフォルトの名無しさん:2010/11/06(土) 12:57:01
>>> a = b = []
>>> a.append(1)
>>> print a,b
[1] [1]
64デフォルトの名無しさん:2010/11/06(土) 13:06:21
そうならないようにするのは簡単だけど
たしかにきもい
65デフォルトの名無しさん:2010/11/06(土) 13:37:17
66デフォルトの名無しさん:2010/11/06(土) 13:46:47
漏れとはなんですか?
67デフォルトの名無しさん:2010/11/06(土) 13:49:54
このスレで初めて俺が答えられる内容だ。
漏れ=オレ
68デフォルトの名無しさん:2010/11/06(土) 13:56:06
>>65
だよな
+= の必要な場面では append が正解
69デフォルトの名無しさん:2010/11/06(土) 14:11:33
ありがとうございました
70デフォルトの名無しさん:2010/11/06(土) 14:13:57
>>63
それは普通だろ。
71デフォルトの名無しさん:2010/11/06(土) 14:37:11
JavaのVectorでも同じ事が言えるし。MutableでCOWじゃないコンテナ型は防御的コピーが必須。
72デフォルトの名無しさん:2010/11/06(土) 14:56:53
この文脈でCOWってどういう意味?

COWっていうとページメモリの管理(ユーザには見えない)しか思い浮かばないんだが。
73デフォルトの名無しさん:2010/11/06(土) 14:58:55
>>72
copy-on-write
a = b = [] とかやると write するまでは同じ [] を指すけど
a に変更を加えようとした時点でコピーされて
a と b はべつのものを指すようになる
ということを言いたいんだと思われる

ただそれと上での議論がどう関係あるのかはまったくの

74デフォルトの名無しさん:2010/11/07(日) 00:50:55
>>> a = a + [1]
はリストaとリスト[1]をマージした新しいリストを生成しているから
>>> a += [1]
の既存のリストaに追加とは異なる結果になるのはふつうだと思うが?
75デフォルトの名無しさん:2010/11/07(日) 01:11:44
リストに限定するなら
a.append(1) と a += [1] では
後者が余分にリストを生成する必要があることを除けば同じ意味という理解でおk?
76デフォルトの名無しさん:2010/11/07(日) 01:18:57
__iadd__() を実装してる型の場合は、名前の通り += が inplace add
ない場合はかわりに __add__() を使い、x += y は x = x + y と同じになる
のだと思った
77デフォルトの名無しさん:2010/11/07(日) 01:28:04
>>76
なるほど、解説thx
78デフォルトの名無しさん:2010/11/07(日) 01:34:30
こういうのがあるから演算子のオーバーロードは怖くて使いたくない
79デフォルトの名無しさん:2010/11/07(日) 02:24:20
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
Bjarne Stroustrupもオーバーロードは使うなって言ってるしね!
80デフォルトの名無しさん:2010/11/07(日) 04:44:15
しね!
81デフォルトの名無しさん:2010/11/07(日) 12:11:58
みんなのPython改訂版(第3版)買ったんだけど、正誤表がまとまってるところない?
公式サイトにはないみただけど。
82デフォルトの名無しさん:2010/11/07(日) 12:19:06
>>76
理解した。thx
83デフォルトの名無しさん:2010/11/08(月) 09:37:54
C#使ってて、Python勉強しようかなと思ってる私に、型付けの違いからくる物を除いて
Pythonのこの書きかたが良い
みたいな物を是非教えてもらえませんか。
84デフォルトの名無しさん:2010/11/08(月) 10:25:45
>>83
if 3 < x <= 5: みたいな範囲を指定する条件式。
とっつきにくいけど慣れたら便利な内包表記。
めったに使わないけど、使う場面ではとてもクールなfor文のelse節。
後は名前付き引数はC#にもあるけど、さらにシーケンスやマッピングから引数に展開したり
キャプチャできる *x, **y
85デフォルトの名無しさん:2010/11/08(月) 13:28:32
>>83
PEP8でぐぐりましょう


86デフォルトの名無しさん:2010/11/08(月) 14:12:04
>>84
>>85
ありがとうございます、頑張ってみます
87デフォルトの名無しさん:2010/11/08(月) 14:47:33
(^ω^)ペップ!
88デフォルトの名無しさん:2010/11/08(月) 22:49:01
ヽ( ^ω^)ノ ペップペップ!
89デフォルトの名無しさん:2010/11/10(水) 23:40:27
Pythonがよくわからないし、
インデントでブロックを表現するというきもさのため、
Rubyを使うようにしたほうがいいな
90デフォルトの名無しさん:2010/11/10(水) 23:42:25
また頭の悪いruby厨か
91デフォルトの名無しさん:2010/11/11(木) 00:57:45
>>89
頭悪そう
92デフォルトの名無しさん:2010/11/11(木) 16:45:26
Brainf*ck を Python-oneliner にコンパイルする Python-oneliner - YoshioriのBlog
http://d.hatena.ne.jp/Yoshiori/20100208/1265628616


Pythonワンライナーキモイ
93デフォルトの名無しさん:2010/11/11(木) 23:54:53
えっ
94デフォルトの名無しさん:2010/11/12(金) 01:10:06
RubyはVMが進化したけどPythonはちっとも進化しないよな。
時代に取り残されている感じ。
95デフォルトの名無しさん:2010/11/12(金) 01:20:48
Unladen Swallowは?
96デフォルトの名無しさん:2010/11/12(金) 01:21:31
どちらかというと、RubyのVMがやっとPythonに追いついた感じ。
まだ、バイトコードキャッシュをファイルに書いてモジュールの読み込みを高速化する機能が
Rubyには無いからたくさんモジュールを読み込むプログラムの起動が遅いけど。
97デフォルトの名無しさん:2010/11/12(金) 01:54:02
>>95
まだ糞
生暖かく見守ろう
98デフォルトの名無しさん:2010/11/12(金) 02:01:10
PyPy方面は一歩先んじてる気がする
99デフォルトの名無しさん:2010/11/12(金) 04:48:28
>>96
Ruby見てるとロード遅い遅いという人いるけど、
バイトコード化しておいておけるだけでも大分違うと思うんだけどねえ
100デフォルトの名無しさん:2010/11/12(金) 09:33:11
ipython コンソールで日本語unicodeな文字列って
print すると u'\ff11...' みたいな感じになっちゃいますが
これを読めるようにする方法ってありますか?
(コンソールのencodeを指定する?)

ipython で駄目なら python コンソールでも...
101デフォルトの名無しさん:2010/11/12(金) 09:35:18
補足

一応 sys.stdout.write() で unicode_string.encode('euc_jp') を
放り込むみたいなやり方では出来るのは知ってるんですが
print も対応してくんねーかなーということでして
102デフォルトの名無しさん:2010/11/12(金) 10:24:38
repr(hoge).encode('unicode-escape')
103デフォルトの名無しさん:2010/11/12(金) 10:32:56
>102
print repr(hoge).encode('unicode-escape')
なんてすると \ff11 が \\ff11 みたいに
もっと読めなく(?)なっちゃいません?

少なくとも print とかでデフォルトで unicode-escape が
かかるのを無しにしたいってことなんですが

sys.setdefaultencoding するのかな…
(それだと site.py でしか出来ないですよね?)
104デフォルトの名無しさん:2010/11/12(金) 10:52:17
あ,100 で言っているのは言い方を間違えてることに気づきました

print unicode_str は既に日本語で表示されてるんです
(LANG=ja_JP.eucJP が効いているのか,sys.getdefaultencoding() は euc_jp です)

本当にやりたかったことは string 単体では明示的に encode しなくても表示できるんだから
textlist = [u'にほんご',u'あんなこと',...]
textdic = [1: u'にほんご',2:u'こんなこと',...]
print textlist
print textdic
みたいなのが "読める日本語" で出来ないかということです

一人でくどくど書いてすみませんがよろしくお願いします
105デフォルトの名無しさん:2010/11/12(金) 11:13:57
>102 をヒントにもうすこし考えてみたら…

textlist = [u'にほんご',u'あんなこと',...]
print repr(textlist).decode('unicode-escape')

ってやると期待通りの
[u'にほんご',u'あんなこと',...]
が出来るんですね

ちと面倒くさいですが、これだけでもだいぶ作業しやすくなりました

引き続きアドバイスなどあればよろしくです
106デフォルトの名無しさん:2010/11/12(金) 11:21:37
ごめん間違えてた
encode -> decode で正解
107デフォルトの名無しさん:2010/11/12(金) 11:25:56
>>103
>sys.setdefaultencoding するのかな…
>(それだと site.py でしか出来ないですよね?)

reload(sys);
sys.setdefaultencoding('euc_jp')
108デフォルトの名無しさん:2010/11/12(金) 12:45:52
IPythonとPythonでprintは変わらないと思うが。。。
IPython 0.10でunicodeリテラルを書けないという問題とは違う?
http://dsas.blog.klab.org/archives/51390187.html
109デフォルトの名無しさん:2010/11/14(日) 11:24:41

Pythonで Helloworld プロジェクトを作成し
実行したところ Console には

http://localhost:8080

と表示されるのですがブラウザ上には何も表示されません。


また、直接ブラウザに http://localhost:8080 と入力し
実行すると selef.response.out.write('hoge')
とPythonのスクリプトが実行されている様です。

どうすればDebug実行時にブラウザがEclipse上で
自動で起動する様になりますか?
110デフォルトの名無しさん:2010/11/14(日) 15:12:06
multi
111デフォルトの名無しさん:2010/11/15(月) 02:17:37
Pythonicじゃない技たち
1. 複数の式を1つの式にまとめる
1.1 リスト、タプルを使う
>>> (expr1, expr2, ...)
式の最後の値を返すようにしたいときは
>>> (expr1, expr2, ..., exprn)[-1]

1.2 and/orを使う
値が必ず真だと分かっている場合→andでつなぐ
値が必ず偽(値を返さない=None含む)と分かっている場合→orでつなぐ
分からない場合→[expr]のように、1要素のリストにしてandでつなぐ

2. 式の内部で使う、変数のようなものを作る
2.1 lambdaの引数を変数として使う
例: a = Foo();b = a.foo() + a.bar(); のbに相当
>>> (lambda a: a.foo() + a.bar())(Klass())

2.2 変数を1要素のリストにして内包表記で使う
>>> [a.foo() + a.bar() for a in [Foo()]][-1]

3. 無名関数での再帰呼び出し
例えば
def fact(n): return n*fact(n-1) if n else 1
fact(5)
は、
def fact2(local_fact2, n): return n*local_fact2(local_fact2, n) if n else 1
fact2(local_fact2, 5)
と理解できるので、関数の中身からグローバルなシンボルfact2が消せる。すなわち、こうできる
>>> (lambda f, n: f(f, n))(lambda f, n: n*f(f, n-1) if n else 1, 5)

他に何か知ってたら教えて
112デフォルトの名無しさん:2010/11/15(月) 02:19:26
訂正
> fact2(local_fact2, 5)
> と理解できるので、関数の中身からグローバルなシンボルfact2が消せる。すなわち、こうできる

誤 fact2(local_fact2, 5)
正 fact2(fact2, 5)
113デフォルトの名無しさん:2010/11/15(月) 02:20:46
pythonワンライナーの人がそんな感じのTipsを書いてたよ
114デフォルトの名無しさん:2010/11/15(月) 02:22:13
ttp://www.nishiohirokazu.org/blog/2006/08/python_12.html
かな。おもしろそう。ありがとう
115デフォルトの名無しさん:2010/11/15(月) 02:46:19
pythonクックブックにもなんかトリッキーなことあったなあ
どういうのか忘れたけど、普通は使うなって書いてあったのなんだったっけ
目次から察するに5.11クイックソートを3行で示す かな
116デフォルトの名無しさん:2010/11/15(月) 02:46:58
Pythonってどうしてこんなにコードが汚いの?
117デフォルトの名無しさん:2010/11/15(月) 02:49:58
カスはLLバトルロワイヤルスレから出てくんなよ
118デフォルトの名無しさん:2010/11/16(火) 00:05:51
誰かH3Dについて日本語でまとめてくれんかな
壁に突き当たる度に英語力の無さが本気で恨めしく感じるわ
119デフォルトの名無しさん:2010/11/16(火) 03:16:09
>>111
なぜ
>def fact(n): return n*fact(n-1) if n else 1

>def fact2(local_fact2, n): return n*local_fact2(local_fact2, n) if n else 1
になるのかわからない。
def fact2(local_fact2, n): return n*fact2(local_fact2, n) if n else 1
ならわかるけど。
120デフォルトの名無しさん:2010/11/16(火) 03:19:09
ああ>>112で訂正されてたのか了解

121デフォルトの名無しさん:2010/11/16(火) 03:29:30
>>111
>3. 無名関数での再帰呼び出し
>例えば
>def fact(n): return n*fact(n-1) if n else 1
>fact(5)
>は、
>def fact2(local_fact2, n): return n*local_fact2(local_fact2, n) if n else 1
>fact2(fact2, 5)
>と理解できるので、関数の中身からグローバルなシンボルfact2が消せる。すなわち、こうできる
>>>> (lambda f, n: f(f, n))(lambda f, n: n*f(f, n-1) if n else 1, 5)

この説明はわかりにくいなあ。もっとわかりやすく説明してほしかった。

122デフォルトの名無しさん:2010/11/16(火) 03:29:36
早漏
123デフォルトの名無しさん:2010/11/16(火) 14:58:15
>>121
きっちり説明するの、かなり難しそうだったから諦めたんだよ><

一応、説明すると、
なんで変な事しないと無名関数で再帰関数が作れないかというと、
再帰関数 → 関数の内部に自分自身を呼び出す処理が出てくる
無名関数 → 自分自身の名前がない
普通、関数を呼び出すとき、名前を使うけど、そしたら名前がない関数をどうやって呼び出す?
ということになる。

そこで、2.1の、lambdaの引数を変数に使うことを考える。
関数の引数に、自分自身が入っていたら、自分自身に名前がついたことになるから。

そこで、
def fact(n): return n*fact(n-1) if n else 1
に自分自身を入れる引数(local_fact2)を追加して、関数の中で自分自身を直接使わないように変えたのがfact2
def fact2(local_fact2, n): return n*local_fact2(local_fact2, n) if n else 1
ここで、fact2はもはやlambda式で書けて、
fact2 = lambda local_fact2, n: n*local_fact2(local_fact2, n) if n else 1

local_fact2は、自分自身を入れるために追加したのだから、これを使うときは
fact2(fact2, N)
のように使う。fact2が2回出てきて気持ち悪いので、lambda式を変数代わりに使ってまとめると、
(lambda f, n: f(f, n))(fact2, N)
になる。

fact2にlambda式を入れると
(lambda f, n: f(f, n))(lambda local_fact2, n: n*local_fact2(local_fact2, n) if n else 1, N)
になる。
124123:2010/11/16(火) 15:05:48
> ここで、fact2はもはやlambda式で書けて、
うーん、ここ微妙だなぁ。もともとfactだってlambdaで書けるから。
むしろ大事なのは、fact2が自分自身を知らなくても、
引数がちゃんと教えてくれさえすれば自分自身を呼び出せるようになったことかなぁ。
125デフォルトの名無しさん:2010/11/16(火) 15:12:34
一言Yコンビネータといえば済む
λ計算がらみは挙げていけばキリがないだろう
自然数やcons/carをλで表現したり
126デフォルトの名無しさん:2010/11/16(火) 15:54:14
>>125
>>111はYコンビネータじゃないよ。
127デフォルトの名無しさん:2010/11/17(水) 05:58:31
Yコンビネータって、聞いたことはあるが
イマイチ分からんのだが、Pythonでも書けるものなの?
なんか関数型言語でしか書かれないイメージがある
128デフォルトの名無しさん:2010/11/17(水) 08:11:45
意味的には、Y f = f (Y f) 。
そんなに難解なもんでもないよ。
129デフォルトの名無しさん:2010/11/17(水) 17:29:51
>>127
書ける。
130デフォルトの名無しさん:2010/11/17(水) 17:43:06
((lambda f: (lambda proc: f(lambda arg: (proc(proc))(arg)))(lambda proc: f(lambda arg: (proc(proc))(arg)))))(lambda f: lambda n: n * f(n - 1) if n else 1)(5)

ttp://www010.upp.so-net.ne.jp/okshirai/ycomb-j.html のヤツをやってみたけど
>>111 のヤツより長くなってるし、括弧がすごいことに…
131デフォルトの名無しさん:2010/11/18(木) 01:49:59
>>111のやりかたで不十分で、Yコンビネータが必要になる場合って、どんなんがあるんだ?
132デフォルトの名無しさん:2010/11/18(木) 04:50:33
>>129
書けるのね。ありがとう。
133デフォルトの名無しさん:2010/11/18(木) 16:18:21
正規表現のコンパイルをする際に、その正規表現の対象となる文字列が改行に依存しない場合(一行だけの場合など)
必要の有無に関わらず"(?s)hoge"の形で(?s)フラグを指定してやると、
少なくともCPythonではコンパイル速度に明らかな向上が見られるのですが、
("hoge"よりも"(?s)hoge"が早い)

1. これはデフォルトの場合.を[^\n]な扱いにするとかの追加の処理が働いているからなのでしょうか
2. 他の処理系でも同様の挙動なのでしょうか(細かい挙動は未定義?)
3. こういったことを調べるのに良い手段があれば教えて頂けないでしょうか
134デフォルトの名無しさん:2010/11/18(木) 17:05:44
ソース嫁
135デフォルトの名無しさん:2010/11/19(金) 03:42:31
>>134
あなたに聞いてませんよ、ロリコン野郎。
136デフォルトの名無しさん:2010/11/19(金) 10:09:05
死ね
137デフォルトの名無しさん:2010/11/19(金) 12:09:10
確かにロリ嫁ほしいねえ……
138デフォルトの名無しさん:2010/11/19(金) 22:43:06
せめて常識として映画版ロリータくらい見てくれないかね
そんでロシア行って天国と地獄を見てくれ
139デフォルトの名無しさん:2010/11/19(金) 23:56:10
下手の横好き
140デフォルトの名無しさん:2010/11/20(土) 00:36:11
仰々しい
141デフォルトの名無しさん:2010/11/20(土) 17:44:28
ひとにものをたずねるときのマナーとしては
自分の環境のバージョンくらい書くべきだよな
142デフォルトの名無しさん:2010/11/22(月) 23:11:39
hoge なんつう簡単なマッチだったら str の標準関数が速い。
143デフォルトの名無しさん:2010/11/23(火) 00:00:23
pythonからWindowsのレジストリにアクセス(読み書き)するにはどんなモジュールを使えば良いですか?
144デフォルトの名無しさん:2010/11/23(火) 01:06:37
145デフォルトの名無しさん:2010/11/26(金) 15:22:22
python 2.6でテキストに対するフィルタを製作したくて、手始めにUNIXコマンドのcat的なコマンドを作りたいのですが、
2行以上あるテキストを標準入力(パイプ)から受け取って標準出力に吐き出すためのおまじないなどありましたら
教えて頂けると助かります。環境はLinuxです
146145:2010/11/26(金) 15:25:29
連レスすみません、catのようにファイルから読み込んで標準出力に連結するのは実装できていて
困っているのはgrepやsedのようにパイプからテキストを受け取って逐一標準出力に吐き出すやり方でした
147デフォルトの名無しさん:2010/11/26(金) 15:42:59
python cat.py ファイル
みたいにファイルをオープンして読み込むのはできていて
cat ファイル | python grep.py
みたいに標準入力から読み込みたいということ?

import sys
fp = sys.stdin #open(〜)の代わり
でfpを読み込む
148デフォルトの名無しさん:2010/11/26(金) 16:06:38
import sys
for line in sys.stdin: ...
149デフォルトの名無しさん:2010/11/26(金) 17:41:57
150デフォルトの名無しさん:2010/11/26(金) 17:49:36
151146:2010/11/27(土) 00:43:03
遅くなってしまって申し訳ありません
教えていただいた内容で無事次に進めそうです。ありがとうございました
152デフォルトの名無しさん:2010/11/27(土) 01:48:44
次は tail.py の実装だな
153デフォルトの名無しさん:2010/11/27(土) 02:22:53
効率よくきれいに書くにはどうすりゃいいんだろ?
def tail(fp, n):
 ls = []
 for lineno,line in enumerate(fp):
  ls.append(line)
  if lineno > n:
   del ls[0]
 for line in ls:
  sys.stdout.write(line)
みたいに何度もappendとdel繰り返すのって効率悪そうだし。
154デフォルトの名無しさん:2010/11/27(土) 03:12:59
http://www.python.jp/doc/nightly/library/collections.html#deque

import sys
from collections import deque
def tail(fp, n):
    sys.writelines(deque(fp, n))
155デフォルトの名無しさん:2010/11/27(土) 08:25:02
それじゃ tail -f が出来ないだろ
156デフォルトの名無しさん:2010/11/27(土) 12:02:32
ttp://codepad.org/nyzf67zT
書いてみたけど、結構面倒くせえなw

ところで
http://www.python.jp/doc/2.5/lib/bltin-file-objects.html
seek()の邦訳間違ってるのに気づいたけど、新しいのは直ってるのかな?
>stdio の fseek() と同様に、ファイルの現在位置を返します
と書いてあるけど、嘘だから
「設定します」が正しくて、返値はNone
157デフォルトの名無しさん:2010/11/27(土) 12:03:06
tail -f は finally で
158デフォルトの名無しさん:2010/11/27(土) 12:23:53
Ruby使う方が楽ですねぇ
159デフォルトの名無しさん:2010/11/27(土) 12:45:14
のび太よかったわね
お友達がいっぱい出来て
160デフォルトの名無しさん:2010/11/27(土) 12:50:00
>>156
tell( )
    stdio の ftell() と同様、ファイルの現在位置を返します。

ここをコピペしてそのまま直し忘れた感じっぽい
161デフォルトの名無しさん:2010/11/27(土) 13:22:51
修正しておいた。
明日には python.jp の nightly が直る。
162デフォルトの名無しさん:2010/11/27(土) 14:02:03
ユーティリティのコマンドの再発明ってgolf用の教材だと思ってた
163デフォルトの名無しさん:2010/11/27(土) 14:04:17
英語版の方は問題ないな
当然か
164デフォルトの名無しさん:2010/11/27(土) 19:02:45
165デフォルトの名無しさん:2010/11/28(日) 02:44:19
UWSCは別に覚えないと駄目か…
166デフォルトの名無しさん:2010/11/29(月) 01:44:37
時代はRubyだな
167デフォルトの名無しさん:2010/11/29(月) 01:47:21
いつの時代だよw
168デフォルトの名無しさん:2010/11/29(月) 23:26:37
Rubyはもう厳しいなw
PythonはすでにPerlの代わりに普通に使うようになってきた。
169デフォルトの名無しさん:2010/11/30(火) 00:20:53
Ruby使わない非国民は日本からでてけよ
170デフォルトの名無しさん:2010/11/30(火) 00:49:50
Pythonは衰退の一歩だよ。
171デフォルトの名無しさん:2010/11/30(火) 00:55:07
ruby厨は必至だなあ。日本日本って言うけど、スレタイの日本語も読めないのかよ
172デフォルトの名無しさん:2010/11/30(火) 00:55:15
>>168-170 いいかげんにしろ
173デフォルトの名無しさん:2010/11/30(火) 08:28:32
Ruby使いは気持ち悪いから海外にいけよ
174デフォルトの名無しさん:2010/11/30(火) 14:45:19
バトロワスレあらすのヤメロ
175デフォルトの名無しさん:2010/12/04(土) 17:53:41
3.x系への移行にはあと何年かかるんだ?
176デフォルトの名無しさん:2010/12/04(土) 18:07:02
利用者にはメリット何も無い言語マニアの自己満足には付いていけない>3
177デフォルトの名無しさん:2010/12/04(土) 18:15:31
Linuxに関して言えばArchやFrugalware、gentoo (unstable)は3.xっぽいね
他のdistroはどうなんだろ
178デフォルトの名無しさん:2010/12/04(土) 19:56:03
3でないと出来ないことが増えてくるまでは使う気にならないね
179デフォルトの名無しさん:2010/12/04(土) 20:45:53
3kなんて元より趣味で作られたんだから、趣味で遊んでりゃ良いじゃないか
180デフォルトの名無しさん:2010/12/04(土) 22:01:13
3.3 になったら本気出す
181デフォルトの名無しさん:2010/12/05(日) 07:46:48
わしのpythonは3000まであるぞ
182デフォルトの名無しさん:2010/12/05(日) 10:00:18
スライスの三番目の値ってなんでしょうか?
やったら↓のような結果になるんですが、よくわからんとです
>>> 'abcdefg'[2:4:6]
'c'
183デフォルトの名無しさん:2010/12/05(日) 10:05:25
>>> "abcdefgh"[1:8:2]
'bdfh'
184デフォルトの名無しさん:2010/12/05(日) 10:09:09
>>182
あーステップか そんなこともできたのか
サンクス
185デフォルトの名無しさん:2010/12/05(日) 10:09:57
>>183
間違った
>>184
186デフォルトの名無しさん:2010/12/05(日) 19:03:01
でもいつかは2.x系がメンテナンスされなくなる時期が来るでしょ。
そうなると、いつかは3.x系に移行せざるを得ない。
187デフォルトの名無しさん:2010/12/05(日) 19:21:22
10年くらい先だろうね
188デフォルトの名無しさん:2010/12/05(日) 20:20:26
10年くらい意外とあっさり過ぎるからな
189デフォルトの名無しさん:2010/12/05(日) 20:59:07
で、そのころには5.xはまだ早いとか言ってるんだろ
190デフォルトの名無しさん:2010/12/05(日) 22:41:39
3kが出てそろそろ10年経つように思ってたがそうでもないのか?
この調子のノンビリなアップデートなら10年後に3kスタンダードも夢じゃない
191デフォルトの名無しさん:2010/12/05(日) 22:45:50
Djangoが3k対応したら一気に片付くんじゃね?
192デフォルトの名無しさん:2010/12/05(日) 22:59:45
IPythonが対応したら本気出す
193デフォルトの名無しさん:2010/12/05(日) 23:03:11
PyPyのPython動かすPythonって元のPythonはなんで書かれてるの?
194デフォルトの名無しさん:2010/12/05(日) 23:04:37
ちなみに十年前はどの辺りがメジャーだったんですかね
195デフォルトの名無しさん:2010/12/05(日) 23:49:18
>>193
You know Python which is CPython
afaIk PyPy is on CPython
I dunno what's in it, but know what you must: Read it!
196デフォルトの名無しさん:2010/12/06(月) 01:45:30
>>186
今だにサポートが切れたphp4が動いているご時世らしいからな・・・
197デフォルトの名無しさん:2010/12/06(月) 03:59:41
phpもそうだが、バージョンアップしたほうがリスクがある(互換性がない実質別言語)んじゃしょうがないだろう・・。
198デフォルトの名無しさん:2010/12/06(月) 09:04:52
Perl6...
199デフォルトの名無しさん:2010/12/06(月) 18:42:57
FreeBSDのportsで入れるpythonはmake configでスタックレスにできるのかな?
それっぽいオプションはあるけど
200デフォルトの名無しさん:2010/12/08(水) 22:05:32
>>197
phpは後出しのくせにバージョン上げすぎだ
しかもその度に互換性を無視してアレを使うリスク高すぎ
201デフォルトの名無しさん:2010/12/08(水) 23:05:12
スレチだけどその問題が結構大きくうちの会社はPHPを捨てたよ
202デフォルトの名無しさん:2010/12/10(金) 21:54:57
失礼します
最近、プログラミングに興味もってpythonを始めてみましたが
プログラミング経験がまったくない自分にとってチュートリアルは敷居が高すぎて挫折しそう
だったんですが、

ttp://vipprog.net/wiki/prog_lang/python.html#l6f818a7

このサイトで、出てくる用語一つ一つを丁寧に解説して頂いたお陰でかなり理解できました。
このスレに編集してくれた方がいましたら是非続きもお願いします。

203デフォルトの名無しさん:2010/12/10(金) 22:17:33
催促ワロタ
204デフォルトの名無しさん:2010/12/10(金) 22:43:11
催促してすいません。
しかもお礼のひとつも言わずに…
赤の他人の為にあんな丁寧に解説してくれてありがとうございます。
気を長く、首を長くして待ってますので是非宜しくお願いします。
205デフォルトの名無しさん:2010/12/10(金) 22:47:01
だがしかしあれを書いたのはRubyistの予感
206デフォルトの名無しさん:2010/12/10(金) 22:57:54
>>202
Pythonで学ぶプログラム作法
207デフォルトの名無しさん:2010/12/11(土) 00:22:28
>>205
こういうのは別に何言語使いでもよくないかな
208デフォルトの名無しさん:2010/12/11(土) 01:34:48
これ理解したら十分じゃね?
209デフォルトの名無しさん:2010/12/11(土) 05:28:23
俺も読んだからもう何でも作れるぜ
210デフォルトの名無しさん:2010/12/11(土) 05:41:08
Pythonで彼女は作れますか?
211デフォルトの名無しさん:2010/12/11(土) 07:02:44
作れるんじゃね
実際ただのプログラムであるゲームキャラを彼女にするやつっているらしいじゃん
212デフォルトの名無しさん:2010/12/12(日) 01:44:01
>>204
あれ読んだなら(もちろん実際に試したよな?)、プログラムの編集の仕方と動かし方はわかっただろうし、
何かつくってみればいいと思うよ。


途中でつまづいたり、わからないことがあったら、調べる。
知っている人に聞く。ここでもいいし、初心者スレでもいいし、vipのプログラムスレ、、、は知らん。
ネット(Twitter、IRC、forum、メーリングリスト)やオフ(勉強会)で適当な師匠見つけて教えをこうてみる。


最近こんな人もいたし、むしろやりたいことがあるならけっこうなんとでもなる
自分でWEBサービスを作りたいと思っている人へ
http://anond.hatelabo.jp/20101203150748


213デフォルトの名無しさん:2010/12/12(日) 02:43:54
駕篭屋の宣伝うぜー
214デフォルトの名無しさん:2010/12/12(日) 03:09:40
ただでさえレン鯖板で鬱陶しいのに
215デフォルトの名無しさん:2010/12/12(日) 03:17:27
まぁ、最近は常識のない奴が増えたからな
216デフォルトの名無しさん:2010/12/12(日) 09:27:54
Pythonで彼女は作れないんですね
217デフォルトの名無しさん:2010/12/12(日) 09:54:49
男同士で集まりケツ堀りあって喜ぶような狭い世界にいるのでは彼女なんて一生できるわけがない
218デフォルトの名無しさん:2010/12/12(日) 09:58:29
219デフォルトの名無しさん:2010/12/12(日) 10:14:09
なんでvipのプログラミングスレがここで挙がってるんだ?
ニュース系板の専用スレなんて専門板の底辺が集まった馴れ合い
220デフォルトの名無しさん:2010/12/12(日) 11:42:36
VIPはニュース系じゃなくて雑談板だよ
プログラミングに関するwiki作ってるパートスレあるし
この板よりよっぽどマシだけどな
221デフォルトの名無しさん:2010/12/12(日) 11:46:52
vipでやれウジ虫
222デフォルトの名無しさん:2010/12/12(日) 11:49:52
ウジ虫以下が何かゆってる
223デフォルトの名無しさん:2010/12/12(日) 11:54:11
失せろカス
224デフォルトの名無しさん:2010/12/12(日) 11:54:57
優等なvipperをバカにすんなよ?w
お前らなんて親指でこっぱみじんだからなwwwwwwww
225デフォルトの名無しさん:2010/12/12(日) 11:56:02

ちょwwwwwwwwwwwwww

今ここにwwwwwwwwwww最強のwwwwwwwww俺w様w光w臨wwwwwwwww

食らえwwwwwwwww必殺wwwwwwwwwww

グwラwンwドwクwロwスwwwwwwwwwwwwwwwww

      う
      は
      w
      w
      w
お kw w w w w w w
      w
      w
      w
      w
      w
      w
226デフォルトの名無しさん:2010/12/12(日) 11:57:52
つ 単一電池
227デフォルトの名無しさん:2010/12/12(日) 12:04:14
次スレのタイトルはvipperが寄り付かないように
人生の敗北者には縁の無いPythonのお勉強 Part41 でオナシャス
228デフォルトの名無しさん:2010/12/12(日) 12:06:27
なにそのルーザー臭
229デフォルトの名無しさん:2010/12/12(日) 12:29:01
おい 貴様らみたいな不細工はk i e r o

ID takuya19715

本当にいらん 不細工で性格が悪いとなったらゴ ミ ゴ ミ ク ズ

まぁイケメンsと可愛い女の子は来てね

不細工は来るな まぁおまえらはクズな人生を生きればいい
俺は、運がよかったからイケメンになったけど、おまえらは運が悪いから不細工になったんだよ 親を憎むなよ あばよ
230デフォルトの名無しさん:2010/12/12(日) 20:01:04
>>218
すげー読みにくい最低の日本語
231デフォルトの名無しさん:2010/12/13(月) 12:43:16
2010年うやむやなまま終わりそうなこと

1:月刊python
2:pycon jp
3:お前らの今年中に彼女作る宣言
232デフォルトの名無しさん:2010/12/13(月) 12:50:16
月刊Pythonなんてやろうとしてたのか
Rubyでさえるびまが息も絶え絶えなのに

そういえば日替わり標準ライブラリ解説の人の本が出るね
233デフォルトの名無しさん:2010/12/13(月) 12:56:54
日本ってなんでど素人が本出してるの?
出版社も愚かだねえ
234デフォルトの名無しさん:2010/12/13(月) 15:17:36
「俺の方がアイツより」って思っちゃう人はたいてい人間性に問題があるので、なにをやっても大成しない
235デフォルトの名無しさん:2010/12/13(月) 16:07:25
>>234
> 俺のほうがアイツより
それってハングリー精神っていうんだよね。
236デフォルトの名無しさん:2010/12/13(月) 16:48:54
匿名掲示板でハングリー精神か
おめでてえな(wwWwWWWwwwWwWwwwww
237デフォルトの名無しさん:2010/12/13(月) 17:15:38
Pythonで夕食も作れたらハングリーが解消できるのに・・・
238デフォルトの名無しさん:2010/12/13(月) 17:34:06
pizzaの宅配ぐらいならできるかもね
お金が無い?知らんがな
239デフォルトの名無しさん:2010/12/13(月) 17:47:51
ハンガリー精神?
ハンガリアン記法を使う宗派かなにか?
240デフォルトの名無しさん:2010/12/13(月) 17:50:37
で、お前ら何作ってるの?
毎年毎年スレ汚してばっかりだね
241デフォルトの名無しさん:2010/12/13(月) 17:52:46
ワンクリック入信サイト
242デフォルトの名無しさん:2010/12/13(月) 17:59:07
勉強会に出るのが仕事です
243デフォルトの名無しさん:2010/12/13(月) 18:05:07
普通にwebアプリだろ
244デフォルトの名無しさん:2010/12/14(火) 01:01:32
>>240
コマンドライン上で動くソリティアとか作ってる。
但しサブコマンドの解説は一切ないので、俺しか遊び方が分からない。
245デフォルトの名無しさん:2010/12/14(火) 01:24:11
numpy+scipy+f2py+matplotlib 使って 仕事で使うデータ解析プログラムを書いている
246デフォルトの名無しさん:2010/12/14(火) 02:27:41
>>235
あんなのよりモバゲーの方がいいに決まってる→反グリー精神
247デフォルトの名無しさん:2010/12/14(火) 22:40:03
>>214
うわっ、それは知らんかった。

VPS業者のリンク貼ってあったからか。
むこうの匿名ダイアリーでもOpenVZでクソVPSって指摘しても、わかる奴にはわかると言われてたし
気にせず貼ったのがうかつか。

いや、レン鯖板で張られまくってるのを見てる人がいるから余計か。
248デフォルトの名無しさん:2010/12/15(水) 06:40:33
>>231
>2010年うやむやなまま終わりそうなこと
>
>1:月刊python
>2:pycon jp
>3:お前らの今年中に彼女作る宣言

4 ダンジョー翻訳スプリント
249デフォルトの名無しさん:2010/12/15(水) 06:47:27
>>231
>2010年うやむやなまま終わりそうなこと
>
>1:月刊python
>2:pycon jp
>3:お前らの今年中に彼女作る宣言

4 ダンジョー翻訳スプリント
250デフォルトの名無しさん:2010/12/15(水) 06:54:55
大事なことなので
251デフォルトの名無しさん:2010/12/15(水) 10:44:40
過疎ってるなと思ったらVIPにのっとられてたか
はやいとこスタックレスpythonをデフォルトで使えるようにしてほしい
252デフォルトの名無しさん:2010/12/16(木) 23:25:08
正規表現って難しいね
253デフォルトの名無しさん:2010/12/16(木) 23:30:18
正規社員になるのって難しいね
254デフォルトの名無しさん:2010/12/17(金) 12:44:28
Pythonicドザーはエディタ何使ってるの?
255デフォルトの名無しさん:2010/12/17(金) 14:59:56
[Python Recommended Editor by Editors]
x Python + Emacs
v Python + Eclipse (PyDev)
v Python + PyScripter (Windows)
o Python + IDLE (Default)
@ Python + Editra

Emacs is dropped by badly python-mode.
Eclipse is neutralized by IDE which is good for large-scale project.
PyScripter is neutralized by IDE which is Windows only.
IDLE is gained by editor as default and nice.
Editra is granted by editor for Python coded by Python.
256デフォルトの名無しさん:2010/12/17(金) 16:19:46
Pythonエバンジェリストの俺様はVimだよ
257デフォルトの名無しさん:2010/12/17(金) 16:35:53
当然秀丸
258デフォルトの名無しさん:2010/12/17(金) 16:36:30
ed
259デフォルトの名無しさん:2010/12/17(金) 16:47:47
メモ帳
260デフォルトの名無しさん:2010/12/17(金) 16:52:04
当然禿丸
261デフォルトの名無しさん:2010/12/17(金) 16:57:32
gedit
262デフォルトの名無しさん:2010/12/17(金) 17:06:50
Python使えるエディタってまともなのがないね
さくらエディタ、秀丸は和ゴミ芸当
263デフォルトの名無しさん:2010/12/17(金) 17:21:02
PythonWin
264デフォルトの名無しさん:2010/12/17(金) 17:21:35
notepad++
265デフォルトの名無しさん:2010/12/17(金) 17:30:58
> Python使えるエディタってまともなのがないね
まともじゃないのはお前の能力だなw
266デフォルトの名無しさん:2010/12/17(金) 18:19:28
you too の意味

Thank you. <ありがとう>
I'm glad to see you. <私はあなたに会えて嬉しい>
I know you are crazy about skill xD <まともじゃないのはお前の能力だなw>
全てにyou tooで答えられます。
(Thank) you too. <こちらこそありがとう>
(I'm glad to see) you too. <私も〜>
(I know) you (are crazy about skill xD) too. <お前こそまともじゃない能力だなw>

×これは間違っています!
267デフォルトの名無しさん:2010/12/17(金) 19:03:55
強調表示と、選択範囲のインデント/アンインデント機能があれば何でもいいよ
268デフォルトの名無しさん:2010/12/17(金) 22:41:25
最近だと
me too
が流行りらしいが
269デフォルトの名無しさん:2010/12/17(金) 22:49:36
Editraってか、wxのScintilla系のコンポーネントは
日本語のインライン入力できないとかいう話を聞いたような
Scintilla自体は問題ないのにな

日本だと、IME+インライン入力対応は当然として
文字エンコーディングの自動判別や変換機能も無いと使い物にならないので
それだけでもテキストエディタはある程度限定される気がする
270デフォルトの名無しさん:2010/12/17(金) 23:05:03
調教の完了したnotepad++最強
271デフォルトの名無しさん:2010/12/17(金) 23:05:31
>>270
エロいな
272デフォルトの名無しさん:2010/12/18(土) 09:56:34
結論:PyDev
273デフォルトの名無しさん:2010/12/19(日) 00:46:43
俺もPyDevだな。遅いPCだと死ねるし、速いのでもちょっと見たいときはvimだけど。
274デフォルトの名無しさん:2010/12/19(日) 02:46:42
PyDevとか使うって何処の素人よ
やべーよそれ
275デフォルトの名無しさん:2010/12/19(日) 10:45:49
インテリセンンスないと遠くにあるメソッドとかメンバとかどうやってタイプするの
いちいちそこに戻って確認するの
276デフォルトの名無しさん:2010/12/19(日) 13:10:09
PyDevもコード補完くらいある
277デフォルトの名無しさん:2010/12/19(日) 13:10:58
PyDevを使わないってやつに聞いてるんだよ
278デフォルトの名無しさん:2010/12/19(日) 13:28:39
notepad++も補完くらいはしてくれそう
俺の場合補完はあまり効かないけど
279デフォルトの名無しさん:2010/12/19(日) 15:26:39
端末上でちょこっと弄りたいて場合は何がいいの?emacs?
vim使ってるけど補完とか欲しい
280デフォルトの名無しさん:2010/12/19(日) 15:57:33
vimでも補完ぐらいできるよ
もっともvimの場合、pythonのdllにリンクするようにvimがビルドされている必要が
あるし、vimをビルドする時点でリンクされるdllの名前(つまりPythonのバージョン)
が決まってしまうけど

もしPythonが有効になっているなら
: py print 'hello, world'
とか
: py import vim
: py print dir(vim)
とかやってみるといい

補完については、オムニ補完でぐぐるといいよ
281デフォルトの名無しさん:2010/12/19(日) 16:56:14
>>275
どうやってタイプするのって・・・タイプは手でするもんだ
100年前から決まっている
282デフォルトの名無しさん:2010/12/19(日) 16:58:19
Guidoさんは指にとんがりコーンをはめてタイプします
283デフォルトの名無しさん:2010/12/19(日) 18:01:33
>>275
ちゃんと関数管理台帳があるから心配するな。

一応言っておくが関数作成するときは申請出せよ?
採番から漏れるからな。
284デフォルトの名無しさん:2010/12/19(日) 18:32:40
冬なのに怖い話とかやめろよ…
285デフォルトの名無しさん:2010/12/20(月) 00:45:36
pythonで補完はいらんなあ
Eclipseなら大規模はJavaとC++でするし
286デフォルトの名無しさん:2010/12/20(月) 00:51:53
そんなちょちょいと結果が欲しい時ならまだしも
pythonの膨大なライブラリの時点で、補完はいるだろ
287デフォルトの名無しさん:2010/12/20(月) 01:28:20
>>286
無能な奴はそう考えるのか・・・滑稽だな
288デフォルトの名無しさん:2010/12/20(月) 01:30:09


  「無能な奴はそう考えるのか・・・滑稽だな」
289デフォルトの名無しさん:2010/12/20(月) 01:31:10
>大規模はJavaとC++でするし


無能な奴はそう考えるのか・・・滑稽だな
290デフォルトの名無しさん:2010/12/20(月) 01:37:04
C++ (インフラ), Java(フロント・エンド)、Python(社内システム)が三大 言語。その他、Go、JavaScript、ActionScript も
291デフォルトの名無しさん:2010/12/20(月) 01:37:41
>>290
無能な奴はそう考えるのか・・・滑稽だな
292デフォルトの名無しさん:2010/12/20(月) 01:40:22
> 天下のGoogleの使用言語


無能な奴はそう考えるのか・・・滑稽だな
293デフォルトの名無しさん:2010/12/20(月) 01:44:19
無能な奴はそう考えるのか・・・滑稽だな
294デフォルトの名無しさん:2010/12/20(月) 03:26:30
Pythonの補完はIPythonでやるな。
IPythonで名前の補完だけじゃなくて動作の確認までできたコードをテストも含めて
コピペして、それをリファクタリングして正式なコードにする。
295デフォルトの名無しさん:2010/12/20(月) 04:06:38
>Pythonの

無能な奴はそう考えるのか・・・滑稽だな
296デフォルトの名無しさん:2010/12/20(月) 08:37:29
IDLEが一番勉強になる
297デフォルトの名無しさん:2010/12/20(月) 10:37:19
>>296
無能な奴はそう考えるのか・・・滑稽だな
298デフォルトの名無しさん:2010/12/20(月) 12:11:04
>>294
IPythonだと複数行とか、後でコピペしようと思ったら
In[1]とか...とかが邪魔なんだけど、どうしてる?
299デフォルトの名無しさん:2010/12/20(月) 15:03:24
ヒストリで呼び出すと ... はないけど…

tty 内のエディタで張り付けると
エディタの児童インデントとの組合わせで
ちと悲しい結果になっちゃうけど

(emacs では *scratch* とかの「他のバッファ」に
いったん貼ってから copy&yank してます)
300デフォルトの名無しさん:2010/12/20(月) 15:17:04
>>298
Vimの矩形編集使ってる。

矩形編集できないエディタの人は、 %logstart ってコマンドを使うといいと思う。
301デフォルトの名無しさん:2010/12/20(月) 15:19:09
それらを削除するのもスクリプトでやればいいじゃない
302デフォルトの名無しさん:2010/12/20(月) 16:33:53
前は eric4 とか薦めてるひといたけどもう居ないのかな
303デフォルトの名無しさん:2010/12/20(月) 18:30:50
>>299
>児童インデント

捕まらないように気をつけろよ。
304デフォルトの名無しさん:2010/12/20(月) 20:44:16
今このスレみてeditraの存在知って入れてみたけどかっこいいな
けどpyshellからsite-packagesに入ってるライブラリ使えねえ...
305デフォルトの名無しさん:2010/12/20(月) 22:37:46
editraの何がいいの?
306デフォルトの名無しさん:2010/12/20(月) 22:40:16
スクリプトエディタとしてはIDLEの強化版といえる
307デフォルトの名無しさん:2010/12/20(月) 22:45:28
FPSならばれなかった
308デフォルトの名無しさん:2010/12/20(月) 22:48:27
>>298
$ ipython --classic

IPythonの3対応まだかなぁ…
309デフォルトの名無しさん:2010/12/21(火) 00:07:20
>>298
print In[1:10]

とか。
310デフォルトの名無しさん:2010/12/21(火) 00:33:41
>>309
なるほど。そうするのか、ありがとう
311デフォルトの名無しさん:2010/12/21(火) 10:50:21
Code Completed 第二版
なんで英語だと2500円の本が日本語に翻訳されただけで13000円なの?馬鹿なの?しぬの?
312デフォルトの名無しさん:2010/12/21(火) 13:16:56
>>311
じゃあ英語版かえばいいじゃない。
そんなこともわからないとは馬鹿なの?しぬの?
313デフォルトの名無しさん:2010/12/21(火) 15:59:25
いやでも確かに酷いな。
314デフォルトの名無しさん:2010/12/21(火) 16:01:18
>>311
それパチモンだしそこまで安くない
315デフォルトの名無しさん:2010/12/21(火) 16:10:31
316デフォルトの名無しさん:2010/12/21(火) 16:28:42
渤多栗
317デフォルトの名無しさん:2010/12/21(火) 16:33:52
英語読めないやつは大成しない。
これマメな
318デフォルトの名無しさん:2010/12/21(火) 17:43:55
All your base are belong to us.
319デフォルトの名無しさん:2010/12/21(火) 19:28:55
>>315
それそれ
英語できないプログラマ向けにぼったくってる
320デフォルトの名無しさん:2010/12/21(火) 19:35:12
英語読めないってこれも読めないの?
Formats Amazon Price New from Used from
Hardcover    --    --   $257.09
Paperback  $31.10  $31.10  $21.96
usedでもこれだけ差があるんだよ?
321デフォルトの名無しさん:2010/12/21(火) 20:02:54
これはひどい
322デフォルトの名無しさん:2010/12/21(火) 20:18:15
日本語版はハードカバーじゃないのにお値段がハードカバー並みだと
323デフォルトの名無しさん:2010/12/21(火) 20:59:29
送料込みで日尼で買うのとたいして変わらんがな
で、どこから2500円が出てきたんだ
324デフォルトの名無しさん:2010/12/21(火) 21:17:16
325デフォルトの名無しさん:2010/12/23(木) 06:49:29
PYTHONの勉強会はなんでガラガラスキスキなの?
326デフォルトの名無しさん:2010/12/23(木) 07:03:15
富士山樹海で今度勉強会やるから来いよ
327デフォルトの名無しさん:2010/12/23(木) 09:20:05
もうすぐクリスマスだな。
お前らが今年いかに無為に過ごしたかが証明される日だぞ。
328デフォルトの名無しさん:2010/12/23(木) 10:08:50
彼女うんぬんで1年を評価される筋合いはない
329デフォルトの名無しさん:2010/12/23(木) 11:07:35
ヘビ使いなら、クリスマスこそ新しい言語を作る季節
330デフォルトの名無しさん:2010/12/23(木) 11:19:27
raise StopChristmas
331デフォルトの名無しさん:2010/12/23(木) 12:35:32
俺彼女いるし、今年のクリスマスは一緒にディナー食べるけど。
彼女がいるとかいないとかで一年を評価されるとは思わない。
328は正しいと思う。いいこと言った。
けど、こんな受け答えをしてしまう328には一生彼女できないと思う。
332デフォルトの名無しさん:2010/12/23(木) 13:36:11
pythonで彼女が出来ました
333デフォルトの名無しさん:2010/12/23(木) 14:04:32
>pythonで彼女が出来ました
無(略)な
334デフォルトの名無しさん:2010/12/24(金) 05:48:44
pythonのお勉強を始めようと思います
335デフォルトの名無しさん:2010/12/24(金) 09:30:51
Pythonで彼氏が出来ました!
336デフォルトの名無しさん:2010/12/26(日) 05:19:10
Pythonでクリスマスを回避できました
本当にありがとうございました
337デフォルトの名無しさん:2010/12/27(月) 00:30:07
PythonでシンプルにHTTPレスポンスヘッダを出力するスクリプト書いてうpしたんだけど
たった数行なのに丸1日かかった自分のヘタレさにorzした
338デフォルトの名無しさん:2010/12/27(月) 00:46:06
後から見直して死にたくなることはよくあること
339デフォルトの名無しさん:2010/12/27(月) 03:58:54
次から速くなれば医院で内科医
340デフォルトの名無しさん:2010/12/27(月) 12:36:00
自分が書いた100行が他所では数行で済まされてたりするとかね
341デフォルトの名無しさん:2010/12/27(月) 13:32:46
>>340
そこまで差が出るときは「そんなライブラリ知るか!」ってのが多い。
10行が数行だと、すごくやられた感が。
342デフォルトの名無しさん:2010/12/27(月) 14:29:35
まあでも「そんなライブラリあったのか」(参考になる+1)とも言えるけどな
343デフォルトの名無しさん:2010/12/27(月) 18:10:39
>>336
ネタだろうけど、オレはリアルでクリスマス返上でpythonのお勉強してた。
久しぶりに充実した時間だったよw
344デフォルトの名無しさん:2010/12/27(月) 18:40:00
クリスマスではしゃぐのって10代までじゃない
もしかしてIT土方に参加券がないだけか?
345デフォルトの名無しさん:2010/12/27(月) 20:55:11
>>344
IT土方だがクリスマスは満喫したよ。
346デフォルトの名無しさん:2010/12/27(月) 22:25:17
寧々さんとケーキ食べたよ。
クリスマスっていいね。
347デフォルトの名無しさん:2010/12/27(月) 23:42:18
最近発見して驚愕したのはタートルグラフィックスのライブラリがついてたこと
348デフォルトの名無しさん:2010/12/27(月) 23:44:17
349デフォルトの名無しさん:2010/12/28(火) 00:20:16
NokiaのPySideのソースコードを眺めてびっくりした。
C/C++のソースコードがなくてxmlだらけ。
どうやらここからGeneratorRunner/Shibokenというツールを使って
CPython向けのC++コードを自動生成しているらしい。
350デフォルトの名無しさん:2010/12/28(火) 12:58:53
>>349
初心者でよくわからないけど、pyside-mobility-0.2.0.tar.bz2ってやつ?
351デフォルトの名無しさん:2010/12/28(火) 19:27:03
>>346
しんちゃん乙
352デフォルトの名無しさん:2010/12/29(水) 00:35:42
>>350
ええっと、pyside-qt4.7+1.0.0~beta2.tar.bz2 の方です。
C/C++で書かれたライブラリのPythonバインダーは
元のライブラリをPythonで扱えるようにするためのラッパーの*.pydが主体になるんですが、
Qtのような巨大なライブラリの場合、こういった特殊な実装法になるようです。

Pythonの場合GUIツールキットは他にもあるので箸が迷いますが、
とりあえずこれでアプリを作ってみる予定。
353デフォルトの名無しさん:2010/12/29(水) 09:28:42
PythonでGUIアプリ作りたいんだけど、
今だとやっぱQtなのー?
wxPythonとどっちが良いのか迷ってるんだ
354デフォルトの名無しさん:2010/12/29(水) 11:00:36
俄然wxPython也
355デフォルトの名無しさん:2010/12/29(水) 11:52:40
IronPython
356デフォルトの名無しさん:2010/12/29(水) 12:30:33
>>354
why?
357デフォルトの名無しさん:2010/12/29(水) 13:30:57
Qtだと環境が限定されちゃうからじゃね
358デフォルトの名無しさん:2010/12/29(水) 14:44:24
>>357
Qt使えなくてwxPythonなら使える環境って具体的にどんなの?
359デフォルトの名無しさん:2010/12/29(水) 15:22:26
え〜と…Windows?
360デフォルトの名無しさん:2010/12/29(水) 15:31:38
PyQtあるじゃん
361デフォルトの名無しさん:2010/12/29(水) 16:52:02
>>359
え?
362デフォルトの名無しさん:2010/12/29(水) 17:57:52
好きなのを使え
363デフォルトの名無しさん:2010/12/29(水) 18:30:14
Pypi
364デフォルトの名無しさん:2010/12/29(水) 20:59:59
wxPythonはオブジェクト指向でPythonとの親和性がいい
Qtは慣れればいいけどすぐに汚いコードになる
それとwxPythonで作られたGUIアプリが多いので参考になる -> Editra
365デフォルトの名無しさん:2010/12/30(木) 00:42:05
横からだがなるほど参考になったですはい
366デフォルトの名無しさん:2010/12/30(木) 01:19:29
>>353
pyside
367デフォルトの名無しさん:2010/12/31(金) 00:08:34
QtはKDEの存在があるだけに開発が早く先進的。4.5でLGPLにもなった。
ただし、Qtは4系とそれまでの3以前とで互換性が無い。蓄えられた情報を生かせない。
Qt4はGUI開発で経験があって一人でてきぱき進んでいける人、人柱になれる人向けと理解してる。
今から古いQtならwxなり当たった方が
368デフォルトの名無しさん:2010/12/31(金) 01:12:19
クリスマス来てたんだ
納期が〜
趣味のpython触りたい
自然言語処理とか統計とかしたい
369デフォルトの名無しさん:2010/12/31(金) 01:41:46
入門自然言語処理オススメ
370デフォルトの名無しさん:2010/12/31(金) 01:48:01
それのことを言ってんだろ
371デフォルトの名無しさん:2010/12/31(金) 02:06:59
統計だったら集合知プログラミングとかじゃないのか。まぁ別にどっちでも構わんが。
372デフォルトの名無しさん:2010/12/31(金) 02:12:51
だから、その二つのことを言ってんだろ
373デフォルトの名無しさん:2010/12/31(金) 02:14:32
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
374デフォルトの名無しさん:2010/12/31(金) 02:19:39
______________________________________
|                                        ノ´⌒ヽ,,           |
|                                    γ⌒´      ヽ,           |
| 以下                              // ""⌒⌒\  )          |
| ミンシュトー創設者                           i /   \  / ヽ )             |
| ルゥピー・ウェールズからの                   !゙   (・ )` ´( ・) i/          |
| メッセージをお読みください                 |     (__人_)  |          |
|                                   \    `ー'  /.            |
|                                  ハ',::ヽ      ハ、.            |
|                               ,,、-'´ |\`ヾ::::::::::::ィ  / | ``ヽ─-、.  |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
375デフォルトの名無しさん:2010/12/31(金) 10:20:15
友 愛
376デフォルトの名無しさん:2010/12/31(金) 11:51:27
>>374-375
おまえのようなクソ人間は今すぐ死ぬべき。
377デフォルトの名無しさん:2010/12/31(金) 12:23:21
>>376
そうカッカすんなってw
378デフォルトの名無しさん:2010/12/31(金) 12:31:15
>>376
ルーピー乙
379デフォルトの名無しさん:2010/12/31(金) 12:51:28
>>374-375
おまえのようなクソ人間は今すぐ死ぬべき。
380デフォルトの名無しさん:2010/12/31(金) 14:15:53
ところでTab派って異端?
スペース4つ入れるのめんどい…
381デフォルトの名無しさん:2010/12/31(金) 14:17:42
エディタ設定で、タブキー押下でスペース4つ入るようにできるだろ。
あと、保存時にタブからスペース変換機能もあるだろ。
382デフォルトの名無しさん:2010/12/31(金) 14:19:02
>>380
エディタをソフトタブに設定してタブ使えばいい
383デフォルトの名無しさん:2010/12/31(金) 14:19:30
異端というかご法度に近い非推奨じゃなかったっけ?
384デフォルトの名無しさん:2010/12/31(金) 14:23:38
そうか御法度か…ソフトタブね
やっぱり趣味とは言え、メモ帳はダメなのか
385デフォルトの名無しさん:2010/12/31(金) 14:36:26
仕事で強制されてメモ帳なら理解できる
386デフォルトの名無しさん:2010/12/31(金) 15:42:11
いやプログラミングとか全くする必要がない仕事なんで
仕事用のPCにあんまり色々入れるとマズいんだw
自宅PCにはちゃんとしたエディタ入れてる
387デフォルトの名無しさん:2010/12/31(金) 16:56:18
>>380
スペース2個派ですよろしく
388デフォルトの名無しさん:2010/12/31(金) 16:59:01
>>387
389デフォルトの名無しさん:2010/12/31(金) 20:29:02
>>387-388
おまえのようなクソ人間は今すぐ死ぬべき。
390デフォルトの名無しさん:2010/12/31(金) 20:42:45
同じ文句の使い回しだとすぐ規制されますよ
391デフォルトの名無しさん:2010/12/31(金) 22:51:42
import sys
from PySide.QtCore import *
from PySide.QtGui import *

class View:
 def __init__(self):
  self.widget = QWidget()
  self.grid = QGridLayout(self.view)
  for c, name in enumerate(["alpha", "beta", "gamma"]):
   button = QPushButton(name)
   self.grid.addWidget(button, c, 0)
   button.clicked.connect(lambda: self.buttonClicked(name))
 def buttonClicked(self, name):
  print name

if __name__ == '__main__':
 app = QApplication(argv)
 view = View()
 view.widget.show()
 app.exec_()
 sys.exit()
392デフォルトの名無しさん:2010/12/31(金) 22:52:38
上のコードだけど、
PySideで動的にスロットをconnectするときに、
どのボタンを押しても gamma と出力される。なぜ?
393デフォルトの名無しさん:2010/12/31(金) 22:58:48
>>392
c, name はクロージャ変数だから、 lambda: self.buttonClicked(name) の nameという変数は
lambda の内側と外側で同一のもので、ループのたびに書き換えられるから、最後の値になる。

lambda name=name: self.buttonClicked(name) ってすると、lambdaの仮引数nameに
外側のnameの「値」がデフォルト値として束縛されるので、期待した動作になるはず。
394 【中吉】 :2011/01/01(土) 00:17:22
あけおめ
395デフォルトの名無しさん:2011/01/01(土) 00:22:15
>>394
PythonスレだしせっかくなんだけどPythonっぽくたのむわ
俺? スキル低すぎて思いつかん
396デフォルトの名無しさん:2011/01/01(土) 00:23:50
Hap"python"ewyear!
397デフォルトの名無しさん:2011/01/01(土) 00:26:05
>>395
巳年まで待て
398デフォルトの名無しさん:2011/01/01(土) 00:28:05
>>397
うんわかった
399デフォルトの名無しさん:2011/01/01(土) 00:29:15
イテレーターの神様のレス貼ってくれ
400
401デフォルトの名無しさん:2011/01/01(土) 00:42:41
>>393
うーん。試してみたんだけど、
今度はbuttonClicked()にFalseが渡ってくるだけになるね。
挙動が謎だ……。
402!omikugi 【1245円】 :2011/01/01(土) 00:53:45
御神籤しよっと
403デフォルトの名無しさん:2011/01/01(土) 00:57:16
おみ釘になってっぞ
404デフォルトの名無しさん:2011/01/01(土) 01:00:55
釘をさすな
405!omikuzi 【1878円】 :2011/01/01(土) 01:02:47
[i for i in range([あ,け,お,め])]
print i
406デフォルトの名無しさん:2011/01/01(土) 01:04:46
print [i for i in range(['あ','け','お','め'])]

407 【だん吉】 【1821円】 :2011/01/01(土) 01:07:43
甘いな、Unicode文字列になってないから文字化けだな
408デフォルトの名無しさん:2011/01/01(土) 01:22:24
つーかrangeもいらねーじゃんorz
409 【小吉】 【1470円】 :2011/01/01(土) 01:36:22
今年もよろしくお願いします
410デフォルトの名無しさん:2011/01/01(土) 02:30:35
>>> [c for c in 'あけおめ']
['\x82', '\xa0', '\x82', '\xaf', '\x82', '\xa8', '\x82', '\xdf']
>>> [c for c in u'あけおめ']
[u'\u3042', u'\u3051', u'\u304a', u'\u3081']
>>>
411デフォルトの名無しさん:2011/01/01(土) 02:56:44
>>> [c.encode('cp932') for c in u'あけおめ']
['\x82\xa0', '\x82\xaf', '\x82\xa8', '\x82\xdf']
>>> print [c for c in u'あけおめ']
[u'\u3042', u'\u3051', u'\u304a', u'\u3081']
>>> print repr([c for c in u'あけおめ'])
[u'\u3042', u'\u3051', u'\u304a', u'\u3081']
>>> print repr([c for c in u'あけおめ']).decode('unicode-escape')
[u'あ', u'け', u'お', u'め']
412デフォルトの名無しさん:2011/01/01(土) 03:00:25
>>> [c.encode('cp932') for c in u'あけおめ']
['\x82\xa0', '\x82\xaf', '\x82\xa8', '\x82\xdf']
>>> print [c.encode('cp932') for c in u'あけおめ']
['\x82\xa0', '\x82\xaf', '\x82\xa8', '\x82\xdf']
>>> print repr([c.encode('cp932') for c in u'あけおめ'])
['\x82\xa0', '\x82\xaf', '\x82\xa8', '\x82\xdf']
>>> print repr([c.encode('cp932') for c in u'あけおめ']).decode('string_escape')
['あ', 'け', 'お', 'め']
413デフォルトの名無しさん:2011/01/01(土) 18:02:51
便乗して作ってみた。

print u"".join([eval(("'\\x%x\\x%x\\x%x'"%((7<<5)+3,(2**7)+i[0],(1<<7)+i[1]))+".decode('utf-8')")for i in [[1,2],[1,17],[1,10],[2,1]]])

もっと見にくく短くすっきり書きたい(笑)
414デフォルトの名無しさん:2011/01/01(土) 20:08:55
無駄に長くなってしまった
http://ideone.com/mWIR0

jisx0208.1983なBDFフォントファイルを食わせると年賀の挨拶をします
415デフォルトの名無しさん:2011/01/01(土) 23:12:10
416デフォルトの名無しさん:2011/01/02(日) 00:37:50
ごめん
import turtle, time
t = turtle.Turtle()
a = [(-14, 30), (24, 9), (-16, 6), (10, 6), (2, 4), (-14, 8), (17, 6),
(33, 2), (33, 2), (32, 1), (32, 1), (32, 1), (32, 4), (33, 4), (32, 2),
(32, 2), (32, 2), (-1, 2), (1, 4), (2, 5), (-15, 7), (30, 6), (-13, 3),
(13, 7), (33, 2), (33, 2), (-12, 2), (4, 8), (-16, 5), (10, 7), (33, 2),
(32, 1), (32, 1), (32, 1), (32, 2), (32, 2), (33, 3), (32, 3), (32, 2),
(32, 2), (-19, 7), (27, 2), (-27, 8), (2, 4), (2, 4), (-14, 8), (17, 6),
(33, 2), (33, 2), (32, 1), (32, 1), (32, 1), (32, 4), (33, 4), (32, 2),
(32, 2), (32, 2)]
for d in a:
  (p, q) = (t.down, d[0]) if d[0] > 0 else (t.up, -d[0])
  p(); t.left(q * 10); t.forward(d[1] * 10)
time.sleep(10)
417デフォルトの名無しさん:2011/01/02(日) 00:56:56
>>415
なんでスレチなんだ・・・ >>415 にはこれがPythonのソースコードには見えなかったようで。

誘導されたそのスレBrainFuckのスレだが、BrainFuckは立派な言語だぞ。
Pythonとは違う。
418デフォルトの名無しさん:2011/01/02(日) 07:59:00
Pythonとは違うんです(キリッ
419デフォルトの名無しさん:2011/01/02(日) 22:05:10
つーか>>←これでレス指定するのやめない?
わざわざ戻って見るのだりーんだよね。
いい加減コピペした方が見やすいって気づけいてるだろ?
そういうことで次のレスからヨロシク。
420デフォルトの名無しさん:2011/01/02(日) 22:56:37
ビューアぐらい使えよw
421デフォルトの名無しさん:2011/01/02(日) 23:01:03
釣り
422デフォルトの名無しさん:2011/01/04(火) 08:13:18
a = "abcdefghijk"
b = a[:]
a is b #True

スライシングでは別のオブジェクトになるとマニュアルにあるのですが、
なぜ同じオブジェクトを参照しているのでしょうか?

423デフォルトの名無しさん:2011/01/04(火) 10:10:27
リストだとちゃんと別のオブジェクトになるよ
424デフォルトの名無しさん:2011/01/04(火) 10:15:29
>422は (stringが)immutable であり、
その中身もおなじ内容だから、という理解でいいのかな?

リストの場合はおなじ内容物でも「別のオブジェクト」になる、と
425422:2011/01/04(火) 10:19:16
>>423
リストでは別オブジェクトになることは確認と理解をしております。
上述のコードでも別オブジェクトにならなければいけないはずなのですが、
bがaと同じオブジェクトを示しているのが理解できずに悩んでおります。

426デフォルトの名無しさん:2011/01/04(火) 10:59:57
stringobject.c
string_slice()

あと、長さ0, 1の場合は自動でinternされるみたいだから
PyString_From〜系の関数参照
427426:2011/01/04(火) 11:04:11
tupleのスライスも同様の最適化をしてる

ま、イミュータブルのスライス演算を本気で最適化するつもりなら
[:]に限らず最適化できるはずなんだがな

データ構造がポインタ+オフセット+長さにしてあれば
スライス演算は本来オフセットと長さの調整だけで済み
イミュータブルなら全部O(1)になるのに
428デフォルトの名無しさん:2011/01/04(火) 11:11:20
…と思ったけど、やっぱりダメか
ys = xs[0:1]
del xs
とかしたときに、単純なO(1)な実装だとxs[2:]に入っていた要素も
握りっぱなしになるから一種のリークになるな
429デフォルトの名無しさん:2011/01/04(火) 12:35:44
scheme のambに相当するものはないのでしょうか
430デフォルトの名無しさん:2011/01/04(火) 13:52:44
あるメモリのビット列を変数に格納するのではなくて
関数型言語とかでの「ある内容物を変数というラベルで束縛する」という
考え方をすればいいんじゃないの
431デフォルトの名無しさん:2011/01/04(火) 14:51:50
>>429
Schemeを学んでも目の前の機械の使い方を知らないとは…
Python ambでぐぐればいいだけじゃないか

それはともかく

(let ((i (amb 4 6 7))
      (j (amb 5 8 11)))
  (if (prime? (+ i j))
      (list i j)
      (amb)))

このようなものは、Pythonでは単に

[(i, j) for i in (4, 6, 7)
for j in (5, 8, 11)
if is_prime(i + j)] # is_prime()はどこかで定義

こう書くような気がするな
432デフォルトの名無しさん:2011/01/05(水) 20:33:00
sageがnumpyと統合されたらいいのになあ
433デフォルトの名無しさん:2011/01/06(木) 08:47:00 BE:171806227-2BP(103)
「あ、Python?、スクリプト言語でしょ? レベル低いね」って言われたので殺害した。
434デフォルトの名無しさん:2011/01/06(木) 08:48:36
まだその思いを払拭できない俺はまだまだらしい
435デフォルトの名無しさん:2011/01/06(木) 09:19:41
Pythonで鞄を作り、
Javaで看板を作り、
C++で地盤を作ります。
436デフォルトの名無しさん:2011/01/06(木) 09:49:14
>>433
言語のレベルはアセンブラとかCよりも高いゼよ?
437デフォルトの名無しさん:2011/01/06(木) 10:55:11
>>433
QtでGUI作って、処理が重いところだけ
C/C++で共有ライブラリ(DLL)にしておいて、
残りを全部Pythonで作成するとか
最強のアーキテクチャだと思うんだけどな。
# と思って、そういうアプリの開発に着手中。

そんな狭量な輩は放っておけ。
438デフォルトの名無しさん:2011/01/06(木) 11:24:27
>>437
その手の階層化による利点ってコストゼロってわけでもないんだよな
複数言語・環境間をコンテキストスイッチし管理するためのオーバーヘッドが生じる
Python+C/C++なら何らかのグルーコードが必要だし
デバグもやりにくくなる

ライブラリのように、よく定義され再利用可能でモジュラリティがはっきりしたものを
Cで実装し、それを利用するのは上記のオーバーヘッドを考えても
良いプラクティスだと思うけど、
「重いところだけ」という方法論は、なんだか危うく見えるな
439デフォルトの名無しさん:2011/01/06(木) 11:29:59
へ?
440デフォルトの名無しさん:2011/01/06(木) 11:35:48
言いたい事があるんならもっとはっきりどうぞ
441デフォルトの名無しさん:2011/01/06(木) 11:37:11
乳より尻が好きです
442デフォルトの名無しさん:2011/01/06(木) 11:41:46
知りたての言葉を無闇に使うもんじゃない
443デフォルトの名無しさん:2011/01/06(木) 11:48:54
勝間とか見てるとイライラするよね
444デフォルトの名無しさん:2011/01/06(木) 13:16:39
perlで済むならpythonをあえて使おうと思わない
perlの方が安心する
数値計算とかはやもえずnumpy使うけどRの方が良いような気もする
445デフォルトの名無しさん:2011/01/06(木) 13:23:55
>>438
一見もっともそうだけどツッコミどころがいろいろあるな。

まず、Python - C/C++の実行速度面でのスイッチコストは事実上無視できる。
少なくともネイティブ-Javaやネイティブ-.NET Frameworkのようなヘビーな切り替えコストはない。

開発コストの上昇、という点では、事実だと思う。少なくともゼロから学ぶという前提をおけば。
しかしアプリケーションの実行環境の賢さという点では、
C/C++よりもPython/Ruby/Java/.NETその他の方が圧倒的に上なのは誰も否定しないと思う。

グルーコードというのはC/C++で作った共有ライブラリをPythonから
利用するためのインターフェイス部分のことを言ってるんだと思うけど、
一般的にはコンポーネント同士のツナギとしてのプログラムのことを指すから、
それはPython自身であって指摘自体がナンセンスということになるよ。

Pythonは周辺ライブラリが簡単に手に入るところも魅力で、
実際のケースとしてグルーコードを自分で書く場合はほとんど発生しないと思う。
446デフォルトの名無しさん:2011/01/06(木) 13:49:54
Qtは使うな
MUMBLEが糞すぎる
447デフォルトの名無しさん:2011/01/06(木) 14:06:34
>>445
いや、俺の書き方が悪かったんだろうけど…
> 複数言語・環境間をコンテキストスイッチし管理するためのオーバーヘッドが生じる
これは「比喩」だから。
コンテキストスイッチしてるのは、開発者というリソースね。
モノリシックな言語は特定のIDE環境にひきこもっていればいいかもしれないが、
複数言語ではそうは行かない。

>グルーコードというのはC/C++で作った共有ライブラリをPythonから
>利用するためのインターフェイス部分のことを言ってるんだと思うけど、

その通り。
ctypesならグルーはPythonで書く(Cなら#includeの一行で済むところで
大量のボイラープレートを自分で書く必要があり、非DRYだ)
Python拡張を作る場合には、C側の実装で書く。

なおJVM/.NET系で統一しているのなら、それは不要なので
グルーを書くコストだけはゼロに出来る。

>Pythonは周辺ライブラリが簡単に手に入るところも魅力で、
>実際のケースとしてグルーコードを自分で書く場合はほとんど発生しないと思う。

は?俺はPythonでの開発を否定してるんじゃないよ
>>437が言っているような、「PythonとC/C++の分業」(性能ベースでの)
が、「最強のアーキテクチャ」と言えるほどバラ色だとは思えないと指摘しただけだ。
448デフォルトの名無しさん:2011/01/06(木) 14:17:18
>>447
俺は437じゃないけどまさにその開発手法でやってる
そんな俺の寝言をのたまうなら。447の指摘はぜんぜんたいした問題ではないんだ
ちょっと慣れれば数分で解決する問題

437の言う開発手法で最も面倒なのは「ボトルネック」となる箇所を見つける部分だなぁ
これは正直、数をこなしても未だに面倒なのなの
449デフォルトの名無しさん:2011/01/06(木) 14:24:16
あるpython libraryがctypes経由でfoo.soを呼び
別なpython libraryがctypes経由でbar.soを呼んでるんだけど
bar.soがfoo.soを呼んでるのでfoo.soが2回呼ばれて
foo.soの中にあるfoo1(int x)が2回定義されてます
みたいなエラーで詰んだことが昔あった
450デフォルトの名無しさん:2011/01/06(木) 14:27:55
>>448
解決する/しないってのはおかしくないか?
そういう開発は勿論「可能」だけど、
コストやオーバーヘッドは決してゼロ化しない、単に積みあがるだけだ
何を持って「解決」と言ってるの?
451デフォルトの名無しさん:2011/01/06(木) 14:29:50
>>447
445=437なんだ。ごめんね。
具体的にはフリーの動画オーサリングソフトを作ろうかと思ってるんだけど、
よく使われてるソフトは片や(a)C+Lua、片や(b).NET製。

(a)はC/C++用のプラグインの仕様が用意されておらず、プラグインはLuaで書く必要がある。
記述能力に限界もあるし、まだまだメジャーな言語とはいえない。
GUIの改良は作者本人に依存している。

(b)はプラグインは豊富だけどレンダリング速度に致命的な欠陥があり、
こちらもアプリ本体のUIがいじれないという問題が生じつつある。

Python+Qtならアプリ主要部分+GUIを全てテキストファイルで表現可能なので、
プラグイン作者の協力をより得やすいのではないか、という考えです。
452デフォルトの名無しさん:2011/01/06(木) 14:29:56
>>450
ウザい奴にレスするより早く解決できるよ!
453デフォルトの名無しさん:2011/01/06(木) 14:33:10
>>451
ああ、スクリプタブルなアプリケーションを作りたいという話?
要件のほうが開発コストより優先度は高いのだから、そういう要件なら
当然そういう方向はあるでしょう
454デフォルトの名無しさん:2011/01/06(木) 14:34:12
>>450
こういう気違いがたまにいるよね
なんでゼロ化しなくちゃいけないんだよw
455デフォルトの名無しさん:2011/01/06(木) 14:35:46
>>454
いや、別にゼロ化できなくてもいいけど、何をもって「解決」したといってるのかは
全く理解できない

解決の前と後で、具体的に何かが変わったのですか?
456デフォルトの名無しさん:2011/01/06(木) 14:38:43
馬鹿にされてくやしいの?
俺意味のない議論はしたくなんだよね〜
もうちょっと経験積んだ方がいいよ
457デフォルトの名無しさん:2011/01/06(木) 14:49:41
例えばC拡張を作成する手段として、Cythonあたりだと
・ソーストランスレータなのでデバッガビリティに非常に難がある
・C/C++言語ではないので、Cの宣言をそのまま取り込めず
 Cの定義Aに対応するA'を「自分で」書かなければならない
  コストがかかるだけでなく、一種のコード複製なのでメンテナンス上の
  問題にもなる(ctypesと同じ問題)
という印象を持ったけどね
458デフォルトの名無しさん:2011/01/06(木) 16:58:00
Python+Qtアーキテクチャで作ってる時の素朴なツッコミ。

標準・周辺ライブラリの機能がかぶりまくり :)
459デフォルトの名無しさん:2011/01/06(木) 17:04:21
PythonQTってなに
PythonでGUIが作れるの?
460デフォルトの名無しさん:2011/01/06(木) 17:10:40
エキスパートPythonプログラミングとPythonクックブック買ってきてから気づいたけど、
そもそもPython初心者だったでござるorz
461デフォルトの名無しさん:2011/01/06(木) 17:21:15
>>459
PythonにQtを組み合わせるなら、そう。

PythonQtのことを言ってるなら、こいつはQtを使ったC++アプリケーションで
Pythonインタプリタを取り扱うためのライブラリらしい。
462デフォルトの名無しさん:2011/01/06(木) 21:07:16
>>460
とっととリファレンス本でも買ってこい
463デフォルトの名無しさん:2011/01/06(木) 21:44:28
ipythonをWindowsで動かそうとしてるんだけど、うまくいかない。
コマンドライン上では動くんだけど、
Wikipediaに書いてあるようなwxPythonやQtのバックエンド上、
つまり独立したコンソールウィンドウを表示しての操作ができない。

Qtを動かす方法はわからなくて、とりあえずipythonxコマンドでwxPythonを動かそうとしたけど
wxPythonが入ってない。

wxPython入れてみたら、twisted.pythonが入ってないと。
twisted.python入れてみたら、zope.interfaceが入ってないと。
zope3(zopeproject)入れてみたけど、変わらず。
zope2を入れてみたけど、こいつはpython本体ごと
pythonの外側にインストールされてしまって、認識されない。

なんなの、これ?
464デフォルトの名無しさん:2011/01/06(木) 22:10:34
>>463
zope.interface は zope2 や zope3 とは別モノ。
distribute という Python のパッケージマネージャをインストールして、
easy_install zope.interface したらインストールできるんじゃないかな。

俺はコマンドライン上で使ってるけど。
465デフォルトの名無しさん:2011/01/07(金) 02:24:48
おやすみ(^o^)ノ
466デフォルトの名無しさん:2011/01/07(金) 03:54:11
>>464
なんと。zopeとは関係なかったのか。easy_installで単体で入れたら、
ipythonxが動くようになったよ。ありがとう。

Pythonで構築したQtアプリ上で追加のコンソールとして動かしたいので、
もう少し調べてみる。
467デフォルトの名無しさん:2011/01/07(金) 11:56:16
ue3ってwxWidgetsを推してるのね
468デフォルトの名無しさん:2011/01/07(金) 13:23:55
>>467
Unreal Engine3のことかな。

実際のところPython+wxWidgetsって、
Python+Qtと比べてもそれほど遜色はないんだよね。
QtにはGUI以外にもいろんな機能が実装されてるけど、
そのほとんどはPythonが自前で持っちゃってるので。

特に小さなアプリを作るときは、Qt+PySideで10MB越えするのを
添付して配るのは大げさすぎる気がしないでもない。

ま、乗りかかった船だからオレはQtで行ってみるよ。
469デフォルトの名無しさん:2011/01/07(金) 13:35:33
wx, gtk, Qt の中で、一番Cocoa対応がマトモなのがQtなんだよね。
WindowsとLinuxだけでよければwxとQtが選択肢になり、
Linuxだけでよければ全部大丈夫
470デフォルトの名無しさん:2011/01/07(金) 13:41:27
PySideはまだなんかおかしい点が所々にあって、
PyQtからの移植が一筋縄ではいかないときがある。
471デフォルトの名無しさん:2011/01/07(金) 14:11:12
どっかの外人が「もーPySideバグだらけで2度とやらね」ってぼやいてたな
472デフォルトの名無しさん:2011/01/07(金) 14:43:22
>>> ctypes.c_int(1) == 1
False
>>> ctypes.c_int(1) == ctypes.c_int(1)
False
>>> ctypes.c_int(1).value == 1
True
これでハマった……
473デフォルトの名無しさん:2011/01/07(金) 15:12:29
まともなGUIライブラリが標準で付属してればなぁ。
474デフォルトの名無しさん:2011/01/07(金) 16:00:12
Qt = Linux系・Mac向け
Wx = Linux・Windows、ときどきMac
475デフォルトの名無しさん:2011/01/07(金) 16:27:48
wxはMacにはあんまり向いてないの?Mac対応のwxPythonなアプリをたまに見るけど
476デフォルトの名無しさん:2011/01/07(金) 16:32:22
向いてないわけではないけど
Mac向けアプリ作るならWxじゃなくていいよ
474は恐らく対象OSの話
477デフォルトの名無しさん:2011/01/07(金) 16:46:45
シンプルで
マルチプラットフォーム対応で
ネイティブのルックアンドフィールが使えて
サイズが小さくて
ライセンスがゆるい
GUIライブラリが欲しい。
478デフォルトの名無しさん:2011/01/07(金) 16:54:14
       ____
       /___ \
    /  |´・ω・`|  \ いいよ〜
   /     ̄ ̄ ̄   \
   |  i う WxPythonてヽ
  └二/           l
     |   ,、___,    ノ
     ヽ_二コ/   /
   _____/__/´
479デフォルトの名無しさん:2011/01/07(金) 17:41:26
ncursesが最強ってことで
480デフォルトの名無しさん:2011/01/07(金) 17:44:24
>>477
それだったらtk(Tkinter)かwxPythonの2択だな。
どちらも1MB強の共有ライブラリ(dll)をつけるだけ。

QtはLGPLになったのでフリーソフトとしてなら使えるようになった。
481デフォルトの名無しさん:2011/01/07(金) 17:53:45
>>476
レスサンクス。Mac用のアプリを作るならwxより良いものがあるよってことかな
482デフォルトの名無しさん:2011/01/07(金) 17:58:06
>>481
Mac OS Xネイティブだけでいいなら、
PyObjCで Objective-C/Cocoaにアクセスできるそうなw

でもよほどOSの突っ込んだことをやりたいんじゃない限り、
マルチプラットフォームなツールキットを使ったほうがいいと思うけど。
生産性も高いし。
483デフォルトの名無しさん:2011/01/07(金) 19:10:33
GPLはいいけど、LGPLってわかりにくい。
484デフォルトの名無しさん:2011/01/07(金) 20:47:23
New BSDとBSD Licenseくらい違う
485デフォルトの名無しさん:2011/01/07(金) 22:02:14
pipだeasy_installだvirtualenvだ2.6だ、で疲れた。
486デフォルトの名無しさん:2011/01/08(土) 00:27:44
>>485
ActivePythonをインストールすれば、easy_installは最初からバンドルされてるよ。
それからeasy_installでパッケージをインストールすれば、
そのパッケージが必要とする他のパッケージも再帰的にインストールしてくれる。

でもWindows向けPythonパッケージでよくある単独インストーラーだと、
再帰的チェックまではやってくれないんだよね。
487デフォルトの名無しさん:2011/01/08(土) 01:22:07
distutil2も参戦だ!
488デフォルトの名無しさん:2011/01/08(土) 01:51:08
Perl使いはPerler、Ruby使いはRubyist、
ではPython使いは? Pythologist?
489デフォルトの名無しさん:2011/01/08(土) 01:55:30
PHPer(笑)
490デフォルトの名無しさん:2011/01/08(土) 02:35:19
pythonist
491デフォルトの名無しさん:2011/01/08(土) 02:55:11
pythonista
492デフォルトの名無しさん:2011/01/08(土) 03:03:03
むしろ pythonomist
493デフォルトの名無しさん:2011/01/08(土) 03:16:02
>>486
ActivePythonならpypmだろ
494デフォルトの名無しさん:2011/01/08(土) 03:23:54
Pythonese
495デフォルトの名無しさん:2011/01/08(土) 03:24:01
>>488 >>492
「ニシキヘビ学」ってなんだよw
どんな研究分野なんだ
496デフォルトの名無しさん:2011/01/08(土) 09:11:49
pythologist
497デフォルトの名無しさん:2011/01/08(土) 09:36:25
pythoneer
498デフォルトの名無しさん:2011/01/08(土) 09:38:21
python tamer

経験上漏れがこういうのを書き込んだ途端に
いい加減にしろって怒られる確率が大
499デフォルトの名無しさん:2011/01/08(土) 10:25:55
A Python ****

英語は正しく使うのがPythonic
500デフォルトの名無しさん:2011/01/08(土) 11:07:21
こういうときは冠詞なくてもいいんだぜよ。
501デフォルトの名無しさん:2011/01/08(土) 11:54:07
上級python使いはpythoness(魔女)で
502デフォルトの名無しさん:2011/01/08(土) 14:14:53
オススメのwebスクレイピングライブラリ教えろ
ただし、レスする権利は3つ以上試した人だけな
はいどうぞ
503デフォルトの名無しさん:2011/01/08(土) 14:40:28
Django
504デフォルトの名無しさん:2011/01/08(土) 18:31:28
import re
505デフォルトの名無しさん:2011/01/08(土) 20:14:09
自力
506デフォルトの名無しさん:2011/01/09(日) 10:51:21
(^o^)オハ
507デフォルトの名無しさん:2011/01/09(日) 13:27:06
TIOBE Programming Language of the Year

Year Winner
2010 Python ←
2009 Go
2008 C
2007 Python
2006 Ruby
2005 Java
2004 PHP
2003 C++

ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
508デフォルトの名無しさん:2011/01/09(日) 16:08:59
Pythonも安定期から成熟期に入ったということだな
509デフォルトの名無しさん:2011/01/09(日) 16:21:14
>>508
それは皆がPython3000(Python3.0 or 3.1)を使うようになってからじゃね?

ちなみにオレは、周辺ライブラリの関係で否応なしにPython-2.6だ。(2.7ですら早過ぎる)
510デフォルトの名無しさん:2011/01/09(日) 16:32:19
オライリーから本でるみたい
http://www.oreilly.co.jp/books/9784873114750/
511デフォルトの名無しさん:2011/01/09(日) 18:11:58
>>509
GAEやってる俺は2.5
512デフォルトの名無しさん:2011/01/09(日) 18:21:20
2.6が一番多いだろうなぁ
513デフォルトの名無しさん:2011/01/09(日) 19:26:17
>>511
同志
514デフォルトの名無しさん:2011/01/09(日) 19:34:52
2.6
2.7に移行するメリットはあまりないし、3.1なんかライブラリが使えないし。
515デフォルトの名無しさん:2011/01/09(日) 23:07:27
>>508
2.x系 - 成熟期
3.x系 - 黎明期(?)

3.x系は安定期にすらたどり着けるのか結構不安だw
ライブラリ見つかんねー、と言われなくなるのはいつになるやら
516デフォルトの名無しさん:2011/01/10(月) 00:23:34
Pythonにて作成していたコマンドラインツールをGUIにしようと思い
PyGtkを調べているのですがわからない点があります。
そのコマンドラインツールはsocketでデータを受信し、受信したデータを表示するというツールです。

PyGtkでウインドウやボタンなどを作りあとは連携させるだけなのですが、
socketからデータを受信するために無限ループをさせており、
"gtk.main()"より前にsocketループに入るとウインドウが表示されず、"gtk.main()"を前に書くと
socketのループに入れません。

これはどのように解決できますでしょうか?
517デフォルトの名無しさん:2011/01/10(月) 00:45:48
asyncore
518デフォルトの名無しさん:2011/01/10(月) 00:53:46
別スレッドでsocket使え
519デフォルトの名無しさん:2011/01/10(月) 03:04:42
アサシン楽しそうだな
520デフォルトの名無しさん:2011/01/10(月) 03:05:27
誤爆
521デフォルトの名無しさん:2011/01/10(月) 10:57:04
>>516
一般論

GUIアプリは、「イベントを取得してそれに応じた処理する、のを延々と繰りかえす(イベントループ)」
で動いているので、イベントハンドラで時間のかかる処理をすると、そのあいだGUIが応答しなくなってしまう。

だから普通、GUIアプリで時間のかかる処理をするときは、別のスレッドを起動してそこで処理する。

ただしソケット通信の場合は、OSが非同期IO機能(データが到着したらOS側から通知してくれる。それまで他のことをしててOK)
を備えているので、それを使ってもいい。
Pythonの標準ライブラリには、asyncoreってのがあってそれを支援してくれる。
522デフォルトの名無しさん:2011/01/10(月) 11:38:01
原理論
523デフォルトの名無しさん:2011/01/10(月) 11:51:32
516じゃないけど勉強になった
524デフォルトの名無しさん:2011/01/10(月) 11:51:57
import 角電池
525デフォルトの名無しさん:2011/01/10(月) 12:40:13
細かいことだけど、non-blocking I/O と asynchronous I/Oは違う
Pythonのasyncoreは、名前はasyncだけど、やってるのはnon-blocking I/O
O_NONBLOCKとか使うのがnon-blockingで
aio_write()とか使うのがasynchronous

Windowsではoverlapped I/Oという用語があって、これはasynchronous I/O相当
StevensのUnix Network Programmingにはasynchronous I/Oのほうが
本質的に効率がいいと書かれているけど、Unix系では移植性がよくて枯れている
non-blocking I/Oが使われていることが多いと思う
Windowsではasynchronous I/OがIOCPと一緒によく使われてる

デザパタ用語で前者がreactor、後者がproactorと呼ばれることもある
526デフォルトの名無しさん:2011/01/10(月) 13:27:47
asyncoreを調べてみたのですが、
asyncore.loop()を使うと、やはりそこで動作が止まってしまいます。

asyncore.loop( count=10, timeout=10)
などとすると、しばらくすると受信処理が終わってしまいます。
(受信が終わってからそれ以下の作業に入ります。
527デフォルトの名無しさん:2011/01/10(月) 13:51:10
>>525
asyncoreを使ったことがないのに、名前だけみて適当なことを書いた...反省
というか、asyncoreはO_NONBLOCKすらしてないですね。
528デフォルトの名無しさん:2011/01/10(月) 14:16:44
Twistedを使えとか言いだすアホが登場する予感
529デフォルトの名無しさん:2011/01/10(月) 14:18:02
Twistedを使え
530デフォルトの名無しさん:2011/01/10(月) 14:26:12
どうせ一回しか呼んでないんだろうな
531デフォルトの名無しさん:2011/01/10(月) 14:30:05
サンプルコード書いてやりたいけど、PyGTKが分からん。
ワーカすれっどがデータを受信したら、どうやってメインスレッドに通知すればいいんだ?
532デフォルトの名無しさん:2011/01/10(月) 14:41:45
Twisted使えばいいじゃない?
何でだめなんだ?
533デフォルトの名無しさん:2011/01/10(月) 14:48:57
重いから
534デフォルトの名無しさん:2011/01/10(月) 14:50:44
余計な外部ライブラリに依存すんのって嫌じゃね。
535デフォルトの名無しさん:2011/01/10(月) 15:08:58
>>527
ん?ちゃんとよく読んでないけど
sock.setblocking(0)
とか呼んでないか、asyncoreで
これがO_NONBLOCK相当のはず

>>532
greenlet使える環境なら
今ならgeventとかのほうがいい
http://nichol.as/asynchronous-servers-in-python
速いし、プッシュモデル(コールバックスタイル)でなくプルモデルで
コーディングできるからずっと書きやすく、標準ライブラリにも
モンキーパッチを当ててあっさりnon-blocking化できる
536デフォルトの名無しさん:2011/01/10(月) 15:12:31
標準ライブラリでやれ。
537デフォルトの名無しさん:2011/01/10(月) 15:18:57
asyncoreのselect()は効率悪いし
ありもののライブラリ相当のものを作るのは車輪の再発明
538デフォルトの名無しさん:2011/01/10(月) 15:48:26
>>531
ありがとうございます。
私もPyGtkを始めたばかりなのと、プログラミングの勉強を初めて間もないのでよくわかっていません。

もしよろしければ、PyGtkを使っているものでなくても構いませんので、サンプルをいただけると助かります。
539デフォルトの名無しさん:2011/01/10(月) 15:58:11
>>538
単純すぎるけど、一応うごくのができた。
http://codepad.org/o0ixm3Km

けど、Twistedみたいなのを使ったほうが簡潔にできるんだろうね。
540デフォルトの名無しさん:2011/01/10(月) 16:03:36
すみません。
あるベクトルを正面として、90度上下左右方向のベクトルを求めたいのですが、どうすれば良いでしょうか?

D3DXMatrixRotationAxis で正面方向を軸に90°回そうとしたのですが、
正面で90度回しても上下左右を向く訳がないと気付き・・。そもそもその軸が求まれば解決なのですが; orz
541540:2011/01/10(月) 16:05:47
すみません掲示板トップから盛大に板違いの誤爆しました; 失礼しました;
542デフォルトの名無しさん:2011/01/10(月) 16:07:45
>>540
va, vb があったら、
vc = cross_product(va, vb)
vd = -vc
ve = -va
vf = -vb
543デフォルトの名無しさん:2011/01/10(月) 16:31:28
やさしいな
544デフォルトの名無しさん:2011/01/10(月) 16:54:53
>>539
asyncoreだとこれはできないの?
545デフォルトの名無しさん:2011/01/10(月) 17:29:42
gtkのことは知らないが、>>516が求めているのはたぶんこれ
http://www.pygtk.org/pygtk2tutorial/sec-MonitoringIO.html
どうしてもシングルスレッドにこだわるならこの方法しかない
twistedあたりだと、こういうものを使ってUIイベントループに寄生する仕組みが
最初からある

コネクション一個しか扱わないのなら、このケースでasyncoreの類を使う意味は全く無い
asyncoreは自分でselect()をまわすので、Xのイベントループと共存させるなら
別のスレッドが必要になる
546デフォルトの名無しさん:2011/01/10(月) 17:50:37
記事に載っていたanntoolsを試してみたいのですが、
http://gihyo.jp/dev/serial/01/pythonhacks/0007

Python 3.1.3でanntoolsをインポートすると無いって怒られます。
3.0しか対応してないのですか?
547デフォルトの名無しさん:2011/01/10(月) 18:04:20
>>545のやつで、>>539を書きかえた。
http://codepad.org/PehDqzRL
548デフォルトの名無しさん:2011/01/10(月) 18:32:11
>>546です。 解決しました。
http://pypi.python.org/pypi/anntools/0.5.1
でanntoolsをダウンロードして入れればいいのですね。
お騒がせしました m(..)m
549デフォルトの名無しさん:2011/01/10(月) 19:40:21
PySide
550デフォルトの名無しさん:2011/01/11(火) 00:20:30
よこちち
551デフォルトの名無しさん:2011/01/11(火) 02:03:47
その発想はなかった
552デフォルトの名無しさん:2011/01/11(火) 07:19:33
プログラミングの勉強をしております。

コマンドラインアプリケーションを作って勉強していたのですが、グラフィカルなアプリケーションも
作ってみようと先日よりPyGTKを勉強しております。
その勉強の中で疑問に思ったことがあります。
コマンドラインアプリケーションを作っている際は、クラスをいくつか作りトップレベル?(クラスや関
数の外、モジュールファイルに直接)よりクラスを操作していましたが、PyGTKではウインドウを扱う
クラスがメインになってしまいました。
ウインドウを扱うクラスの中で別のクラスインスタンスの作成やメソッドの操作を行なっています。

ウインドウを扱うプログラムは通常度のような書き方(設計)になっているのでしょうか?
ウインドウを扱うクラスを中心にするプログラムのメリットやデメリットはありますでしょうか?

勉強中の身ですがプログラムを描きながらどうも違和感があったため、質問させていただきます。
553デフォルトの名無しさん:2011/01/11(火) 07:45:41
イベントドリブンでぐぐれかす
554デフォルトの名無しさん:2011/01/11(火) 07:50:47
実はGUIってしっくりこないんです!
555デフォルトの名無しさん:2011/01/11(火) 08:52:00
>>554
やめろww
556デフォルトの名無しさん:2011/01/11(火) 14:02:56
ハリウッドアーキテクチャ!!!
557デフォルトの名無しさん:2011/01/11(火) 15:19:38
>>554
これの元ネタが未だにわからん
558デフォルトの名無しさん:2011/01/11(火) 15:56:12
GUIって奴は馬鹿でも最低限の機能を使えるようにしたものだから
俺みたいぷろふぇっしょなるにとっては無駄で非効率な代物でしかない
オマエらにとってもそうだろう?
559デフォルトの名無しさん:2011/01/11(火) 15:57:03
>> 552
http://www.dotup.org/uploda/www.dotup.org1354305.png
ユーザからの入力をさばくには、こういう構造にするしかないでしょ。

だからPyGTKに限らず、GUIアプリケーションというのは、
基本的にすべてああいうスタイルで書く。
560デフォルトの名無しさん:2011/01/11(火) 16:22:29
>>559
Inkscapeでどうやってそれを書いたんだ?
561デフォルトの名無しさん:2011/01/11(火) 16:24:40
こういう図をササッと作られると仕事ができる奴みたいで癪に障るな
むかつくから作図のノウハウ全部開陳してけ
562デフォルトの名無しさん:2011/01/11(火) 19:10:11
スレタイ嫁
563デフォルトの名無しさん:2011/01/11(火) 20:43:29
とりあえずhow to be hackerで最初にpython勉強しろって書いてあったからここにきた
何からやりゃいいんだ?英語できなくても大丈夫なのか?
564デフォルトの名無しさん:2011/01/11(火) 20:58:35
how to be hackerに、どの言語よりもまず英語を勉強するように書いてほしいわ
565デフォルトの名無しさん:2011/01/11(火) 21:01:43
>>564
英語勉強しろって書いてあるよ馬鹿たれ
俺が言ってるのはpython習得に英語が必要かって聞いてるんだよ
この文章踏まえてもう1回俺のレスちゃんと読め
566デフォルトの名無しさん:2011/01/11(火) 21:03:24
だから絶対必要だって言ってるだろ
ライブラリのドキュメントはこんな風に配布されてる
http://matplotlib.sourceforge.net/contents.html
567デフォルトの名無しさん:2011/01/11(火) 21:06:28
いや、だから辞書引きながらでもいいのかってことだよ
辞書引きながらと英語がきちんとできるのでは全然違うだろ
辞書引きレベルでもおkなのってことを聞きたいの?
今から英語マスターしてたら膨大な時間かかるし。どれぐらいのレベルならいいんだよ
568デフォルトの名無しさん:2011/01/11(火) 21:14:14
>>567
それが可能かどうかは俺が決めることじゃないだろ
どちらにしろ英語は勉強しろよ
569デフォルトの名無しさん:2011/01/11(火) 21:18:03
辞書引きながらと英語がきちんとできるならいいじゃん
570デフォルトの名無しさん:2011/01/11(火) 21:20:02
>>569
日本語でおk
571デフォルトの名無しさん:2011/01/11(火) 21:40:02
なんでもいいからPythonのお勉強しろ
572デフォルトの名無しさん:2011/01/11(火) 21:50:17
>>563
How to become a hackerだと思うけど
Python・Java・HTMLのような環境に依存しない言語を学べって意味のはず
MS言語をこき下ろしてるのはそこら辺が大きく関わってる
英語できないならそれを先に学べと思うが
どうしても嫌ならCとか王道の苦痛を味わったほうがいい
573デフォルトの名無しさん:2011/01/12(水) 00:40:55
PyGtkの勉強をしようと思い、
初めてのPython
を購入し読みました。

次にマルチスレッドとGtkの勉強をしようと思うのですがおすすめの書籍はありませんか?
574デフォルトの名無しさん:2011/01/12(水) 00:44:19
Zed Shaw先生からメッセージをよく読んどけ。
http://po3a.blogspot.com/2010/05/by-zed-shaw.html
575デフォルトの名無しさん:2011/01/12(水) 00:46:27
>>574
だいたい合ってる
576デフォルトの名無しさん:2011/01/12(水) 01:14:27
>>573 マルチスレッドは、日本語の書籍だと
結城浩の「Java言語で学ぶデザインパターン入門マルチスレッド編」が重要な技法を網羅してて良いんだけど、
値段が高いのと言語がJavaなのが難かも。
577デフォルトの名無しさん:2011/01/12(水) 01:16:19
オライリー大人買いできない貧乏人はプログラミングすんな
578デフォルトの名無しさん:2011/01/12(水) 01:25:45
オライリーを本棚に飾ってるアホどもは、
シュプリンガーとかを読んでる人種に馬鹿にされてることを知れ。
579デフォルトの名無しさん:2011/01/12(水) 01:33:59
どこからオライリーが出てきたのかも分からんし、
何を劣等感丸出しにしてるのかも分からん。
580デフォルトの名無しさん:2011/01/12(水) 01:55:20
カネも書籍もなくても、
PCとネット回線と英語さえあれば、いくらでも勉強できる。
たぶん。
581デフォルトの名無しさん:2011/01/12(水) 02:15:53
図書館使えよ
582デフォルトの名無しさん:2011/01/12(水) 02:56:48
>>567
書いてあることが理解できりゃ、エスパーでも辞書引きながらでもなんでもいい。
が、1単語ずつ辞書引いて、1文読むのに10分かかって、だと理解するのに時間がかかりすぎる。
じゃあどの程度できりゃいいのか? それはアンタがドキュメント読むのにどんだけ時間かけられるかで決まってくるんで、俺にはなんともいえん。
583デフォルトの名無しさん:2011/01/12(水) 03:50:37
584デフォルトの名無しさん:2011/01/12(水) 04:33:32
>>581
プログラミング関係の蔵書がそこそこ充実してる図書館がどこにでもあると思わないで…
585デフォルトの名無しさん:2011/01/12(水) 08:55:46
貧乏人というより投資する価値観の違い
本を買うだけでしたり顔してる連中は基本的に劣ってる
586デフォルトの名無しさん:2011/01/12(水) 09:52:26
ツンデレ
587デフォルトの名無しさん:2011/01/12(水) 11:28:31
PythonとRで統計処理を自動化するより、
Excelのクソみたいなマクロを書くほうが上司に評価されます。MS死ね。
588デフォルトの名無しさん:2011/01/12(水) 11:30:13
Pythonで社内システムを構築するより、
MS製品を導入するほうが上司に評価されます。MS死ね。
589デフォルトの名無しさん:2011/01/12(水) 11:42:17
属人化嫌いだってよ
590デフォルトの名無しさん:2011/01/12(水) 13:12:32
Excelで動いてた面倒な入力とデータ加工の業務を
Pythonで自動化してあげたら本当に手が減ったからと
それまでの担当者が数名クビになりました
経営的にはGJなんだろうけど複雑な気持ちです
591デフォルトの名無しさん:2011/01/12(水) 13:15:43
>>590
余った時間で創造的なことをやればよかったのにね、
というのがPython流の考え方になるのかねぇ。
明日は我が身、でもある。
592デフォルトの名無しさん:2011/01/12(水) 13:20:43
つまり「手を抜くな」って事だ
技術でも知識でも経験を積むに「試す」「失敗(+成功)する」「疑問に思う」の繰り返しがないやつは進歩しない
593デフォルトの名無しさん:2011/01/12(水) 13:54:47
>>590
コンピュータに職奪われたわけか
そんなアナログ作業をデジタルでやったら金食い虫
594デフォルトの名無しさん:2011/01/12(水) 14:03:05
プログラミングは才能と金がない奴は進歩しない
ネットのジャンク情報を無能がいくら読み漁りいじくりまわそうがかなわない
595デフォルトの名無しさん:2011/01/12(水) 14:18:08
才能よりも興味と好奇心
596デフォルトの名無しさん:2011/01/12(水) 16:23:10
上手に「手を抜く」発想が必要
597デフォルトの名無しさん:2011/01/12(水) 16:36:12
発想=才能
結局才能に行き着くんだよ馬鹿たれ
598デフォルトの名無しさん:2011/01/12(水) 16:41:07
才能0じゃ駄目だけど
才能だけでも駄目だと思う
599デフォルトの名無しさん:2011/01/12(水) 16:42:00
諦めたら終わり
満足してしまっても終わり
600デフォルトの名無しさん:2011/01/12(水) 16:57:54
少なからずアスペルガー的気質がないとプログラミングに向いてないのは確か。
601デフォルトの名無しさん:2011/01/12(水) 17:00:30
確かに間違いに寛容な香具師は向いてないな
602デフォルトの名無しさん:2011/01/12(水) 17:02:44
Pythonと関係あるのは何レスくらい前だろうね
603デフォルトの名無しさん:2011/01/12(水) 17:08:44
pythonなんて一般人はほとんど知らないんだからレスなんて少なくて当たり前だろ
スレの勢いをあげて一般人にもpythonスレが目に付くようにしないと永久に普及しない
604デフォルトの名無しさん:2011/01/12(水) 17:10:12
>>574
感動した
605デフォルトの名無しさん:2011/01/12(水) 17:11:09
>>603
じゃあageようぜ
606デフォルトの名無しさん:2011/01/12(水) 17:42:20
Python.jpを何とかしてほしい。
Pythonに興味を持った人があのページを見て一体何が分かるのか。
まあ、単なる温泉旅行団体なんだろうけど。
607デフォルトの名無しさん:2011/01/12(水) 17:46:51
try:
  角電池
608デフォルトの名無しさん:2011/01/12(水) 17:53:41
だれかが質問を書かないと、このスレは荒れる。
609デフォルトの名無しさん:2011/01/12(水) 17:55:11
>>606
気持ち悪っ!
俺はPython.jpなんて全く知らないけどPython使うのになんの苦労もしてないぜ
610デフォルトの名無しさん:2011/01/12(水) 18:23:46
別に意見として気持ち悪くはないとおもうけど。
611デフォルトの名無しさん:2011/01/12(水) 18:27:52
俺も温泉旅行行きたい
612デフォルトの名無しさん:2011/01/12(水) 18:48:42
>>606
はげしくどうい
613デフォルトの名無しさん:2011/01/12(水) 19:19:27
PyGTKを勉強するのに適したGTKの書籍はありませんか?
614デフォルトの名無しさん:2011/01/12(水) 19:35:14
ありますん
615デフォルトの名無しさん:2011/01/12(水) 20:28:15
perl使いになればよかったよ。なんでpythonなんて学んじまったんだ
誰も質問なんてしてこないじゃないか!言語オタにはつまらない奴と思われてるし
616デフォルトの名無しさん:2011/01/12(水) 20:43:46
俺、ラクダ本の Perl 6 対応版が出たら Perl 使いになるんだ
617デフォルトの名無しさん:2011/01/12(水) 20:45:37
対応版以前にPerl6はいつ出るんだ?
開発者が、一生でなくていいって言ってるんだぞ
618デフォルトの名無しさん:2011/01/12(水) 20:51:52
>>615
Perlも勉強しやがれ
619デフォルトの名無しさん:2011/01/12(水) 21:10:49
何か質問はございませんかー
620デフォルトの名無しさん:2011/01/12(水) 21:13:14
621デフォルトの名無しさん:2011/01/12(水) 21:38:14
GTKは糞
何度でも言うよ
GTKは糞
622デフォルトの名無しさん:2011/01/12(水) 21:42:03
>>621
お前Linux版のGTKスレにも書いただろ。
暇だな。頑張れ。
623デフォルトの名無しさん:2011/01/12(水) 22:10:32
まー GTK on Windows はくそ
624デフォルトの名無しさん:2011/01/12(水) 22:16:19
gtkmmはいいと思うぞ
625デフォルトの名無しさん:2011/01/12(水) 22:25:15
gtkmmも使ったことあるから否定はしないが
Qtと比べたら雲泥の差
GTKが糞と言われても仕方ない
626デフォルトの名無しさん:2011/01/12(水) 22:32:05
メンテナンス性の面で僕が気に入っている言語は Python だ。シンプルで
きれいな構文、オブジェクトのカプセル化、充実したライブラリのサポート、
そしてオプションの名前付きパラメータがある。メンテナンス性が悪い言語
の一例は Perl である。うん、僕は確かにそう言ったよ。撤回するつもりはない。
-- Bram Cohen

Python が好きなのと同じぐらいRubyが好きじゃない。Perlみたいな「TMTOWTDI」哲学が
多すぎる。Perl ほどひどくはないにしても、似たような可読性とメンテナンス性の問題が
出てくる。Ruby を使わなければならないなら使うこともできるけど、幸いそういうことはない」
-- Jonathan Ellis

Rubyの本を読んでて頭にひょこっともたげた疑問ってのは「今さら?」というものだ。
ご苦労様なこった。この言語設計者 (Matzこと教祖まつもとゆきひろ様) っていうのは
なんでわざわざこんなものを創ったんだ? たどり着く結論は毎度同じものだ。
-- Bruce Eckel

Ruby は低品質で、ゴミクズソフトが頼っているクソみたいな
インタプリタにも関わらず不当に勢いを得て今までずるずる
-- Zed Shaw

「やはり他のスクリプト言語作者とは格が違う。そもそもPerlやRubyというのは
一部のオタクどもが楽をするためだけに存在している言語で、かれら教育のことなんか何も考えてない。
しょせんかれらは狭い世界に閉じこもる運命にあるのだ。
627デフォルトの名無しさん:2011/01/12(水) 22:38:06
Gtkは糞といってQtをおしてくる人がいるが、そいつにGtkとくらべてQtのメリットを聞いても返事がない
Linuxをちょっと触ったことある連中がWindowsを糞と言ってるのと同じように思うんだ
628デフォルトの名無しさん:2011/01/12(水) 22:38:53
やっぱりQtのAPIが一番すっきりしてる。C++ってのが気に食わないけど。
629デフォルトの名無しさん:2011/01/12(水) 22:40:08
>>627
流れが叩き合いっぽくなってるけど、
Qtはいいものだ。

オレ、今作ってる動画が完成したらQt+Pythonでソフト作るんだ……。
630デフォルトの名無しさん:2011/01/12(水) 22:41:44
GTKはWin/MacでネイティブのLook & Feelが使えないのがイヤん。
631デフォルトの名無しさん:2011/01/12(水) 22:51:37
WindowsとMac OS XとGTKとQtに対応した、
Python用のGUIライブラリを誰かが作ればOK。
ニートのみなさん頑張って作ってくれよ。
632デフォルトの名無しさん:2011/01/12(水) 22:57:43
>>626
言語の宗教戦争は無駄だとすぐ上に書いてあるのに
633デフォルトの名無しさん:2011/01/12(水) 23:04:24
Zed Shawは分裂気質だから
634デフォルトの名無しさん:2011/01/12(水) 23:47:16
もりあがってるところ誠に申し訳ありませんが
Python で使える GUI フレームワークで
マルチスレッドと相性の良いものはどれでしょうか?
635デフォルトの名無しさん:2011/01/13(木) 00:03:55
GTK
636デフォルトの名無しさん:2011/01/13(木) 00:09:09
マルチスレッドとの相性が良い悪いなんてあるのか?
637デフォルトの名無しさん:2011/01/13(木) 00:09:18
Django
638デフォルトの名無しさん:2011/01/13(木) 00:10:55
そもそもPython自体がマルチスレッドと相性良くない
639デフォルトの名無しさん:2011/01/13(木) 00:20:57
>>627
スレ違いだが。
どちらも似たようなプログラムなわけだが、どっちが書きやすいように見える?
ttp://library.gnome.org/devel/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD
ttp://doc.qt.nokia.com/4.7/tutorials-widgets-childwidget.html
640デフォルトの名無しさん:2011/01/13(木) 00:32:18
どじゃんぐり ころころ どじゃんくりこ
どじゃんご が 出てきて さあ たいへん。
641デフォルトの名無しさん:2011/01/13(木) 00:37:58
なごむなあ
642デフォルトの名無しさん:2011/01/13(木) 00:38:23
>>638
そんなことは無い。
GILのせいで性能が出ないのは、マルチスレッドのユースケースのうちのごく一部。
非ネイティブスレッドのRuby 1.8とかに比べたらずっとスレッドとの相性が良い言語。
643デフォルトの名無しさん:2011/01/13(木) 01:26:34
>>615
そんなあなたにおすすめ
「PerlユーザのためのPython移行ガイド」
644デフォルトの名無しさん:2011/01/13(木) 01:29:18
すごくどうでもいいが
個人的に蛇は割と好きなほう。家の下にアオダイショウとか住みついてる
すごいでかいから屋敷神に違いない。

だからPythonにも割と惹かれるのかもしれない
645デフォルトの名無しさん:2011/01/13(木) 04:46:10
windowsで配布まで考えるとgtkはランタイムファイルやなんかがごちゃごちゃ必要なんじゃなかったっけたしか
646デフォルトの名無しさん:2011/01/13(木) 06:35:44
Tkinter最強伝説
647デフォルトの名無しさん:2011/01/13(木) 08:23:04
>>642
GILのせいで性能でないのは関係ない (キリッ! とか・・・もうねアホかと
例えばPythonでも有効につかえるスレッドによるI./O待ちとかは単にリソースの無駄遣いなんなんだぜ
648デフォルトの名無しさん:2011/01/13(木) 08:59:27
>>627
ここPythonのスレだろ?
Pythonから使うこと考えてないの?
649デフォルトの名無しさん:2011/01/13(木) 09:29:47
Perlの勉強をしていたのですが、Pythonの勉強をしてみようと
Pythonの勉強をしております。

Perlを勉強していたときは、簡単なデータの保存は自分でCSV形式に変換して
ファイルを保存していたのですが、Pythonではドのように保存するのが一般的なのでしょうか?
Perlの用に自分でCSV形式にすることもできますが、pickleのようなものを使うのでしょうか?
勉強を始めたばかりで何も分かっておりませんが、pickleを使うと大きなデータはメモリを食うのではないか
など、いくつか疑問があります。

一般的に使われている方法や、それらの方法のメリットデメリットを教えていただけると助かります
650デフォルトの名無しさん:2011/01/13(木) 10:06:29
python.jpがダメなのは同意だが、対抗の方がショボ過ぎるのも事実。
651デフォルトの名無しさん:2011/01/13(木) 10:31:46
>>649
リストとかタプルとかいろんな型をごちゃまぜにするのならpickleでいいと思うけど、
そうじゃないならCSVでいいんじゃないかなぁ。
pickleは人間がパッと見て分かるデータじゃないし、Python以外では一般的に使われない。

メモリは、相当でかいファイルか相当低スペックのコンピュータだと知らないけど、
そうじゃなかったら気にしなくていいと思う。
652デフォルトの名無しさん:2011/01/13(木) 11:39:55
perlでも大きなデータはメモリを食うよ

あと
x perlの用に
o perlの様に
じゃないかな
653デフォルトの名無しさん:2011/01/13(木) 11:41:13
>>649
漏れは pickle して zipfile してる
654デフォルトの名無しさん:2011/01/13(木) 11:42:49
>>649
YAMLとか
JSONとか
655デフォルトの名無しさん:2011/01/13(木) 11:43:23
やっと知的な議論に突入したな
656デフォルトの名無しさん:2011/01/13(木) 11:55:12
>>649,651
csvは表状のデータにしか使えないから、オレはあんまり使わないんだよな。

自分のアプリでしか使わず、ユーザーに外でいじらせるつもりがないならpickleで十分。
スクリプト系言語で使うデータならjson/yaml。
静的型付言語も含めて言語問わずに利用ししたいならxmlやprotocol-buffers。

比較的小規模な設定ファイルならiniも案外悪くない。

動作中のメモリ使用量なんて、問題が出たときに始めて考えればいいよ。
657デフォルトの名無しさん:2011/01/13(木) 11:57:51
何をシリアライズするかにもよるけどな。
クラスの状態を保持するのにcsvを選択するのはよけいな手間でしかないし、
ヒューマンリーダブルが求められる出力データにpickleもおかしい。
この場合は何らかの(途中)処理結果ををデータとして出したいようだから、
csvなりxmlなり>>654なりの方が一般的かと。
658デフォルトの名無しさん:2011/01/13(木) 12:01:15
そんなあなたにpySQLite
659デフォルトの名無しさん:2011/01/13(木) 12:25:41
個人的には、
ちょっとした設定ファイルとか: Pickle
構造的なデータ: XML, JSON
単純なデータ: タブ区切りテキスト
テーブルデータ: SQLite
数値データ: CSV, バイナリで吐く
Key-Valueデータ: gdbm, cdb, etc.
660デフォルトの名無しさん:2011/01/13(木) 12:31:13
YAML XML SQL
661デフォルトの名無しさん:2011/01/13(木) 12:42:46
>>647
うわっ、ひょっとしてスレッドで十分な場面でもIO多重化しちゃう人?
1万とか10万単位の並列数を扱うならともかく、今時なら数十どころか
数百単位の並列数でもスレッドで十分だよ。
ttp://developer.cybozu.co.jp/kazuho/2009/09/epoll-bac0.html

Pythonのスレッドが使い物にならないのは、

1) GIL を握ったままCPU100%使うスレッドが複数あるとき、マルチスレッドによる高速化がされない。
2) CPU100%使わないまでも、スレッドがたくさんあってその合計のCPU使用率が高い場合は、
  GILのせいでOSが持ってる良い感じのスケジューラがうまく動かず、スレッドの応答速度が
  遅くなる場合がある。

こういう場合はプロセス分けろって事だな。
662デフォルトの名無しさん:2011/01/13(木) 12:43:52
YAMLを使うのはキモオタの自己満足感が強い。
663デフォルトの名無しさん:2011/01/13(木) 13:01:38
まあ、さっさとIncremental GCか何かを実装して欲しいですね。
664デフォルトの名無しさん:2011/01/13(木) 13:09:02
CSVよりTSV
665デフォルトの名無しさん:2011/01/13(木) 13:15:56
うわっ、 ス で で しちゃう人?
万 万 を扱うならともかく、
握ったまま 使う と
良い感じ が 遅くなる
666デフォルトの名無しさん:2011/01/13(木) 13:33:02
せっかくの知的な議論(キリッ)が・・・
667デフォルトの名無しさん:2011/01/13(木) 13:39:10
>>661
頭悪そうだなお前
一言で言えばGILがあるかぎり同時に実行出来るPythonのコードは1つだけって事だ
お前の例は全く的を得ていない実に愚かなレスだ

もう少し勉強してこい
668デフォルトの名無しさん:2011/01/13(木) 14:03:34
>>667
並列処理のためにマルチスレッドを使う場合は、
multiprocessing モジュールを使って実装すればGIL問題は発生しないよ。
標準のマルチスレッドの書き方と大差ない。

http://lab.tricorn.co.jp/okt/721
669デフォルトの名無しさん:2011/01/13(木) 14:06:04
>>664
同意。
670デフォルトの名無しさん:2011/01/13(木) 14:15:02
>>668
いやお前・・・それはマルチスレッドじゃなくマルチプロセスだから・・・
根本的な事が解ってないんじゃないかな
671デフォルトの名無しさん:2011/01/13(木) 14:15:16
文盲どうしが好き勝手に自己主張してて見ててイライラする。
672デフォルトの名無しさん:2011/01/13(木) 14:18:51
>>670
http://oshiete.goo.ne.jp/qa/4901659.html
どっちも変わらないけど
リソース的にマルチプロセスが主流になってきてるね。
673デフォルトの名無しさん:2011/01/13(木) 14:20:30
これがゆとり教育の弊害か...
674デフォルトの名無しさん:2011/01/13(木) 14:22:15
ゆとり教育だからこそサブカルに詳しいんじゃないのか?
675デフォルトの名無しさん:2011/01/13(木) 14:31:50
教えて!goo wwwwwwwwwwwwwwwwwwwwww
676デフォルトの名無しさん:2011/01/13(木) 14:39:13
677デフォルトの名無しさん:2011/01/13(木) 14:46:31
プログラミング「言語」の知識しか無い奴だらけで困る。
それじゃクソみたいな業務アプリしか書けないだろ常考。
コンピュータとかCPUとかOSとかアルゴリズムとかCGとか信号処理とか糞便爆発とか、
色々やらなきゃダメだし、そのほうが楽しいぞ。
678デフォルトの名無しさん:2011/01/13(木) 14:57:05
Windowsにはfork()は無いからマルチプロセスはスレッドほど手軽とは
いえない気がするけどなあ

たぶんその辺の理由もあってmultiprocessingは色々制限があるのがうざい
これはmultiprocessingのドキュメントに書いてあるけど、たとえば
from multiprocessing import Pool
pool = Pool(5)
pool.map(lambda x: x * x, range(10))
みたいなコードをREPLで試そうとしても動かない

今はErlangとか言わなくともGoとかScalaとか並列処理に向いた言語いっぱいある
.NETでもPLINQとか出ててLINQをナチュラルに並列化できる
Javaあたりはそれほど抽象化はしてないけどutil.concurrentに頼ってる人多いだろう
GILなんてないし、便利で信頼できるプリミティブを用意してる

俺もPythonの並列処理サポートは、「一応ネイティブスレッドが使えます」
という意味でないよりはマシだけど、正直ショボいと思う
679デフォルトの名無しさん:2011/01/13(木) 15:04:32
>>667
>>661 のどこを読めばその程度の事を理解していないように読めるんだ?

>>647 がIO待ちの為にスレッドを使うことを否定しているから反論しただけで、
GILが制約になる条件は>>661の後半に詳しく書いているだろ。

そして、GILの為にマルチスレッドが使い物にならないケースは、マルチスレッドの
ユースケースのごく一部だ。
680デフォルトの名無しさん:2011/01/13(木) 15:06:48
ひょっとしてRuby1.8と比べたから必死になって反論している人がいるのかな?

Ruby1.9はPythonと同じになったし、ブロックするAPIを呼び出したらほかのスレッドも
実行できなくなるのはRuby1.8だけじゃなくてPerlとかも一緒だからRubyをdisってる
わけじゃないよ。
681デフォルトの名無しさん:2011/01/13(木) 15:12:06
たとえば、Perlはlibmysqlclient経由で並列にMySQLに問い合わせができない。
ttp://d.hatena.ne.jp/tokuhirom/20090612/1244777290

Pythonならネイティブスレッドが使えるので、並列にlibmysqlclient経由でMySQLに
問い合わせができる。
PythonでWebアプリを作る場合、プロセス一つあたり5〜50スレッドくらいで、そのプロセスを
コア数×2くらい起動すると、CPUも使い切れるし、全部プロセスにするよりずっと省メモリ。
682デフォルトの名無しさん:2011/01/13(木) 15:12:37
>>679
GILが制約となる条件が >>661の1)と2)というのなら勉強しなおして来たほうがいい、割とマジで
IO待ちにスレッドを使うのは無駄多いというのは紛れもない事実
683デフォルトの名無しさん:2011/01/13(木) 15:13:58
>>680
指摘が的外れだからだろうw
684デフォルトの名無しさん:2011/01/13(木) 15:15:55
>>683
的外れな上に、スレッドが使えないという話にプロセスを使えばいい!とか
マリーアントワネット風に意味不明な反論がおおいよなw
685デフォルトの名無しさん:2011/01/13(木) 15:18:27
>>682
間違いを指摘しろよ

1)は、>>667 の「同時に実行出来るPythonのコードは1つ」を詳しくいっているだけ。
たとえば zlib で圧縮する場合とかは GIL を開放するから、 zlib.compress(data) はマルチスレッドで
並列実行できるので、あえて「GILを握ったままCPU100%使う」と表現している。

2)は、そもそも1コアのCPUを100%使ってない(GILが無かったとしてもマルチスレッド化してもスループットが
上がらない)状況でも、GILのせいで応答性能が悪くなるという問題を指摘している。
現行のPythonでは結構マジな問題だけど、Python 3.2 で new-GIL になると大分改善される。
686デフォルトの名無しさん:2011/01/13(木) 15:18:39
GIL問題以外にもPythonはスレッドのオーバヘッドが大きいよね
687デフォルトの名無しさん:2011/01/13(木) 15:20:27
>>684
そもそもマルチスレッドのユースケースの *1つ* でマルチスレッドが使えないからと言って
「マルチスレッドが使い物にならない」と言ってしまうのがおかしいと言う方が的外れじゃないか?
688デフォルトの名無しさん:2011/01/13(木) 15:21:07
>>686
スレッドのオーバーヘッドと思っているものは、実はGIL競合のオーバーヘッド。
new-GIL で改善される。
689デフォルトの名無しさん:2011/01/13(木) 15:21:15
>>678
その辺はPerlだってRubyだって何ら変わらないだろ?
PythonでもCPythonじゃなくてIronPythonならGILの制限はないんじゃなかったかな。

透過的な並列実行は手続き型言語より関数型言語のほうが有利だわなー。
言語処理系レベルで最初から念頭においた上で実装しないと後付では難しいんじゃないかな。

Pythonは言語仕様そのものは比較的シンプルだから、
そういった用途向けに処理系をゼロから作り直すことは不可能じゃないかも。
690デフォルトの名無しさん:2011/01/13(木) 15:25:33
>>685
バカの相手してやる俺超やさしいな

> 1)は、>>667 の「同時に実行出来るPythonのコードは1つ」を詳しくいっているだけ。
違う。余計なワードを挟んで定義を曖昧にして表現しているだけ。
zlib圧縮はDLL呼び出しでPythonコードの実行じゃないだろうこのアンポンタン

2)の指摘は意味不明。スレッドの「合計のCPUの使用率」?? 何を言っているんだお前はw
本当にGILを理解していればこんな間抜けな発言はしない
691デフォルトの名無しさん:2011/01/13(木) 15:30:15
GILのことを全く知らない俺の妄想。

GILの問題は、アムダールの法則的な問題である。
つまりCPU-boundなときにパフォーマンスが落ちるだけで、
そもそもそれを気にするなら動的言語を使うなって感じ。
new-GILでそれが改善される。

IO-boundな処理のときは、GILは性能にあんまし関係ない。

って理解でOK。
692デフォルトの名無しさん:2011/01/13(木) 15:30:52
>>690
バ、バカって言う方がバカなんだからね
このバカ
693デフォルトの名無しさん:2011/01/13(木) 15:33:25
アスペルガーのみなさん。いいかげんにしてくだしあ。
694デフォルトの名無しさん:2011/01/13(木) 15:36:12
2人だけ周りが見えてないよな。
695デフォルトの名無しさん:2011/01/13(木) 15:39:09
>>691
日本語でおk
696デフォルトの名無しさん:2011/01/13(木) 15:40:45
>>691
概ね合ってる
あと単純にスレッド数が多くても効率が落ちるよ
697デフォルトの名無しさん:2011/01/13(木) 15:44:52
>>696
ロック多発下で並列度を上げても性能はぜんぜーん向上しない
       -- アムダールの法則
ってやつだね。
698デフォルトの名無しさん:2011/01/13(木) 15:45:06
まあインタプリタにヘビーな数値計算とかやらせるわけはないのだが
(Cや何かのライブラリを呼ばせるのはべつ)
PythonってI/O以外だとGIL握ったままなの?

LLでテキスト処理はよくやるけど、それが重いこともある
テンプレート処理とかHTMLのパーシングとか

そういう場合はどうなるの
699デフォルトの名無しさん:2011/01/13(木) 15:55:00
PythonやPyGTKを使ったアプリケーションはGPLになってしまうのですか?
商用ソフトなどは作れませんか?
700デフォルトの名無しさん:2011/01/13(木) 15:59:41
>>699
それはPyQtの話
701デフォルトの名無しさん:2011/01/13(木) 16:00:28
GTKは糞
何度でも言うよ
GTKは糞
702デフォルトの名無しさん:2011/01/13(木) 16:00:38
>>698
Posixスレッドと同じでtime()とかI/O待ちが発生するとスレッドのスイッチングが起きる
あとは命令ステップを一定数こなしたらGILによって勝手にスイッチングされる

共有ライブラリ呼び出し時は Py_BEGIN_ALLOW_THREADS, Py_END_ALLOW_THREADSを正しく指定してあれば
GILを開放しマルチスレッドの恩恵を受けられる
なので、高速な並列化が必要な場合はその処理を共有ライブラリにしてctypsやswigなどで呼び出すのがいいかも

管理スレッド数が多くなるとGILの効率が落ちる
プロセス負荷が高いとGIL自体の処理が滞るのでさらに悪循環に
703デフォルトの名無しさん:2011/01/13(木) 16:05:04
>>699
Pythonは、PSFライセンスで、
商用の3Dソフトなんかにも組みこまれていることから分かるように、
商用利用可能。

PyGTKはLGPLなので、静的リンクしなければ
問題なしです。
704デフォルトの名無しさん:2011/01/13(木) 16:15:36
GILってなんでどうして必要なのはなぜ?
GvRがバカだったせい?
705デフォルトの名無しさん:2011/01/13(木) 16:17:54
参照カウンコ
706デフォルトの名無しさん:2011/01/13(木) 16:23:14
>>649
最近はsqlite3にSQLAlchemyを使って保存してる
707デフォルトの名無しさん:2011/01/13(木) 16:33:43
ORMなんて土方用ツールだろ
708デフォルトの名無しさん:2011/01/13(木) 16:51:42
さすが鬼の副長
709デフォルトの名無しさん:2011/01/13(木) 16:53:04
それひじかたやない。どかたや。
710デフォルトの名無しさん:2011/01/13(木) 16:53:15
まさにscaffoldだしな
711デフォルトの名無しさん:2011/01/13(木) 17:02:25
SQLAlchemyは良く知らんけど
djangoとかだとモデル修正したときに
syncdbしてもテーブル更新されないときがあるよね
結局自分でテーブル直接メンテしないといけなくなる
SQLAlchemyはその必要も無くなってるのかな?
712デフォルトの名無しさん:2011/01/13(木) 17:02:57
>>690
> 2)の指摘は意味不明。スレッドの「合計のCPUの使用率」?? 何を言っているんだお前はw
> 本当にGILを理解していればこんな間抜けな発言はしない

1スレッド当たりのCPU使用率5%のスレッドが15個あった場合の話だよ。
C言語でそのままスレッド使うと、たとえばLinuxのCFQスケジューラがバランス考えて
実行権を渡してくれる。
だが、GILがあるとOSのスケジューラが実行権を割り当ててくれても実行できない
スレッドがある。GIL待ちのスレッドにGILが与えられるタイミングはPythonインタプリタが
制御していて、どのスレッドにGILを渡すかのスケジューリングがおバカなので、
GILを長時間待たないといけないスレッドが出てきて、スループットが低下しなくても
応答速度が低下する事がある。

new-GIL は、GILを取得しようとしているスレッドの競合によるオーバーヘッドの低減と、
スケジューリングの見直しで、スループットと応答性能を両方向上している。
713デフォルトの名無しさん:2011/01/13(木) 17:12:44
>>698
全部、実装依存。GILを開放している部分は並列実行可能。
HTMLのパースなら、lxmlを使えば、libxml2を使っている部分はGILを開放する。

文字列処理だと、標準ライブラリの正規表現はGILを開放しないな。
短時間だけGILを開放するとむしろスレッド切り替えのオーバーヘッドが生じるし、
実行時間がごく短い事が多い正規表現処理でGILを開放するべきかどうかは微妙だな。
regexとかre2とかなら開放するかもしれない。
714デフォルトの名無しさん:2011/01/13(木) 17:24:11
>>713
なるほど
たとえばよくあるクローラみたいなものをPythonで作った場合

キューからURLフェッチ→ダウンロード→HTMLのパース/処理
→(必要に応じて)URLをキューに追加

みたいなのを、並列で走らせたいかと思うのだけど
HTMLパース/処理にある程度時間を食う場合、そこでGILで刺さって
直列化してしまうと、全体としてかなり並列度が落ちるので、
どうなるかと思っていました

lxmlに丸投げなら大丈夫の可能性が高い、という感じなのかな?
715デフォルトの名無しさん:2011/01/13(木) 17:25:04
もう飽きた。
716714:2011/01/13(木) 17:27:22
たとえばパースコードの中にGILをロックする処理があって
キューからフェッチしてDLを実行するまでの処理もGILをロックする処理がある場合、

上のスレッドのどれかがパースを実行中(GILをつかんでいる)間は、
他のスレッドが終了しても、キューからフェッチして次の処理をはじめられない
ですよね?
遊んでしまうことになる
717デフォルトの名無しさん:2011/01/13(木) 17:27:31
GILをNGワードにした方が良いな
718デフォルトの名無しさん:2011/01/13(木) 17:30:18
PythonスレでGILをNG Wordにするとか滑稽すぐる
719デフォルトの名無しさん:2011/01/13(木) 17:47:26
>>716
パースにかかる時間は、WebのI/O待ちに比べたらカスみたいなもんだから
なんの問題もない。
720デフォルトの名無しさん:2011/01/13(木) 17:50:31
>>719
要は、そこが実際に「カスといえる程度に軽い場合は」
直列化の問題を無視可能ということですね
721デフォルトの名無しさん:2011/01/13(木) 17:52:45
俺も、それと全く同じ構成のものを
エロ画像超並列ダウンローダとして作ったことがあるけど、
ちゃんと爆速で動いたよ。
722デフォルトの名無しさん:2011/01/13(木) 17:53:14
UIプログラミングではイベントコールバックは0.1秒以内に戻らなければならない
みたいなルールがあると思うけど
Pythonでは、GILを開放しない処理の場合、同様のルールに従わないと
直列化してしまう、ということになるの?

何か勘違いしてる?
723デフォルトの名無しさん:2011/01/13(木) 18:04:40
>>722
外部ライブラリーをコールする時以外でGILを明示的に解放する事はまずない
普通に書いたPythonコードはスレッドを使っても直列化は避けられない
724デフォルトの名無しさん:2011/01/13(木) 18:12:29
ところで、Pythonのスレッドって擬似スレッドだよね
725デフォルトの名無しさん:2011/01/13(木) 18:13:24
>>721
逮捕
726デフォルトの名無しさん:2011/01/13(木) 18:15:00
>UIプログラミングではイベントコールバックは0.1秒以内に戻らなければならない
>みたいなルールがあると思うけど

ねーよ
あるとしたらダブルバッファリング用に一回のVSync以内に戻らないといけないことくらい
727デフォルトの名無しさん:2011/01/13(木) 18:20:36
例のプログラムの場合は、クロール速度の大幅な向上に寄与するのは、
Web要求を並列に出すことであって、パースをマルチコアとかで並列化することではない。
そんでもって、Web要求は、実行のほとんどがI/O waitで寝てるわけだから、
実行が直列化したって速度はぜんぜん低下しない。
728デフォルトの名無しさん:2011/01/13(木) 18:24:00
>>726
こういうのを知ったかぶりの低能という。
729デフォルトの名無しさん:2011/01/13(木) 18:28:01
>>726
イベントループ妨害したら、応答性悪くなるだろうが。
730デフォルトの名無しさん:2011/01/13(木) 19:23:08
>>723
外部ライブラリーって具体的に何を指している?
ソケットやファイルを含めて、osのブロックするAPI呼び出しとかは基本的にGIL開放しているよ。
731デフォルトの名無しさん:2011/01/13(木) 19:28:07
そんな当たり前の事いわれてもなw
732デフォルトの名無しさん:2011/01/13(木) 19:36:08
角電池角電池角電池角電池角電池角電池角電池角電池角電池角電池角電池
733デフォルトの名無しさん:2011/01/13(木) 19:41:35
角電池ネタはひと月に一回ぐらいでちょうどいい
734デフォルトの名無しさん:2011/01/13(木) 19:48:24
単三電池なら中学生のときに入れてみたことがある。
735デフォルトの名無しさん:2011/01/13(木) 20:15:02
>>731
いや、当たり前なんだけど、 >>723 みたいな言い方をすると組み込みのオブジェクトを
使ってる限りはGIL開放しないように読めちゃうじゃん。
普通に書いたPythonプログラムでもGILを開放しまくる事もある。
スレッドを使うといつでもGILが邪魔してくるみたいな誤解を招く書きかたは良くない。
736デフォルトの名無しさん:2011/01/13(木) 21:37:25
結論: パフォーマンスが欲しいならCで書け。
737デフォルトの名無しさん:2011/01/13(木) 21:39:54
結論:アセンブラで書け
738デフォルトの名無しさん:2011/01/13(木) 21:44:20
結論:プログラム書いてる暇があるなら働け
739デフォルトの名無しさん:2011/01/13(木) 22:10:21
Pythonはその内部でCで書かれた部分を呼び出す時は可能ならばGILを開放しているんだよ!
だからPythonのスレッドは並列性が確保されてるんだよ!

とでも言いたいのか?

組込み処理のホトンドはPythonで書かれたものでCの部分なんて非常に少ないぜ
それで並列性が十分に確保される訳がないだろうに
そもそも自分の書いたPythonソースに並列性を持たせられない時点で意味無いだろう
もうねアホかと・・・
740デフォルトの名無しさん:2011/01/13(木) 22:17:36
ちょっと何を言ってるのか分からないですね
741デフォルトの名無しさん:2011/01/13(木) 22:35:02
>>739
お前マジで、アスペルガー症候群の典型例だから、
精神科でウェクスラー式知能検査受けてみたほうがいいよ。
742デフォルトの名無しさん:2011/01/13(木) 22:40:41
インフラはC++でやれよ
業務でも趣味でもそれが当たり前
743デフォルトの名無しさん:2011/01/13(木) 22:45:09
このレベルだと、自分では気づかないだろう。
744デフォルトの名無しさん:2011/01/13(木) 22:48:20
C++使うとリーナスがキレるし。
個人的にもあれは終わってる言語だと思う。
745デフォルトの名無しさん:2011/01/14(金) 00:36:15
リーナスC++嫌ってるの?
746デフォルトの名無しさん:2011/01/14(金) 00:40:08
http://kerneltrap.org/node/2067

kernel開発においてって文脈を考慮する必要はあるが
747デフォルトの名無しさん:2011/01/14(金) 01:01:32
git開発でもc++野郎にキレてた
748デフォルトの名無しさん:2011/01/14(金) 01:13:11
C++嫌ってない奴なんているの?
749デフォルトの名無しさん:2011/01/14(金) 01:32:01
>>744
結局、今はLinuxカーネルの開発でC++は使われまくってるらしいよ
750デフォルトの名無しさん:2011/01/14(金) 02:28:43
>>749
少なくともlinuxカーネルのソースツリーの中には、
C++のプログラムはkconfigのQt版のソースコードしかないよ?
linuxカーネルのソースコードは全てC言語とアセンブラ。
751デフォルトの名無しさん:2011/01/14(金) 09:14:16
何で嫌ってるの?
C++使ったことないけど
752デフォルトの名無しさん:2011/01/14(金) 09:20:04
使いづらいからだろ。リナッカーはwinですら不自由だと騒いでるぐらいだからな
753デフォルトの名無しさん:2011/01/14(金) 09:44:34
C++は言語研究の為の言語
754デフォルトの名無しさん:2011/01/14(金) 09:44:59
C++はじゃじゃ馬
乗りこなせれば言うことを聞く
要するに騎手の腕次第

Winは糞だが必要以上にWinを攻撃するLinuxerも糞
755デフォルトの名無しさん:2011/01/14(金) 09:48:07
Winのどこが糞なのか
MSの軟化はLinuxersのおかげってか
756デフォルトの名無しさん:2011/01/14(金) 10:23:47
C++は、たとえばある人は例外使って別の人は例外使わずなるべく戻り値でエラー返したり、
人ごとに膨大な言語機能のサブセットを勝手に定義して使う言語だから、
多人数が参加するプロジェクトではコーディング規約をガッチリ決めないと
サブセットの定義の違いが混乱をもたらす。
一人で使ってる分には問題ない。
757デフォルトの名無しさん:2011/01/14(金) 10:25:46
そういやC++好きには孤独好きが多い気がする
758デフォルトの名無しさん:2011/01/14(金) 10:28:15
prologよりまし
759デフォルトの名無しさん:2011/01/14(金) 11:56:04
一体何のスレだよと突っ込んでやろう
760デフォルトの名無しさん:2011/01/14(金) 12:04:56
ニシキヘビについて学習するスレです
761デフォルトの名無しさん:2011/01/14(金) 12:07:16
こんなの見つけた
ttp://www2s.biglobe.ne.jp/~nass/
762デフォルトの名無しさん:2011/01/14(金) 12:07:17
このスレの半分はPythonの話題でできています
763デフォルトの名無しさん:2011/01/14(金) 12:08:18
>>761
ぱそこんがぶつこわれた
764デフォルトの名無しさん:2011/01/14(金) 16:52:26
バカが忙しくしてると静かでいいわ(ww
765デフォルトの名無しさん:2011/01/14(金) 18:50:52
なにいってんだこいつ

と言ってみる
766デフォルトの名無しさん:2011/01/14(金) 23:11:04
仕事で PyQt やってたら、いつのまにか C++ 屋になれた
767デフォルトの名無しさん:2011/01/14(金) 23:16:21
なれたと思ってるのは自分だけw
768デフォルトの名無しさん:2011/01/15(土) 01:54:07
>>766
Qtのソースコードは綺麗だからね。
いい勉強にはなると思う。
769デフォルトの名無しさん:2011/01/15(土) 01:58:00
俺のソースコードが一番美しい。もはや文芸的と言っても過言ではない
770デフォルトの名無しさん:2011/01/15(土) 02:00:02
>>769
おうお前のソースコードに誤り見つけたぞ
小切手よこせよおう
771デフォルトの名無しさん:2011/01/15(土) 02:01:33
うp
772デフォルトの名無しさん:2011/01/15(土) 02:51:02
うっぷっぷ
773デフォルトの名無しさん:2011/01/15(土) 09:40:58
python.jpのドキュメントが見れないね
ここからHTMLやCHM版が落とせるよ
http://sourceforge.jp/projects/pythonjp/releases/
774デフォルトの名無しさん:2011/01/15(土) 09:44:34
ver3はないのヵ
775デフォルトの名無しさん:2011/01/15(土) 16:33:58
776デフォルトの名無しさん:2011/01/15(土) 16:38:11
777デフォルトの名無しさん:2011/01/15(土) 17:05:54
>>776
作りかけのは全滅だよ
778デフォルトの名無しさん:2011/01/15(土) 18:01:57
http://www.python.jp/doc/nightly/index.html
プロはないとりーしか見ない
779デフォルトの名無しさん:2011/01/15(土) 18:10:22
>>778
最終更新日をよく見ろ
780デフォルトの名無しさん:2011/01/15(土) 18:16:58
くっ!
781デフォルトの名無しさん:2011/01/16(日) 00:04:28
日本語のやつ、訳者によってクオリティが違いすぎ。
782デフォルトの名無しさん:2011/01/16(日) 00:27:48
>>781
ボランティアなんだから、文句あるなら自分で訳し直してくれ。

オレの場合、翻訳作業はほとんどWikipedia間でやってしまうな。
クオリティーのコントロールが人にかかわらず自由にできるし。

まあPython関係の翻訳はまだ特に始めてないんだけどね。
783デフォルトの名無しさん:2011/01/16(日) 00:43:55
英語で十分だ
みんなもそうだろう?
784デフォルトの名無しさん:2011/01/16(日) 01:40:58
経済とか政治とかの英語はさっぱりだけど
CSに関連する英語ならまだ判り易い方だと思う
785デフォルトの名無しさん:2011/01/16(日) 03:43:30
>>782
ボランティアだからこそちゃんとやってくれって思うけどな
786デフォルトの名無しさん:2011/01/16(日) 05:53:53
MSDNと比べてどっちがひどい?
787デフォルトの名無しさん:2011/01/16(日) 10:56:29
日本語ドキュメントはWikiみたいになってると良いな。
誰でも編集可なら修正する。
788デフォルトの名無しさん:2011/01/16(日) 12:04:52
>>782
そんなことできるの?Wikipediaってサイトの固有名でしょ?
789デフォルトの名無しさん:2011/01/16(日) 12:10:58
>>788
Wikipediaの英語版から日本語版に1ページ分まるごと翻訳する。
技術的な記事やオープンソースのソフトの記事とか、
そうそう他の人から修正が入るわけでもないので、自分の固有の記事状態。

とはいえ報酬が得られるわけでもないし、自己満足だけどね。
790デフォルトの名無しさん:2011/01/16(日) 12:53:51
>>789
そんな感覚でやるやつがいるから、品質が悪いんだろうな
791デフォルトの名無しさん:2011/01/16(日) 13:07:03
単なるWikipediaの翻訳の話じゃねぇか。
792デフォルトの名無しさん:2011/01/16(日) 14:51:41
op.py
793デフォルトの名無しさん:2011/01/16(日) 15:23:04
gobject.io_add_watchに追加したものを解除したいのですが、どうしたらいいでしょうか
794デフォルトの名無しさん:2011/01/16(日) 15:29:11
マニュアルに書いてあるよ
callbackがFalseを返すか、io_add_watchの戻り値を保存しておいてgobject.source_removeすればいい
795デフォルトの名無しさん:2011/01/16(日) 22:08:42
>>790
そんな感覚でやるやつがいるから、充実してるの。
ちゃんとプロにやらそうとしたら金がかかるし、利用者もタダじゃ使えなくなる。
796デフォルトの名無しさん:2011/01/17(月) 03:12:36
プロで金払ってたら文句も言えるが、ボランティアだから仕方ないとか言ってたら品質は落ちる一方でしょ
Wikipediaも翻訳者とか執筆者雇ってるしね
797デフォルトの名無しさん:2011/01/17(月) 03:13:58
turtleで絵を描いてみたのですが
これをファイルに保存するにはどうすればよいですか?
PrintScreenとかじゃなくてPythonスクリプト内で処理したいです
798デフォルトの名無しさん:2011/01/17(月) 04:05:01
個人的には「肛門わさび注入」ですかね
痛気持ちいい感じです
ただやりすぎると取り返しのつかないことに....
799デフォルトの名無しさん:2011/01/17(月) 06:02:02
アナルケア
800デフォルトの名無しさん:2011/01/17(月) 09:06:43
>>796
それを問題だと思った奴が直せばいいだけの話。
801デフォルトの名無しさん:2011/01/17(月) 09:42:12
犬の糞お断り
802デフォルトの名無しさん:2011/01/17(月) 09:49:43
朝っぱらから喧嘩すんなよカス共。死ねボケ
803見習い:2011/01/17(月) 09:54:11
すみません。
宿題やってください。
804デフォルトの名無しさん:2011/01/17(月) 11:44:45
クソコテの宿題はしません
805デフォルトの名無しさん:2011/01/17(月) 12:28:56
>>792
chip.py
806デフォルトの名無しさん:2011/01/17(月) 14:18:13
>>800
最初から翻訳しなければいいだけ
807デフォルトの名無しさん:2011/01/17(月) 14:39:55
ユーザーコミュニティに公的な信憑性は全くないよ
それを信じるかどうかは人それぞれ
808角電池:2011/01/17(月) 16:05:44
お前ら、ケツの穴が小せえなあ。
809デフォルトの名無しさん:2011/01/17(月) 16:24:12
自慢じゃないがでかいよ
810デフォルトの名無しさん:2011/01/17(月) 16:30:15
>>809
はやくそのバルバドスホソメクラヘビみたいなのしまえよ
811デフォルトの名無しさん:2011/01/17(月) 17:21:34
>>797
canv = turtle.getcanvas()
でCanvasインスタンスが取れるので、
canv.postscript(file="out.ps")
とやればPostScript形式で取れる。
GIFやPNGに変換する方法は知らん。
PIL使うとできるのかな?
812デフォルトの名無しさん:2011/01/17(月) 18:44:12
肛門にニオブ電池を突っ込むと痔の治りが早くなる
813デフォルトの名無しさん:2011/01/17(月) 18:46:35
>>811
>>> c = turtle.getcanvas()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'getcanvas'
だめぽいです
814デフォルトの名無しさん:2011/01/17(月) 19:02:26
バージョンいくつなんだらう
815デフォルトの名無しさん:2011/01/17(月) 19:07:54
>>813
いや、あるぞ。Pythonのバージョンが古すぎるんじゃね?


>>> import turtle
>>> help(turtle.getcanvas)
Help on function getcanvas in module turtle:

getcanvas()
  Return the Canvas of this TurtleScreen.

  No argument.

  Example:
  >>> cv = getcanvas()
  >>> cv
  <turtle.ScrolledCanvas instance at 0x010742D8>

>>>
816デフォルトの名無しさん:2011/01/17(月) 19:10:02
python2.5です
pythonのバージョンをあげずにturtleのバージョンだけあげるにはどうすればよいですか?
817デフォルトの名無しさん:2011/01/17(月) 19:12:57
ttp://www.python.jp/doc/2.5/lib/module-turtle.html
2.5には・・・なさげ。2.6からか。
818デフォルトの名無しさん:2011/01/17(月) 19:23:14
Python2.5でも
t = turtle.Turtle()
canv = t._canvas
で取れるじゃん。
819デフォルトの名無しさん:2011/01/17(月) 19:27:37
820デフォルトの名無しさん:2011/01/17(月) 20:28:48
だめぽorz
>>> import turtle
>>> t = turtle.Turtle()
>>> t.forward(200)
>>> t.left(120)
>>> t.forward(200)
>>> t.left(120)
>>> t.forward(200)
>>> c = t._canvas
>>> c.postscript(file='hoge.eps')
''
>>> from PIL.EpsImagePlugin import EpsImageFile
>>> img = EpsImageFile('hoge.eps')
>>> img.show()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python25\lib\site-packages\PIL\Image.py", line 1449, in show
    _showxv(self, title, command)
  File "C:\Python25\lib\site-packages\PIL\Image.py", line 2082, in _showxv
    file = image._dump(format=format)
  File "C:\Python25\lib\site-packages\PIL\Image.py", line 476, in _dump
    self.load()
  File "C:\Python25\lib\site-packages\PIL\EpsImagePlugin.py", line 283, in load
    self.im = Ghostscript(self.tile, self.size, self.fp)
  File "C:\Python25\lib\site-packages\PIL\EpsImagePlugin.py", line 72, in Ghostscript
    gs.write(s)
IOError: [Errno 0] Error
821デフォルトの名無しさん:2011/01/17(月) 20:39:52
Ghostscriptをインストールしてないんだろ
822デフォルトの名無しさん:2011/01/17(月) 21:19:19
ファイルの扱いについて勉強しているのですが、テキストファイルから指定行を削除するというのは、
どのように行えるでしょうか?

ファイル全てを読み込みループで回しながら書き込み指定行を抜く
ファイルを1行ずつ読み込みながら指定行をスキップしてループで書き込む

と考えついたのですが、他にもっとスムーズに行える方法はありませんか?
823デフォルトの名無しさん:2011/01/17(月) 21:29:23
sedを呼ぶ
824デフォルトの名無しさん:2011/01/17(月) 21:53:23
>>821
GhostscriptはEpsImagePluginの中にあるみたいですが違うんでしょうか?
825デフォルトの名無しさん:2011/01/17(月) 21:55:38
>>822
テキストファイルを一括で読み込んで、改行コードでsplitして、指定した行を配列から取り除いて、再びjoinする。
そして書きだす。

上の行は長いけど1行で書けるよ。
826デフォルトの名無しさん:2011/01/17(月) 22:05:40
827デフォルトの名無しさん:2011/01/17(月) 22:13:38
>>824
http://ja.wikipedia.org/wiki/Ghostscript
あと、Ghostscript入れてもWindows上のPILじゃ使えないから
828デフォルトの名無しさん:2011/01/17(月) 22:20:29
>>826
ありがとうございます
教えて頂いたものを入れて試してみましたが駄目でした

>>827
まじですか?
諦めるしかないのでしょうか?
829デフォルトの名無しさん:2011/01/17(月) 22:26:43
>>828
PATHは通した?何がどうだめだったのかちゃんと書いてね

試してないけどEpsImagePlugin.pyのos.popen前、
" >/dev/null 2>/dev/null"のあたりを弄れば動くかな
830デフォルトの名無しさん:2011/01/17(月) 22:27:56
>>828
せっかくPythonのライブラリはオープンソースなんだから、
自分でソースコードを追っかけてみようよ。

PILのGostScriptの最終的な出力は
EpsImagePlugin.pyで行っていて、ここで gs という外部コマンドを呼び出しているように見える。

だから、gsのプログラムをどこかで入手して、PATHに通したら動くんじゃね?
お手軽なのは、cygwinとかかな。
831デフォルトの名無しさん:2011/01/17(月) 22:47:42
>>829
すみません
エラーメッセージは控えていなかったのですが
python 用の ghostscript 0.3 を入れて import ghostscript したら
何かの DLL が登録されていないみたいなエラーが出たので
Windows 用の Ghostscript をインストールしたところ
import ghostscript でエラーは出なくなりました
しかし EpsImageFile('hoge.eps').show() で出るエラーは変わりませんでした

PATH は通してないですが Windows 用の Ghostscript の bin の中に
gswin32c.exe というファイルがあったので
それを C:\python25 の中に gs.exe という名前でコピーしました
しかし EpsImageFile('hoge.eps').show() で出るエラーは変わりませんでした

おっしゃるように
    # Build ghostscript command
    command = ["gs",
               "-q", # quite mode
               "-g%dx%d" % size, # set output geometry (pixels)
               "-dNOPAUSE -dSAFER", # don't pause between pages, safe mode
               "-sDEVICE=ppmraw", # ppm driver
               "-sOutputFile=%s" % file,# output file
               "- >/dev/null 2>/dev/null"]
の最後の部分があやしそうですね

>>830
ヒントありがとうございます
832デフォルトの名無しさん:2011/01/17(月) 22:58:44
>>822
itertools.ifilterfalse()を使う。

import itertools

f = open(filename)
for line in itertools.ifilterfalse(lambda l: l.startswith("#"), f):
print(line)
833デフォルトの名無しさん:2011/01/17(月) 23:00:49
お前らセックスしてるか?
キモいメガネかけてないで、セックスしろよ!
834デフォルトの名無しさん:2011/01/17(月) 23:05:49
python.jpっていまつながる?
proxy errorってでてる。
835デフォルトの名無しさん:2011/01/17(月) 23:05:54
>>831 の続きです
>PATH は通してないですが Windows 用の Ghostscript の bin の中に
>gswin32c.exe というファイルがあったので
>それを C:\python25 の中に gs.exe という名前でコピーしました
を実行した後に
EpsImagePlugin.py の
    command = string.join(command)

    command = string.join(command[:-1])
に変更したら Windows Vista でも動作しました

import turtle
from PIL.EpsImagePlugin import EpsImageFile
t = turtle.Turtle()
t.forward(200)
t._canvas.postscript(file='hoge.eps')
img = EpsImageFile('hoge.eps')
img.save('hoge.png', 'PNG')

本当にありがとうございました
836デフォルトの名無しさん:2011/01/17(月) 23:13:01
やればできるじゃないか
837デフォルトの名無しさん:2011/01/17(月) 23:26:32
↑何様?
838デフォルトの名無しさん:2011/01/17(月) 23:37:17
咲様
839デフォルトの名無しさん:2011/01/18(火) 02:06:59
どうみても精子です。
840デフォルトの名無しさん:2011/01/18(火) 02:56:54
>>806
むしろお前が読まなければいいだけ。
841デフォルトの名無しさん:2011/01/18(火) 04:15:07
os.fork() って Windows では使えないんでしょうか?
842デフォルトの名無しさん:2011/01/18(火) 05:06:14
オンラインリファレンスくらい読め
843デフォルトの名無しさん:2011/01/18(火) 08:25:24
お前が読んで教えろ
844デフォルトの名無しさん:2011/01/18(火) 08:48:09
845デフォルトの名無しさん:2011/01/18(火) 10:54:41
os.fork()
Availability: Unix ←←←←←←←←←←←

846デフォルトの名無しさん:2011/01/18(火) 11:17:06
cygwin版なら一応使えるよ
847デフォルトの名無しさん:2011/01/18(火) 11:57:16
Windows sucks!
848デフォルトの名無しさん:2011/01/18(火) 12:50:27
>>847
THX
849デフォルトの名無しさん:2011/01/18(火) 14:27:16
>>840
Wikipediaの記事の制作/編集規定読んだか?
850デフォルトの名無しさん:2011/01/18(火) 14:32:47
python.jp、やっと復活
851デフォルトの名無しさん:2011/01/18(火) 15:19:13
まだWikipediaの話してんのかよ。
852デフォルトの名無しさん:2011/01/18(火) 16:01:23
Wikipediaの筆者は高慢ちき
ソースはWikipedia
853デフォルトの名無しさん:2011/01/18(火) 16:02:11
Wikipediaの話してる奴は一般のWikiシステムとWikipediaという一Webサイトの区別ができてないんじゃないか?
854デフォルトの名無しさん:2011/01/18(火) 16:03:00
[要出典]
855デフォルトの名無しさん:2011/01/18(火) 16:06:26
>>853
そもそも>>781がPythonの日本語リソースの話だってことが
アホの>>782には理解できていないんだと思われ。
856デフォルトの名無しさん:2011/01/18(火) 16:11:16
やはり英語力は重要だな。辞書引きながらの訳じゃ逆に迷惑だ
857デフォルトの名無しさん:2011/01/18(火) 16:12:39
>>855
要するにWikipediaの言語間の翻訳のように形で
手作業の査読を通さずWikiの仕組みを使って
リアルタイムに翻訳記事の更新できるようにしたらどうか、
という話をしたかったんだけど、理解してもらえなかったようだ。
858デフォルトの名無しさん:2011/01/18(火) 16:15:00
>>857
最初から、ちゃんとそう説明しろよw
859デフォルトの名無しさん:2011/01/18(火) 16:44:29
TSVでデータを保存しようと思うのですが、入力データの改行を置き換えるのに効率的な方法はありますか?
860デフォルトの名無しさん:2011/01/18(火) 16:58:35
タプルから区切り文字を指定して文字列に変換する方法があったかと思うのですが、
なんという関数か覚えられている方はいらっしゃいませんでしょうか?

("a", "b", "c")
というタプルから
"a/b/c"
という文字列を作る処理をかんがえております。
forを使えば実現できますが、処理が用意されているのであればそれを使おうとかんがえております。
861デフォルトの名無しさん:2011/01/18(火) 17:10:26
>>860
'/'.join(('a', 'b', 'c'))
862デフォルトの名無しさん:2011/01/18(火) 18:05:24
>>859
とりあえず正規表現でいいんじゃね
863デフォルトの名無しさん:2011/01/18(火) 18:41:39
>>859
s = r"""he\\o
world"""
# escape
s = s.replace('\\', r'\\')
s = s.replace('\n', r'\n')
# unencape
s = s.replace(r'\n', '\n')
s = s.replace(r'\\', '\\')
864デフォルトの名無しさん:2011/01/18(火) 18:46:12
>>863
だめやん
865デフォルトの名無しさん:2011/01/18(火) 18:55:06
すまん、野暮かもしれんが教えてくれ
>2010年12月8日(水)午後7時より,「帰ってきたPython Wrokshop 2010/12」を開催します。
Wrokshopっていうワークショップなのか単なる誤字なのかを
866デフォルトの名無しさん:2011/01/18(火) 19:08:37
>>863
# escape
s = s.replace('\\', r'\\').replace('\n', r'\n').replace('\t', r'\t')
# unencape
try:
ma = {'\\': '\\', 'n': '\n', 't': '\t' }
s = re.sub(r'\\(.)', lambda m: ma[m.group(1)], s)
print s
except KeyError:
# error
867デフォルトの名無しさん:2011/01/18(火) 19:09:08
なんか、デジャブ
868デフォルトの名無しさん:2011/01/18(火) 19:17:01
string_escapeエンコーディング使えよ
http://www.python.jp/doc/release/library/codecs.html#standard-encodings
869デフォルトの名無しさん:2011/01/18(火) 19:44:59
いつのまにかSphinxになったのね。
870デフォルトの名無しさん:2011/01/18(火) 19:54:51
はい。
871デフォルトの名無しさん:2011/01/18(火) 20:11:44
>>857
> オレの場合、翻訳作業はほとんどWikipedia間でやってしまうな。

がそんな意味になるわけねーだろww
872デフォルトの名無しさん:2011/01/18(火) 23:25:09
おまえらショボいコードばっかり書いてないで毎晩セックスしろよ!
873デフォルトの名無しさん:2011/01/18(火) 23:32:33
セックスばっかりしてないで少しはまともなコード書けと言うべき
874アッー:2011/01/18(火) 23:35:56
アッー
875デフォルトの名無しさん:2011/01/18(火) 23:50:53
python初心者です。valueがリストである辞書オブジェクトの差分を取るのにもっといい方法がないか考えてます。

a= {'tokyo':[1,2,3]}
b= {'tokyo':[1,2,4]}

とあった場合、取りあえずvalueを取り出してset(value_a)-set(value_b)で差分を取ってます。もっといい方法はないでしょうか。
876デフォルトの名無しさん:2011/01/19(水) 00:03:00
そうするしかないんじゃない?
877デフォルトの名無しさん:2011/01/19(水) 00:12:58
まずは辞書オブジェクトの差分を定義しよう
878デフォルトの名無しさん:2011/01/19(水) 02:00:29
>>875
アプリ全体で方々で使うなら、その動きをclass化してもいいかもね。
879デフォルトの名無しさん:2011/01/19(水) 04:52:58
dict(itertools.imap(lambda (k,v):(k,[x for x in v if x not in b[k]]), a.iteritems()))
880デフォルトの名無しさん:2011/01/19(水) 13:45:16
おやすみ(^o^)/
881デフォルトの名無しさん:2011/01/19(水) 19:09:05
いい夢見ろよ。
882デフォルトの名無しさん:2011/01/21(金) 03:13:14
Pythonの勉強として掲示板などを作成しております。

HTML FormよりPOSTを受け取りたく
fm = cgi.FieldStorage()
name = fm["name"].value
と記述しているのですが、
<input type="text" name="name">
に入力があればいいのですが、空でPOSTされるとキーエラーが出てしまいます。

これはどのように処理すべきなのでしょうか?
からであれば"name"には""をいれたいとかんがえております。

tryを使って例外処理をするのでしょうか?
883デフォルトの名無しさん:2011/01/21(金) 03:22:49
>>882
ttp://www.python.jp/doc/release/library/cgi.html#cgi.FieldStorage.getfirst
を使うとか予め「"key" in FieldStorageInstance」とかするとか。
884デフォルトの名無しさん:2011/01/21(金) 03:28:33
リストに入っているデータの順番をひっくり返す方法はありませんか。
[1,3,2]を[2,3,1]にしたいです。
885デフォルトの名無しさん:2011/01/21(金) 03:36:09
>>883
ありがとうございます
そのページを読んでみます
886デフォルトの名無しさん:2011/01/21(金) 03:59:41
name = fm.getvalue('name', '')
887デフォルトの名無しさん:2011/01/21(金) 04:00:21
>>882
WSGI 使え
888デフォルトの名無しさん:2011/01/21(金) 04:07:42
>>884

>>> a=[1,3,2]
>>> a.reverse()
>>> a
[2, 3, 1]
889デフォルトの名無しさん:2011/01/21(金) 04:11:14
>>884

>>> a=[1,3,2]
>>> b=reversed(a)
>>> [c for c in b]
[2, 3, 1]
890デフォルトの名無しさん:2011/01/21(金) 14:06:48
Pythonで末尾再帰最適化をする。
http://d.hatena.ne.jp/wasabiz/20110118/1295335821

Pythonによるデコレータの見本ですのう。
891デフォルトの名無しさん:2011/01/21(金) 15:09:14
再帰関数の書き方によってはうまく動かないじゃないかこれ
892デフォルトの名無しさん:2011/01/21(金) 15:30:15
>>890
これはよい情報だ
893デフォルトの名無しさん:2011/01/21(金) 15:42:04
>>891
たとえば?
894デフォルトの名無しさん:2011/01/21(金) 16:01:32
黒魔術はPythonicじゃない...
895デフォルトの名無しさん:2011/01/21(金) 16:08:50
黒python
896デフォルトの名無しさん:2011/01/21(金) 17:28:53
なぜPythonのtimeは浮動小数点数を返すのですか?
これをint()してしまえば秒までのtimeになるのでしょうか
897デフォルトの名無しさん:2011/01/21(金) 18:05:07
>>896
数百ナノ秒単位で返されても
どうせ扱いやすい秒単位に直すからでしょ
898デフォルトの名無しさん:2011/01/21(金) 19:42:29
intだけど実質longになっちゃうよね
899デフォルトの名無しさん:2011/01/21(金) 23:40:43
もう業務アプリは嫌だお。
900デフォルトの名無しさん:2011/01/22(土) 01:05:18
お前らくだらないコードとかつまらないブログ書いてないでセックスしてるのか?
今年に入ってから何回セックスした?
901デフォルトの名無しさん:2011/01/22(土) 01:08:48
いちいち数えてない
902デフォルトの名無しさん:2011/01/22(土) 01:22:25
>>900
3回くらいかな

そういえば、今年に入ってからブログを書いてなかった。ありがとう。
903デフォルトの名無しさん:2011/01/22(土) 01:38:55
またruby厨が荒らしてますね
904デフォルトの名無しさん:2011/01/22(土) 01:40:01
PythonにはPerlのstrictとかwarningモジュールみたいなのないの?
変数名間違って死にかけたんだが
905デフォルトの名無しさん:2011/01/22(土) 02:26:04
mainでくくったらいいよ
906デフォルトの名無しさん:2011/01/22(土) 03:15:55
IDEに頼ればいいんじゃね
907デフォルトの名無しさん:2011/01/22(土) 09:08:58
pycheckerをつかう。
908デフォルトの名無しさん:2011/01/22(土) 09:21:24
pylint
909デフォルトの名無しさん:2011/01/22(土) 15:14:56
オライリーの本って、

初めてのXXXX or 入門XXXX
↑薄い、多言語は経験済みって人向け
プログラミングXXXX
↑とにかく詳しくて分厚い、たまに詳説とか詳解とかつく

って命名が多い気がするんだけど、python本はなんか違うよね
910デフォルトの名無しさん:2011/01/22(土) 15:20:36
なぜならpythonは特別な存在だから
911デフォルトの名無しさん:2011/01/22(土) 15:44:40
変数名を間違えたら普通例外が出ると思うのだが
一体どういう状況だ?
912デフォルトの名無しさん:2011/01/22(土) 15:46:57
>>911
存在しない変数の値を参照しようとしたら例外が出るが
既存の変数に代入するつもりで名前を間違えた場合は
そういう名前の変数がつくられるだけで例外は出ないよ
913デフォルトの名無しさん:2011/01/22(土) 16:05:54
やっぱりlintですね
914デフォルトの名無しさん:2011/01/22(土) 16:12:42
>>910
今ではわたしがおじいさん(ry
915デフォルトの名無しさん:2011/01/22(土) 16:51:09
なんだキャンディーの宣伝か乙
916デフォルトの名無しさん:2011/01/22(土) 17:04:37
入門自然言語処理でPythonの勉強なりますか?
917デフォルトの名無しさん:2011/01/22(土) 17:18:00
自然言語でおk
918デフォルトの名無しさん:2011/01/22(土) 17:40:22
おkです。
どっちも勉強したいのですが少しかじった程度でも嫁ますか?
919デフォルトの名無しさん:2011/01/22(土) 19:04:13
>>559の図の書き方が今でも気になっている
920デフォルトの名無しさん:2011/01/22(土) 20:45:29
Inkscapeでムリヤリ描いたんだろう。
921デフォルトの名無しさん:2011/01/22(土) 21:05:37
for a in b:
  while a < 100:
    print '''なんとかかんとか
ああだこうだ
どうしたこうした
"""
↑トリプルクォーテーション使った書き方ってこうだよね?
若干ムズムズするんだけどこれ以外どうにもならない?
922デフォルトの名無しさん:2011/01/22(土) 21:23:30
pythonは楽しいなぁ
なんでこんなに楽しいんだろう
923デフォルトの名無しさん:2011/01/22(土) 21:24:56
何を求めてるのか分からない
924デフォルトの名無しさん:2011/01/22(土) 21:29:48
(^o^)/オヤスー
925デフォルトの名無しさん:2011/01/22(土) 22:38:34
私はPythonを続けるよ!
926デフォルトの名無しさん:2011/01/22(土) 22:47:13
>>916
Python未経験で今その本を読んでるところだけど問題なく読める
他の言語を知ってる人にはむしろ説明がくどいくらい
でもオブジェクト指向は範囲外と書いてあるからPython自体の習得が目的なら
あまり期待しないほうがいいかもしれない
927デフォルトの名無しさん:2011/01/22(土) 22:56:56
集合知プログラミングはちょっと読んだけど、自然言語処理もAPIをたくさんダウンロードするの?
sqliteとかnumpyを扱ってくれるのは嬉しいけどdeliciousのAPIの使い方を覚えてもいつ使うのか分からんしって感じだった
928デフォルトの名無しさん:2011/01/22(土) 23:02:40
あれは学生にnumpyとmatplotlibを布教するための本。
929921:2011/01/22(土) 23:05:11
間違えてた

for a in b:
  while a < 100:
    print '''なんとかかんとか
ああだこうだ
どうしたこうした
'''

こうか・・・で、このインデントの掻痒感はどうにかならないの?
930デフォルトの名無しさん:2011/01/22(土) 23:25:53
文字列を変数として定義すればいいんでは
931デフォルトの名無しさん:2011/01/22(土) 23:32:56
インデントの話題ならインデントのスレで
http://hibari.2ch.net/test/read.cgi/tech/1169473442/
932デフォルトの名無しさん:2011/01/22(土) 23:48:58
世界中で考えてもまだ2.xより3.xで書いてる人ってまだ少ないよね?
いつまでこの現象続くの?
933デフォルトの名無しさん:2011/01/22(土) 23:59:28
しるかよ
934デフォルトの名無しさん:2011/01/23(日) 00:01:31
Ruby が 2 になるまでさ
935デフォルトの名無しさん:2011/01/23(日) 00:26:59
Python2軍は永遠に不滅です。
936デフォルトの名無しさん:2011/01/23(日) 00:48:54
ruby派の荒らしか、また
937デフォルトの名無しさん:2011/01/23(日) 06:49:05
なんていうかPythonて2.7で完成していて、3.xへ移行するメリットがないのかなって思ってるんです。
もうずっと2.7でいいじゃんって世界中が思ってるみたいな。
938デフォルトの名無しさん:2011/01/23(日) 06:53:29
そうなる可能性もある

うにこーど文字列とバイナリの区別は嬉しいけど
939デフォルトの名無しさん:2011/01/23(日) 07:07:04
FrugalwareやArchに続けよ
いや続いてよお願いだから
940デフォルトの名無しさん:2011/01/23(日) 07:38:48
Python3に移行するのはそんなに難しくない
自作プログラムなら数時間でできるレベル
だけど使っているサードパーティーのライブラリーが対応してないと厳しいよね
941デフォルトの名無しさん:2011/01/23(日) 11:55:48
Google app engineが3.xに対応してくれればなぁ
942デフォルトの名無しさん:2011/01/23(日) 13:09:44
>>937
至言。
943デフォルトの名無しさん:2011/01/23(日) 13:31:45
2.7.1
2.7.2
2.7.3
:
2.7.999
944デフォルトの名無しさん:2011/01/23(日) 13:59:21
2.8に限りなく近づくけど越えられないのか
945デフォルトの名無しさん:2011/01/23(日) 15:08:29
2.8に漸近する
946デフォルトの名無しさん:2011/01/23(日) 15:31:14
Python 2.7 2nd Edition とか Python 2.7 mkU とかでるよ
947デフォルトの名無しさん:2011/01/23(日) 15:32:58
Python Ultimate Edition
Python Enterprise Edition
Python Premium Edition
Python Professional Edition
Python HomePremium Edition
Python Basic Edition
Python Compact Edition
iPython Professional Edition With Python Professional Edition (Upgrade)
948デフォルトの名無しさん:2011/01/23(日) 15:38:17
2.7.1828182845904523536 ...
949デフォルトの名無しさん:2011/01/23(日) 15:55:18
Python Basic Editionでは、
同時に使えるモジュールは3つまでに制限されます。
950デフォルトの名無しさん:2011/01/23(日) 16:00:34
きっついなー
それ
951デフォルトの名無しさん:2011/01/23(日) 16:06:44
Windows Vistaにそういうパッケージあったな。
途上国向けで、ウインドウが3つしか開けないっていう鬼畜。
952デフォルトの名無しさん:2011/01/23(日) 16:08:53
いまでもOfficeのデフォは全画面だし
同時にひとつしか開けない情報途上者ばかりだ
953デフォルトの名無しさん:2011/01/23(日) 16:09:53
iPhone の悪口はそこまでだ
954デフォルトの名無しさん:2011/01/23(日) 16:10:09
あ?俺の悪口はやめろよ
955デフォルトの名無しさん:2011/01/23(日) 16:50:20
もっとメモリ産業に貢献しろ
956デフォルトの名無しさん:2011/01/23(日) 16:51:05
お前がiPhoneか
957デフォルトの名無しさん:2011/01/23(日) 17:42:02
漏れは iPhoge だ
958デフォルトの名無しさん:2011/01/23(日) 20:08:20

          / ̄ ̄ ̄\
         /   ⌒  ⌒ ヽ
         /   ( ●)(●) |
         |    (__人__) }   うーっす
        /、.    ` ⌒´  ヽ
       /            |
       |           | /
       ヽ_|  ┌──┐ |丿
         |  ├──┤ |
         |  ├──┤ |
959デフォルトの名無しさん:2011/01/23(日) 20:41:25
寂しいお。
960デフォルトの名無しさん:2011/01/23(日) 21:25:51
try: sex()
961デフォルトの名無しさん:2011/01/23(日) 21:30:06
>>960
そのコードバグあるぞ
例外吐くんだが・・・
962デフォルトの名無しさん:2011/01/24(月) 01:26:37
童貞未経験者ってことだよ
言わせんな恥ずかしい//
963デフォルトの名無しさん:2011/01/24(月) 01:46:49
筆下ろしに興味があるということですか…それはそれは
964デフォルトの名無しさん:2011/01/24(月) 01:48:24
もうそういうの飽きた。もっと上品なジョークが見たい
965デフォルトの名無しさん:2011/01/24(月) 02:39:52
無理でし。
966デフォルトの名無しさん:2011/01/24(月) 09:16:32
from riajuu import sex

NameError: global name 'riajuu' is not defined

こうですかわかりません
967デフォルトの名無しさん:2011/01/24(月) 09:25:34
if real.is_satisfid() then
968デフォルトの名無しさん:2011/01/24(月) 09:33:03
上品なジョークとか言われて頭パンクして綴りをナチュラルに間違えるのはやめろ
969デフォルトの名無しさん:2011/01/24(月) 11:29:47
970デフォルトの名無しさん:2011/01/24(月) 12:56:40
覚えているお前にびっくりだよ
971デフォルトの名無しさん:2011/01/24(月) 13:13:20
おまえ本人だろ
972デフォルトの名無しさん:2011/01/24(月) 13:22:50
python.jpってキモいな
973デフォルトの名無しさん:2011/01/24(月) 13:23:11
>929
どうしたいのかわかんないけど
print '''\
foo
'''

print\
'''foo
'''

print\
'''\
foo
'''

print (
'''foo
''')

print ('''\
foo
''')

バクスラか括弧使う、括弧が好まれる傾向にあるらしい(『初めてのPython』)

ヒアドキュメント(ドキュメンテーション文字列とかトリプルクォートコメント)内でインデント揃えたいとかいうのは間違え
974デフォルトの名無しさん:2011/01/24(月) 13:37:22
奴隷は、奴隷の境遇に慣れ過ぎると、
驚いた事に自分の足を繋いでいる鎖の自慢をお互いに始める。
どっちの鎖が光ってて重そうで高価か、などと。
そして鎖に繋がれていない自由人を嘲笑さえする。
だが奴隷達を繋いでいるのは実は同じたった1本の鎖に過ぎない。
そして奴隷はどこまでも奴隷に過ぎない。
過去の奴隷は、自由人が力によって征服され、やむなく奴隷に身を落とした。
彼らは、一部の甘やかされた特権者を除けば、奴隷になっても決してその
精神の自由までをも譲り渡すことはなかった。
その血族の誇り、父祖の文明の偉大さを忘れず、隙あらば逃亡し、あるいは
反乱を起こして、労働に鍛え抜かれた肉体によって、肥え太った主人を
血祭りにあげた。
現代の奴隷は、自ら進んで奴隷の衣服を着、首に屈辱のヒモを巻き付ける。
そして、何より驚くべきことに、現代の奴隷は、自らが奴隷であることに
気付いてすらいない。それどころか彼らは、奴隷であることの中に自らの
唯一の誇りを見い出しさえしている。
975デフォルトの名無しさん:2011/01/24(月) 14:23:23
>>969
http://www.python.jp/pipermail/python-ml-jp/2011-January/005107.html
結論がこれ
そもそもPython関係ないな・・・
976デフォルトの名無しさん:2011/01/24(月) 15:36:38
1)記憶が足りない
2)努力が足りない
3)遠慮が足りない
977デフォルトの名無しさん:2011/01/24(月) 15:42:51
どうでもいいじゃないか。
978デフォルトの名無しさん:2011/01/24(月) 15:53:19
>>976
4)そしてなにより(ry
979デフォルトの名無しさん:2011/01/24(月) 15:58:10
それは性格的な問題じゃないかな
目の前にすでに結果があるのに対して
懇切丁寧な説明がなされるまで納得しないような何か。
980デフォルトの名無しさん:2011/01/24(月) 18:06:12
pass
981デフォルトの名無しさん:2011/01/24(月) 18:24:15
ume
982デフォルトの名無しさん:2011/01/24(月) 18:36:04
req = urllib2.Request('http://hibari.2ch.net/test/bbs.cgi',
  urllib.urlencode({'bbs': 'tech', 'key': 1288342460, 'time': 0,
    'FROM': 774, 'mail': 'sage', 'MESSAGE': self.message,
    'submit': u'書き込み'.encode('cp932'), 'hana': 'mogera'}),
  {'Referer': 'http://hibari.2ch.net/'})
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
if '<!-- 2ch_X:cookie -->' in opener.open(req).read():
  opener.open(req).read()
983デフォルトの名無しさん:2011/01/24(月) 19:04:22
ニート生活を脱出してPythonプログラマーとして半年ぐらい働きたいんだけど
Python使った開発で有名な会社ってありますか?自分は東京に住んでます。
984デフォルトの名無しさん:2011/01/24(月) 19:49:07
Hatc(ry
985デフォルトの名無しさん:2011/01/24(月) 20:00:13
ume
986デフォルトの名無しさん:2011/01/24(月) 20:01:33
募集スキルとしては乾電池が入るかどうかが重要
987デフォルトの名無しさん:2011/01/24(月) 20:31:00
ニートを集めて起業すればOK。
プログラミングやってるニートって要するにアスペ的な人間だから、
その辺のクソSIerのプログラマより知識とスキルあるでしょ。
988デフォルトの名無しさん:2011/01/24(月) 20:33:38
クライアントは知識もスキルも求めてはいない
必要なのはコミュニケーション能力だ
ニートには無理
989デフォルトの名無しさん:2011/01/24(月) 20:34:31
アスペにも無理だな
990デフォルトの名無しさん:2011/01/24(月) 20:59:05
ニートのことはともかくとして、

> クライアントは知識もスキルも求めてはいない
> 必要なのはコミュニケーション能力だ

こういうNTTデータ社長みたいな発言はやめてほしい。
991デフォルトの名無しさん:2011/01/24(月) 21:03:09
結局知識とスキルとコミュニケーション能力だなw
992デフォルトの名無しさん:2011/01/24(月) 21:28:18
993デフォルトの名無しさん:2011/01/24(月) 21:34:07
さて死ぬか。
994デフォルトの名無しさん:2011/01/24(月) 22:27:34
そうか、さみしくなるな
995デフォルトの名無しさん:2011/01/24(月) 22:41:03
来世ではちゃんと働くんだぞ
996デフォルトの名無しさん:2011/01/24(月) 22:45:05
働きすぎてもうしにたい
今日はもう帰るワーイ
997デフォルトの名無しさん:2011/01/24(月) 23:05:05
埋め
998デフォルトの名無しさん:2011/01/24(月) 23:10:45
>>983
Google
999デフォルトの名無しさん:2011/01/24(月) 23:35:44
角電池
1000デフォルトの名無しさん:2011/01/24(月) 23:38:42
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。