Pythonのお勉強 Part14

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2006/10/20(金) 00:38:06
BBC は以下の文章に不適切な表現があることを予め謝罪します
3デフォルトの名無しさん:2006/10/20(金) 00:44:10
>>1

みんな、まったりやろーよ(´・ω・)
4デフォルトの名無しさん:2006/10/20(金) 01:39:58
みんPyのリンク、何故アマゾン?

こっちが公式
http://www.sbcr.jp/books/products/detail.asp?sku=479733665X
5デフォルトの名無しさん:2006/10/20(金) 01:50:56
>>2
BBC2 は予算が限られてまして…
6デフォルトの名無しさん:2006/10/20(金) 01:57:39
おっ、Pythonスレ。
7デフォルトの名無しさん:2006/10/20(金) 02:18:00
また おっぱい ネタかよw
8デフォルトの名無しさん:2006/10/20(金) 02:37:28
ワンライナー書くためにこんなに色々やるなんて、もうなんだか逆に尊敬するわw
ttp://www.nishiohirokazu.org/blog/2006/08/python_12.html
9デフォルトの名無しさん:2006/10/20(金) 03:26:32
【Python】Webフレームワーク Djangoスレ Part1
http://pc8.2ch.net/test/read.cgi/php/1156612854/l2
10デフォルトの名無しさん:2006/10/20(金) 03:39:36
>>8
なんかその人前提からして間違ってるような気がする。
使いやすい対話環境があるんだからPythonにワンライナーなんていらんだろうに。
11デフォルトの名無しさん:2006/10/20(金) 05:00:36
ネタにマジレスカコワルイ
12デフォルトの名無しさん:2006/10/20(金) 05:28:46
内容がどうあれ、煽り口調のレスはスルーで参りましょう。
13デフォルトの名無しさん:2006/10/20(金) 08:09:25
devCamp2006s のプレゼンだと
どういう事情(?)だったか
分かりやすかったんだけどな > ワンライナーノヒト
14デフォルトの名無しさん:2006/10/20(金) 10:24:06
>>10
オッサンはもう必要ないから引っ込めよ。
15デフォルトの名無しさん:2006/10/20(金) 10:55:13
デブキャンってピザのオフ会だと思っていました。
16デフォルトの名無しさん:2006/10/20(金) 11:25:58
>>10
"ワンライナー"という言葉に過剰反応するのは損。
よく読むと、面白いテクニックがいろいろ載っているよ。
17Python初心者:2006/10/20(金) 11:44:55
しつこく全スレからの続き:
>>956
@staticmethod
とインスタンスメソッドとは利用方法が
全然違います。つまり第一引数にselfを
使用する以前の問題。
>>960
>FAQの2つ目の理由のほかに、
>キーワード(予約語)は少ない方が
>よいという見方もある。
FAQの回答は引数にいちいちselfをいれなくても
thisかselfを予約語にすれば全て解決出来る。
但し予約語が一つ増えることには違いない。
printが予約語から早晩関数になるなら
一つ増えてもこれまでと総数は同じ。(w
Pythonは非常に整合性が高くかつユーザー負担の
少ない言語だと思う。
だから、返ってprintやselfなんかが目立つんじゃ
なかろうか?
例えば上記@staticmethodの「@」なんかRuby的
で違和感がありますよね?
StandardMLのマイナスが「~」よりはましだが…
>>753
>>想定が誤っている。[1,2,[...]]はデータであり、
[1,2,[...]]これはデータでさえない。
>>> L=[1,2,[...]]
SyntaxError: invalid syntax
>>> [1,2,[...]]
SyntaxError: invalid syntax
「Python的なセンス」を持った人間ほど、この辺り
気になりませんかね?
18デフォルトの名無しさん:2006/10/20(金) 11:57:21
原理主義者は Python を使わない方がいいと思います。
19デフォルトの名無しさん:2006/10/20(金) 12:33:06
決定、selfは廃止しましょう!
ついでにリストも静的に領域確保して配列にしましょう!
20デフォルトの名無しさん:2006/10/20(金) 12:45:07
はいはい。それは良かったですね。
次の方どうぞ。
21デフォルトの名無しさん:2006/10/20(金) 12:47:10
エイプリルフールは半年先ですので.
その点ご留意いただきますよう.
22デフォルトの名無しさん:2006/10/20(金) 13:50:24
>>19
はいはい、おまえ言語、おまえ言語
23デフォルトの名無しさん:2006/10/20(金) 14:41:08
Djangoは盛り上がってるんだか盛り上がってないんだか分からないな。
24デフォルトの名無しさん:2006/10/20(金) 14:45:09
まだ盛り上げたいか盛り上げたくないかのレベルじゃねぇの。
25デフォルトの名無しさん:2006/10/20(金) 15:17:41
>とインスタンスメソッドとは利用方法が
>全然違います。つまり第一引数にselfを
>使用する以前の問題。

それ以前にその関数をインスタンスメソッドにする
意味がわからないんだけど。
26デフォルトの名無しさん:2006/10/20(金) 15:24:52
>>24
日本語で書いてくれればいいですよ。
27デフォルトの名無しさん:2006/10/20(金) 15:30:19
スタティックメソッドをインスタンスメソッドにするにはどうすればいいんですか?
28デフォルトの名無しさん:2006/10/20(金) 16:02:19
はじめのことばをかいてるひとは、えらいひとなの?えらいからかいてるの?おしえてえらいひと。
29デフォルトの名無しさん:2006/10/20(金) 16:21:51
なんで過剰に反応するの?
30ネタニマジレス:2006/10/20(金) 16:24:09
>27
背伸びしなくても分かっている機能を使えばいいんじゃないかな?
31デフォルトの名無しさん:2006/10/20(金) 16:24:59
28 が相当ダメそうなのはなんとなく分かるな。
32デフォルトの名無しさん:2006/10/20(金) 16:33:44
selfを予約後にしても同等の仕組みはできるけど
その代わりキャストとか文脈の解釈とか他の方法が必要になるんじゃねーの?
33デフォルトの名無しさん:2006/10/20(金) 16:39:19
self を予約後にするならば
クラスメソッドの第一引数 cls とか kls とかも予約後にしなくちゃ!
原理主義は忙しくて大変だなあ!!!
34デフォルトの名無しさん:2006/10/20(金) 16:51:46
>>29
日陰者のキチガイのすることだから、大目に見てあげてよ.
35デフォルトの名無しさん:2006/10/20(金) 17:24:54
マジレスしつつ、理解不足を露呈しているかわいそうな人たち
36デフォルトの名無しさん:2006/10/20(金) 18:04:05
中二病は早く直そう。
病気のまま大人になると取り返しが付かないことに。
37デフォルトの名無しさん:2006/10/20(金) 18:19:49
>>36
それはオリジナル国産スクリプト言語を作り始めたりしてしまう、という事か?
38デフォルトの名無しさん:2006/10/20(金) 18:22:52
>>37
君はどうやら手遅れみたいだ.
39デフォルトの名無しさん:2006/10/20(金) 18:28:14
>>28
「はじめのことば」ってなに?
40デフォルトの名無しさん:2006/10/20(金) 18:49:22
銀の弾丸キボンヌ
41デフォルトの名無しさん:2006/10/20(金) 18:55:03
銀ダマ鉄砲の弾でよい?
42デフォルトの名無しさん:2006/10/20(金) 19:06:41
(-ε-。)ブー
43デフォルトの名無しさん:2006/10/20(金) 19:34:16
Djangoは非常に素晴らしいと思うけど
レンタルスペースで使えるところがほとんど無いから
いまいち流行らないんだと思う。

ファイルシステムがそのままURLにマッピングされるようなタイプじゃないと
やっぱり敷居は高いよね。
44デフォルトの名無しさん:2006/10/20(金) 20:28:47
そうだね。Perl+jocode.plにはかなわないよね。
45デフォルトの名無しさん:2006/10/20(金) 20:56:15
Django は専用スレがあるので、そっちでやってくださいな。
http://pc8.2ch.net/test/read.cgi/php/1156612854/
46デフォルトの名無しさん:2006/10/20(金) 22:16:39
>>44
Kent乙.
47デフォルトの名無しさん:2006/10/20(金) 23:03:36
Djangoについての細かい話なら専用スレでやるべきだろうけど、
仮にもPython製のフレームワークなんだし。
ちょろっと話題に出たらたちまち追い出そうとするのは狭すぎやしないかい。
48デフォルトの名無しさん:2006/10/20(金) 23:19:07
>>47
誘導した者なんですが、気に障ったようならすいません。
「専用スレがあるので、詳しく話したいならこっちのスレの方がいいですよ」
というつもりだったのですが、書き方が悪かったようです。
49デフォルトの名無しさん:2006/10/20(金) 23:25:53
Pythonで、CPANみたいなのはありますか。
つまりライブラリを集めているリポジトリと、それをインストールするためのパッケージシステムです。
50デフォルトの名無しさん:2006/10/20(金) 23:30:38
TurboGearsってどうなんでしょう。これからはやっぱデザインとロジックが
ちゃんと分離できるのが流行ると思ってるけど。ZOPE+ZPTも最近また盛り上がっ
てますよね。DjangoにしてもTurboGearsにしてもまだまだ情報が少ないですね。
51デフォルトの名無しさん:2006/10/20(金) 23:50:07
Djangoはドキュメントが翻訳されてるし
TurboGearsはmookにそこそこのボリュームの日本語解説が書いてある
自分で使って試して比べてみればいいんじゃねえの?
52デフォルトの名無しさん:2006/10/20(金) 23:56:33
ZOPEってどのへんで盛り上がってるんでしょうか?
53デフォルトの名無しさん:2006/10/20(金) 23:59:56
50の脳内。
54デフォルトの名無しさん:2006/10/21(土) 00:21:32
>>52
Zope Japan も潰れたし盛り上がるわけがない.
5550:2006/10/21(土) 00:40:53
訂正:ZOPE+ZPT → pythonscript + ZPT

>>52-54
まあニートには分からないでしょうね。
ネットでしか情報が手に入らないわけだし。
56デフォルトの名無しさん:2006/10/21(土) 00:43:40
いまさらだけどIronってどういう意味なの?
57デフォルトの名無しさん:2006/10/21(土) 00:44:09
>>55
>訂正:ZOPE+ZPT → pythonscript + ZPT

pythonscriptって何?
58デフォルトの名無しさん:2006/10/21(土) 00:44:08
>>55
ニートを馬鹿に出来るほど立派なことを書いてるつもりか?
59デフォルトの名無しさん:2006/10/21(土) 00:47:58
>>55
まともな受け答えが出来ないお前は社内ヒキコモリ。
6050:2006/10/21(土) 00:52:54
あれれニートを怒らせちゃったなw
61デフォルトの名無しさん:2006/10/21(土) 00:55:56
やべ、こいつ構って君だ
62デフォルトの名無しさん:2006/10/21(土) 00:57:39
50はZopeとかZPTとかpythonscriptとやらをおとしめるのが目的なんだよ.
63デフォルトの名無しさん:2006/10/21(土) 00:59:08
>>56
アイロンだよ。キミの家にもあるだろう。
64デフォルトの名無しさん:2006/10/21(土) 01:01:46
かまってクンのせいで
駄スレ度が増加してしまいました
65:2006/10/21(土) 01:06:08
さらに増加
66デフォルトの名無しさん:2006/10/21(土) 01:16:08
まともに質問に答えられずはぐらかす
コイツ救いようがねえな
PythonやめてRubyでも使っておけや
頼むから
67デフォルトの名無しさん:2006/10/21(土) 01:22:25
まともな質問なんてあったっけか
68デフォルトの名無しさん:2006/10/21(土) 01:24:14
Rubyを引き合いに出す奴は荒らしたい奴だからほっとけ
69デフォルトの名無しさん:2006/10/21(土) 01:26:31
>>55
>訂正:ZOPE+ZPT → pythonscript + ZPT

意味不明.頭沸いてるんじゃないのか.
70デフォルトの名無しさん:2006/10/21(土) 01:31:18
沸いてるんだろうね
71デフォルトの名無しさん:2006/10/21(土) 01:33:56
           ∧_∧ 
          ry ´・ω・`ヽっ
          `!       i
          ゝ c_c_,.ノ
             (
              )
         .∧ ∧.(
         (´・ω・∩ またーりしようよ
         o   ,ノ
        O_ .ノ
          .(ノ
         ━━
72デフォルトの名無しさん:2006/10/21(土) 01:36:53
かわいそうに。
 
 

 
 
 
 
なんてみじんも思わない。
73デフォルトの名無しさん:2006/10/21(土) 01:41:44
>71
かわいす

とはちょっと思ったw
74デフォルトの名無しさん:2006/10/21(土) 01:41:56
やっぱり建設的じゃないレスの比率が高い。
75デフォルトの名無しさん:2006/10/21(土) 01:45:53
建設的なレスの比率が高いスレなんてあるのか?
76デフォルトの名無しさん:2006/10/21(土) 02:36:05
sciPy使ってる人いる?
日本語で役立ちそうな情報が乗っているサイトとかないかしら・
77デフォルトの名無しさん:2006/10/21(土) 02:39:02
佐賀スレ
78デフォルトの名無しさん:2006/10/21(土) 04:07:15
>>76
一応使ってます。
日本語の情報は、この2つしか知らない。

・SciPyでHappy Researching
http://alias.dip.jp/article/scipy.php

・Fedora Core 5 Test 3 で、まだ SciPy がインストールできない件
http://po3a.blogspot.com/2006/02/fedora-core-5-test-3-scipy.html
http://po3a.blogspot.com/2006/03/fedora-core-5.html
79デフォルトの名無しさん:2006/10/21(土) 05:23:02
80デフォルトの名無しさん:2006/10/21(土) 07:06:13
>>49
Python eggs
81デフォルトの名無しさん:2006/10/21(土) 08:12:16
>>49
サイトとしてはPython Cheese ShopとかPEAKとかかな
82デフォルトの名無しさん:2006/10/21(土) 09:06:41
83デフォルトの名無しさん:2006/10/21(土) 13:02:55
>>76
俺も一応。
84デフォルトの名無しさん:2006/10/21(土) 13:12:32
8576:2006/10/21(土) 13:15:52
みなさんありがとう.
普段はmatlab市か使わないんだけど,ちょっとpythonにも手を出してみようと思って.
86デフォルトの名無しさん:2006/10/21(土) 13:16:05
佐賀県でpython
87デフォルトの名無しさん:2006/10/21(土) 14:42:15
>>79
俺、大学で習った最初の言語がMATHEMATICAだったよ・・・
みんな明らかに不満そうだったw
88デフォルトの名無しさん:2006/10/21(土) 15:03:26
>>8
__setitem__を__call__にぶち込むテクにワロタ
もはや異次元
89デフォルトの名無しさん:2006/10/21(土) 15:12:17
>>17>>19
python3でもselfは明示的ってのはすでに決ってるらしい
ので、そのあたりの仕様はpython使う限り、あきらめた
方がいいと思います。
pythonライクな文法の別の言語でselfを省略できるのが
あったような気が・・・
90デフォルトの名無しさん:2006/10/21(土) 16:39:35
もうPHPでいいよ。Pythonと縁が無くて幸せだったと思える時が来るから。
91デフォルトの名無しさん:2006/10/21(土) 16:49:42
言語の仕様で文句言うより、言語を使って何を作るかに注力しようぜ。
92Python初心者:2006/10/21(土) 17:12:18
>>91
>言語の仕様で文句言うより、言語を使って
>何を作るかに注力しようぜ。
至言ですね。
但し何を作るかが決まれば、Pythonでなくても
どんな言語でも作れるってところが問題で…
そこで再帰的に言語仕様の話へと循環する
訳です。
93Python初心者:2006/10/21(土) 17:13:31
Pythonのfor構文よりC言語のfor文の実行速度は
2倍早い。map関数を使うとfor文よりは大分早くなる。
それに比べてリスト内包表記の実行スピードは
なんとC言語並みとのことです。(初めてのPythonより)
但し、
>>> res = []
>>> for x in range(5):
...   if x % 2 == 0:
...     for y in range(5):
...       if y % 2 == 1:
...         res.append((x, y))
...
>>> res
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
と書いたのに比べて、
>>> [(x,y) for x in range(5) if x%2 == 0 for y in range(5) if y%2 == 1]
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
ダブルループなど複雑なもののリスト内包表記は可読性が
著しく落ちるのであまりお奨めできない、とある。
しかし、
[(x,y)
  for x in range(5)
    if x%2 == 0
      for y in range(5)
        if y%2 == 1]
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
[]の中はインデント、改行、自由自在ですから、
返ってfor文よりすっきりしてますよね。
実行速度が早い、分かり易い、かつ短く簡潔である。
リスト内包表記を使わない手は無いと思うが。
どうでしょう?
94デフォルトの名無しさん:2006/10/21(土) 17:26:06
>>93
その通りだと思うよ。
ところでここら辺でメタクラスの話でもしてみないか?
95デフォルトの名無しさん:2006/10/21(土) 17:37:42
賛成。ついでにリストを配列にしようぜ。
96デフォルトの名無しさん:2006/10/21(土) 17:41:55
self は当然廃止な.
97デフォルトの名無しさん:2006/10/21(土) 17:43:47
なにがどうでしょうなのか
98デフォルトの名無しさん:2006/10/21(土) 17:49:02
>>94
それだけは勘弁してくれ
99デフォルトの名無しさん:2006/10/21(土) 17:49:39
新言語設計の話題は専用スレを立ててやってください
100デフォルトの名無しさん:2006/10/21(土) 18:15:21
感想文や素晴らしい思いつきはブログとかに書けばいいんじゃね?
101デフォルトの名無しさん:2006/10/21(土) 18:17:55
guidoタンに直談判、もちろんオランダ語で
102デフォルトの名無しさん:2006/10/21(土) 18:51:34
蘭学者はおらぬか!佐賀県!
103デフォルトの名無しさん:2006/10/21(土) 18:51:38
つか、「Python初心者」って奴は全然初心者じゃなくて
明らかに工作員だな。
前スレとかでは相手してたけどそろそろスルーしよーっと。
104デフォルトの名無しさん:2006/10/21(土) 18:52:27
>>102
やめろよ佐賀県民め。
105デフォルトの名無しさん:2006/10/21(土) 19:01:48
103は明らかに初心者
106デフォルトの名無しさん:2006/10/21(土) 19:02:18
どうでしょう?
107デフォルトの名無しさん:2006/10/21(土) 19:31:08
工作員っていうか、「名前を口にするのも憚られるあの人」じゃないの?
108デフォルトの名無しさん:2006/10/21(土) 19:36:31
何?佐賀県から工作員が来たって?
109デフォルトの名無しさん:2006/10/21(土) 19:51:33
110デフォルトの名無しさん:2006/10/21(土) 21:52:41
PythonでRADできるんだ。すげー…。
まあ、UI切り貼りぺたぺたをPythonでやる(やらなくちゃダメ)なケースは
そんな多くないと思うけど、夢があるなー。
111デフォルトの名無しさん:2006/10/21(土) 21:53:44
>>107
工作員の仕事は大変だな。
112デフォルトの名無しさん:2006/10/21(土) 22:18:28
>>102
隣の長崎県に行かないと無理
113デフォルトの名無しさん:2006/10/21(土) 23:22:02
さいきんやたら佐賀ットの名を聞くけどどうかしたのか
114デフォルトの名無しさん:2006/10/21(土) 23:31:47
>>113
スレ違いだが
ttp://www.asahi.com/life/update/1019/011.html

ν速とVIPの悪ノリ
115デフォルトの名無しさん:2006/10/22(日) 00:14:39
>>114
こんなことやってるから佐賀は馬鹿にされるのだと思う←これも通知されるかw
116デフォルトの名無しさん:2006/10/22(日) 01:01:03
115は小心者
117デフォルトの名無しさん:2006/10/22(日) 01:52:00
>>93
ttp://hamasta.g.hatena.ne.jp/hamasta/20061021

ZOPE関係の工作員はどうしてこう嘘つきばかりなのか
118デフォルトの名無しさん:2006/10/22(日) 02:23:50
>>93 のどのへんが ZOPE 関係なの?
119デフォルトの名無しさん:2006/10/22(日) 02:29:10
>>117のblog
2chの書き込みへのレスは2chに書くべきだと思う・・w
120デフォルトの名無しさん:2006/10/22(日) 02:36:15
118 は工作員。
121デフォルトの名無しさん:2006/10/22(日) 02:40:29
>>120
え、ZOPEとリスト生成の話がどう関連するのか聞いただけで工作員なの?
122デフォルトの名無しさん:2006/10/22(日) 02:44:12
なんで過剰反応するの?
123デフォルトの名無しさん:2006/10/22(日) 02:46:57
なんでもいいからZOPEを叩きたいんだろ。韓国の反日と同じ。ほっといてやれ。
124デフォルトの名無しさん:2006/10/22(日) 02:52:34
放っておけない理由があるんだよきっと.
125デフォルトの名無しさん:2006/10/22(日) 02:53:13

     ハ_ハ  
   ('(゚∀゚∩ またーりしようよ!
    ヽ  〈 
     ヽヽ_)
126デフォルトの名無しさん:2006/10/22(日) 08:36:45
Pythonユーザはまだまだ少ないんだから内輪もめはやめようよ。
127デフォルトの名無しさん:2006/10/22(日) 08:46:25
悪いのも荒らしてるのもみんなあの人だから。
128デフォルトの名無しさん:2006/10/22(日) 10:07:39
てか、なんでこのスレ耐性異常に低いんだ?
2chなんだから別に荒れてても華麗にスルーでいいじゃん。
少々毒があってもアホでもネタ。
やめようと、叩こうとか云いたくなるならROMしてた方がいいよ。
129デフォルトの名無しさん:2006/10/22(日) 11:30:06
で、 pythonscript って結局なんなの?
130デフォルトの名無しさん:2006/10/22(日) 11:36:08
>>76 sciPy使ってる人いる?
  >日本語で役立ちそうな情報が乗っているサイトとかないかしら・

Python コード例を流用して計算をしたいなど、手っ取り早く行列を使いたい
ならば下が役立つでしょう。
http://www.nasuinfo.or.jp/FreeSpace/kenji/sf/fastTour/pyLinear.htm

計算結果を可視化したいときは下の vpython を使いましょう。matlab より
優れているはずです。
http://vpython.org/
http://vpython.erikthompson.com/

老婆心ながら Matlab 互換を目指した python の numarray.matrix または
Numeric.Matrix を使うのは避けるべきです。array だけで済ますべきです。
不必要に悩まされます
131デフォルトの名無しさん:2006/10/22(日) 11:47:12
>>130
よさげですね,よんでみまっす
132デフォルトの名無しさん:2006/10/22(日) 12:41:09
>>128
荒らしも荒らし止めろも単なる暇つぶしですよ
133デフォルトの名無しさん:2006/10/22(日) 14:24:49
キチガイと工作員はたたいて追い出すべき。
134デフォルトの名無しさん:2006/10/22(日) 15:37:09
>>128
てか、お前耐性異常に低いんだ?
2chなんだから別に荒れてても華麗にスルーでいいじゃん。
少々毒があってもアホでもネタ。
ROMしてた方がいいよとか云いたくなるならROMしてた方がいいよ。
135デフォルトの名無しさん:2006/10/22(日) 15:54:25
je ne comprends pas
136デフォルトの名無しさん:2006/10/22(日) 16:41:56
>>134
2chなんだから少々耐性低い奴いても華麗にスルーでいいじゃんww
137デフォルトの名無しさん:2006/10/22(日) 16:45:59
>>135
日本語でおk
138Python初心者:2006/10/22(日) 17:45:00
>>103
>つか、「Python初心者」って奴は全然初心者じゃなくて
>明らかに工作員だな。
Pythonを初めて触って思いついたことを書いている
だけだけど、それが何かの工作になるのでしょうか?
ただ、言語そのものは一応Java,C,C++,Delphi,
VB,PHP,Lisp,Scheme,Prolog,Ruby,Curl,Perl,
Rebol,Icon,TclTk,Sqeak,桐の一括処理?とかで
Hello World!だけは出力できるけど…(w


139デフォルトの名無しさん:2006/10/22(日) 17:52:46
↓位の量でHelloWorldが出力できたら威張ってもいい
ttp://99-bottles-of-beer.net/
140Python初心者:2006/10/22(日) 18:08:22
>>139
無理です…
ところで、
Decoratorを使いたいと考え、最もシンプルな
例として下記コードを書いてみました。
def deco(func):
def greeting():
print 'Hello'
func()
return greeting

@deco
def say_name():
print 'Python'

say_name()

OPは下記の通り:
Hello
Python
141Python初心者:2006/10/22(日) 18:09:04
@decoはsay_name = deco(say_name)と同じ。
つまりsay_name()がgreeting()に置き換え
られている。
面白そうなので、もう一度@decoを重ねてみた。
@deco
@deco
def say_name():
print 'Python'

say_name = deco(deco(say_name))と同じ。
OPはこうなった?
Hello
Hello
Python
何故、下記のようにならないのでしょうか?
Hello
Python
Hello
Python
142デフォルトの名無しさん:2006/10/22(日) 18:28:41
> 何故、下記のようにならないのでしょうか?
IndentationError だから。
初心者はつまずきやすいところだから気を付けてね。
143デフォルトの名無しさん:2006/10/22(日) 18:33:44
> ただ、言語そのものは一応Java,C,C++,Delphi,
> VB,PHP,Lisp,Scheme,Prolog,Ruby,Curl,Perl,
> Rebol,Icon,TclTk,Sqeak,桐の一括処理?とかで

立派な工作員です。本当にありがとうございました。
144デフォルトの名無しさん:2006/10/22(日) 18:37:37
>143
別に良いんじゃね?
所詮 HelloWorld しか出来ないんだし。

それよか Python の話題を出そうぜ



……言い出しっぺの法則? ははっ
145デフォルトの名無しさん:2006/10/22(日) 18:49:42
>>141
@deco を2個つけるのは、以下と同じ意味
say_name = deco(say_name)
say_name = deco(say_name)

わかりやすくするなら
def say_name_original(): print 'Python'
def say_name_deco1(): print 'Hello' ; say_name_original()
def say_name_deco2(): print 'Hello' ; say_name_deco1()
say_name = say_name_deco2

>>> say_name()
Hello
Hello
Python

てか、むしろ、なんで Python が2回出力されると思ったの?
146デフォルトの名無しさん:2006/10/22(日) 18:50:43
>>141
一番外のgreetingで一回Hello
次のgreetingで2回目のHello
最後にsay_nameでPython
だと思いますが・・?

つか、デコレーターの意味がまったく分からない。
どんな局面でこれが必要になるのか・・・
誰もが納得できるような、ここはデコレーターしかない
見たいな局面が出てくるとはとても思えない
147デフォルトの名無しさん:2006/10/22(日) 18:51:15
カブリー
148デフォルトの名無しさん:2006/10/22(日) 18:57:47
言語オタテラキモス
149デフォルトの名無しさん:2006/10/22(日) 19:00:09
外人が「あ、俺日本語しゃべれるぜー コニチワー」って言うのと同じだと思うけどw
150デフォルトの名無しさん:2006/10/22(日) 19:31:20
CherryPyが使ってる
151デフォルトの名無しさん:2006/10/22(日) 19:31:29
デコレータはシンタクスシュガーだから
別に無くても困らないよ
152デフォルトの名無しさん:2006/10/22(日) 19:33:24
デコレータよりメタクラスの話をしようぜ。
153デフォルトの名無しさん:2006/10/22(日) 20:58:55
Djangoも使ってる。
っていうかフレームワークかくときに便利なんだと思う>デコレータ
154デフォルトの名無しさん:2006/10/22(日) 22:28:30
>>153
初心者は引っ込んでていいよ
155デフォルトの名無しさん:2006/10/22(日) 23:00:32
デコレーターは IQ 140 以上でないと使えないよ。
156デフォルトの名無しさん:2006/10/22(日) 23:26:06
ただ単に高階関数でラップする構文糖に、なぜそんなIQが必要なの
157デフォルトの名無しさん:2006/10/22(日) 23:36:58
>>146
> 誰もが納得できるような、ここはデコレーターしかない
> 見たいな局面が出てくるとはとても思えない

そういう人はデコレータを使わなければいいだけだと思う
人生で覚えることがひとつ減ってラッキーではないか
158デフォルトの名無しさん:2006/10/22(日) 23:37:48
Python初心者とやらの推定IQは79くらいか.
IQ低い奴はZOPEでも使っていればいい.
あ, Script(Python) は避けた方がいいぞ.
159デフォルトの名無しさん:2006/10/23(月) 00:57:03
厨のすくつと化しました
160デフォルトの名無しさん:2006/10/23(月) 01:29:19
悪意しかねえスレだなw 役には立たんが見物としちゃ楽しすぎるぜ
161デフォルトの名無しさん:2006/10/23(月) 01:43:39
IQなど存在しない
162デフォルトの名無しさん:2006/10/23(月) 02:40:51
CQ出版のほうがエロい。
163デフォルトの名無しさん:2006/10/23(月) 03:02:09
>>160
気に障ることが書いてあったのかも知れないけど、
そんなときこそスルーする力を身につけようぜ!
164デフォルトの名無しさん:2006/10/23(月) 04:13:29
スルー力厨。
165デフォルトの名無しさん:2006/10/23(月) 04:14:43
>>163
おまえもな。おれもな。w
166デフォルトの名無しさん:2006/10/23(月) 04:40:33
>>>True = False
>>>True
False

激しくワロタ、何だコレw
167デフォルトの名無しさん:2006/10/23(月) 05:10:21
T/Fが予約されてないから、代入可能って過去スレでも話題になってた。
気になる人はいるんだな。P3kでは予約されるのかねぇ。
168デフォルトの名無しさん:2006/10/23(月) 05:57:07
using:
    classmethod
    deco
def func(arg):
    pass

ていうのを知ったんですが、
J2 proposalっていうのは未だに揉めてるんでしょうか?
pythonコミュニティ自体がばらばらにならないといいなぁという心配が・・・
169デフォルトの名無しさん:2006/10/23(月) 08:31:18
>>168
つ[ 玉手箱 ]
170デフォルトの名無しさん:2006/10/23(月) 10:57:47
del __builtins__

が最強
171デフォルトの名無しさん:2006/10/23(月) 11:02:17
原理主義者はPythonを使わない方がいいよ。

>>166
>>>>True = False
>>>>True
>False
>
>激しくワロタ、何だコレw

ふつうこういうことしないし、非原理主義者は「ふーん」で思考終了。
172デフォルトの名無しさん:2006/10/23(月) 11:59:23
>>171
原理主義者って『何の』原理主義?
173デフォルトの名無しさん:2006/10/23(月) 13:35:44
>>166
実用上困ることはほとんどないという意味で>>171に同意。
原理主義者云々はともかくとして。w
174デフォルトの名無しさん:2006/10/23(月) 13:52:15
pythonが実行されている環境のタイムゾーンを示すアルファベットの
文字列(日本だと'JST')を取得したいのですが、どうすればできる
でしょうか?

import time
time.tzset[0]

を使ってみたのですが、Windowsで実行すると"東京 (標準時)"
というShiftJISの文字列が返ってきてしまいます。
175デフォルトの名無しさん:2006/10/23(月) 14:01:46
>>> True = False
>>> bool(1)
True
>>> if bool(1):
... print "foo"
...
foo
>>> if bool(1) == True:
... print "foo"
...

ぜんぜんおかしくないさ。
なにいってんだおまいら。
176デフォルトの名無しさん:2006/10/23(月) 14:17:10
>>172
自分とは違う種類の人間だということ。
それ以上の意味はない。
変人、きちがい、チョン、ヲタクでも可。
177デフォルトの名無しさん:2006/10/23(月) 14:23:52
>>175
どうも値のTrueと名前のTrueが別物っぽいですね。(常識なのかな・・・?

>>170
のようにうっかり__builtins__を消してしまったときの裏技
>>>del __builtins__
>>>True
NameError:...
>>>True=1==1
>>>True
True
178デフォルトの名無しさん:2006/10/23(月) 14:34:15
ひょっとして、このスレ、もうPython使い一人もいないとか?
179デフォルトの名無しさん:2006/10/23(月) 14:37:32
何をいまさら
180デフォルトの名無しさん:2006/10/23(月) 14:38:00
>>178
「Python使い」の定義による
181デフォルトの名無しさん:2006/10/23(月) 14:40:28
定義厨(wwwwww
182デフォルトの名無しさん:2006/10/23(月) 15:15:50
>>176
つまり言葉の意味を知らずに使っているということだな。
正直にそう言えよ。
183デフォルトの名無しさん:2006/10/23(月) 15:31:39
「教典」に従うことでしか安心感を得られない。
細かいことにいちいちつっかかる。
消毒、消毒!!
自ら持つ信念が無い。
故に実社会ではまったく「使えない」。

そんな奴らなのさ〜>原理主義者
184デフォルトの名無しさん:2006/10/23(月) 15:56:20
ipython-0.7.2.win32をインストールしたんだけどIPython起動して

IN[1]: import t

ここでTABで補完させても、標準ライブラリが一覧に出てこない。
組み込みのものは一覧に出るんだけど。これってどこで設定すればいいの?
環境は

Python-2.4.3(windows2000)
ipython-0.7.2.win32
pyreadline-1.3.win32
pywin32-210.win32-py2.4
ctypes-1.0.1.win32-py2.4
185Python初心者:2006/10/23(月) 16:08:49
>>143
>立派な工作員です。本当にありがとうございました。
申し遅れましたが、一応C#は現在使用中、Haskellや
Ocamlもかって触ったことがありますので工作員資格に
追加しておいて頂ければ…
186デフォルトの名無しさん:2006/10/23(月) 16:10:35
言語厨と工作員は違います
187デフォルトの名無しさん:2006/10/23(月) 16:11:24
でも行動と見た目は似ています。
188Python初心者:2006/10/23(月) 16:14:27
>>145,146
Tks!デコレーターって言う意味がようやく
分かりました。
例えば下記のようなコードで前処理と後処理を
関数にImplicitに追加出来るってことですね。
greeting1とgreeting2の中のfunc()がそれぞれ
実行されてしまえば、単なるループ処理になる(w

def deco1(func):
  def greeting1():
    print 'Hello' #前処理を書く
    func()
  return greeting1

def deco2(func):
  def greeting2():
    func()
    print 'Good Bye' #後処理を書く
  return greeting2

@deco1
@deco2
def say_name():
  print 'Python'

say_name()

OP:
Hello
Python
Good Bye
189デフォルトの名無しさん:2006/10/23(月) 16:19:57
スレ違いだったらごめんなさい。
Code Golfが全然短くならないんですけどヒントあったら教えてもらえませんか?
たとえばPascal's Triangleとか下だと100バイト超えちゃうんですけど、1位の1.5倍・・
根本的に悪いんだと思いますけどどこが悪いか分かりません。
X=Y=[1];r=range
for i in r(34):
o=''
for n in X:o+=" %d"%n
print o[1:];X=Y+[X[x]+X[x+1]for x in r(i)]+Y

Code Golf
ttp://codegolf.com/
190デフォルトの名無しさん:2006/10/23(月) 16:22:39
>>156
>ただ単に高階関数でラップする構文糖(シンタックスシュガー)

俺にはこの説明が簡潔で分かりやすかった
191デフォルトの名無しさん:2006/10/23(月) 16:26:01
実用的な例が増えてくると想像力に乏しい人でもイメージしやすくなるだろうな
192デフォルトの名無しさん:2006/10/23(月) 17:52:03
>174
time.strftime('%Z')
193デフォルトの名無しさん:2006/10/23(月) 17:57:12
Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32
>>> import time
>>> print time.strftime('%Z', time.localtime(time.time()))
東京 (標準時)

(*0w0)ウェーイ
194デフォルトの名無しさん:2006/10/23(月) 18:35:08
locale.setlocale してみれば?
195デフォルトの名無しさん:2006/10/23(月) 20:18:45
>>169
どもです〜^-^/
(パカ
(モクモクモクモク
アワワワワ
196174:2006/10/24(火) 02:47:47
>>194
locale.setlocaleで英語を設定してみましたがダメでした・・・
197デフォルトの名無しさん:2006/10/24(火) 03:18:35
日本語版windowsならJSTじゃなくて東京(標準時)なのは仕様
international版でも'Tokyo Standard Time'って還ってきたと思う

なのでレジストリ書き換えるかwin2k以上なら環境変数TZをJST-9に設定すればいいかも
あるいはスクリプト側でUTC +09:00をJSTにしちゃうとか
198デフォルトの名無しさん:2006/10/24(火) 03:27:16
あった。これね
ttp://pukiwiki.sourceforge.jp/?cmd=read&page=PukiWiki%2FInstall%2FWindows%2FTimeZone

ちなみにいまTZ設定してみたら

>>> import time
>>> print time.strftime('%Z', time.localtime(time.time()))
JST

でした
199Python初心者:2006/10/24(火) 16:50:01
一般的に動的なスクリプト言語の場合、オブジェクト指向
のカプセル化が甘い。下記の「なんでも有りスタイル」は
「そのようにもコーディングが可能」と捉えるべきでしょうか?
それとも「これが防げない…」と捉えるべきでしょうか?
class PythonJoke :
  joke = 'Yadaa! '
  def __init__(self,str):
    self.name = str
  def say_joke(self):
    print PythonJoke.joke + self.name
    #いちいちPythonJoke.はまあ良しとして
pj = PythonJoke('Ruby')
pj.say_joke() #ここまではOK!
#クラス外でインスタンスフィールド作成?
pj.greeting = 'Kutabaree '
print pj.greeting
#クラス外でインスタンスメソッド作成?
import sys
pj.jodan = (lambda x=pj.greeting + pj.name + '\n':
      sys.stdout.write(x))
pj.jodan()
#さらにクラス属性さえもクラス外で変更できる?
PythonJoke.joke='Iyaanee! Perl'
print PythonJoke.joke

OP->PythonJoke:
Yadaa! Ruby
Kutabaree
Kutabaree Ruby
Iyaanee! Perl
200デフォルトの名無しさん:2006/10/24(火) 17:09:42
印字している内容が不必要に扇動的な件
201デフォルトの名無しさん:2006/10/24(火) 17:10:55
Pythonのオブジェクトは所詮インタプリタという空間にくっついた属性でしかない
202デフォルトの名無しさん:2006/10/24(火) 17:17:22
きみたちをお相手係に任命する >>200, 201
203デフォルトの名無しさん:2006/10/24(火) 17:29:44
馬鹿が馬鹿な事をするのまでは阻止しないのが Pythonic
204デフォルトの名無しさん:2006/10/24(火) 17:33:55
IQ 65に格下げ。
おまけに空気読めない称号も付与。
205デフォルトの名無しさん:2006/10/24(火) 17:54:16
ここは殺伐とIQについて語るスレになりました
206デフォルトの名無しさん:2006/10/24(火) 18:18:36
つミ decoratorの使用例

custom django login_required decorator
ttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/498217
207デフォルトの名無しさん:2006/10/24(火) 19:07:34
208デフォルトの名無しさん:2006/10/24(火) 19:17:40
↑普通のプログラム入門書だった気が・・・立ち読みしかしてないけど
209デフォルトの名無しさん:2006/10/24(火) 19:24:47
>>206
要するによく使う条件を
@条件_required
def .....
で、書くとifが減ってうるさくない感じになるってことですね・・・
しかし、何かとかぶってる感じがする・・・
210デフォルトの名無しさん:2006/10/24(火) 19:28:37
>>207
プログラミング初心者には良い本。
一般的なプログラミングの話に重点を置いているので、
Python入門用と考えると、内容が薄いのと扱ってるバージョンがちょっと古い。
211デフォルトの名無しさん:2006/10/24(火) 20:54:29
>>207
このスレの住人には不要な本だ。
212デフォルトの名無しさん:2006/10/24(火) 21:10:43
>>211
207みたいな厨房には必要なんだよきっと.
213デフォルトの名無しさん:2006/10/24(火) 21:11:56
>>207
初心者向けの本だが、このスレの住人のほとんどが
内容をちゃんと理解できていないと思われる。
214デフォルトの名無しさん:2006/10/24(火) 21:25:33
メタクラスについて話すべき時期に来ていると思います
215デフォルトの名無しさん:2006/10/24(火) 21:30:06
じゃあ、ネタ振れよ
216デフォルトの名無しさん:2006/10/24(火) 21:31:19
213 にも必要らしいぞ
217デフォルトの名無しさん:2006/10/24(火) 21:33:32
>>214
それだけは勘(ry
218デフォルトの名無しさん:2006/10/24(火) 21:50:16
今月のSoftware Design読んだ人いる?
近くの本屋に置いてなかったので
Python入門どんな感じだったか聞きたいです
219デフォルトの名無しさん:2006/10/24(火) 21:52:12
メタクラスのアナグラムでよろしく。
220デフォルトの名無しさん:2006/10/24(火) 21:57:03
〜の話しようぜ、ってフリ自体がネタだとおもう
221デフォルトの名無しさん:2006/10/24(火) 22:38:59
はじめのことばをかいてるひとは、えらいひとなの?えらいからかいてるの?おしえてえらいひと。
222デフォルトの名無しさん:2006/10/24(火) 23:50:23
じーど?
223デフォルトの名無しさん:2006/10/24(火) 23:57:32
自称ハイレベルなユーザーばかりが集うインターネッツですね(*^_^*)
224デフォルトの名無しさん:2006/10/25(水) 00:35:02
ちょっと質問なんだけど、Python でダウンキャストみたいなことは
できないのでしょうか。

具体的には、

class A:
 def X(self):
  return 'hello'

class B(A):
 def QuotedX(self):
  return '"' + self.X() + '"'

def ReturnsA():
 return A()

の様なものがあったとして、ReturnsA() の戻り値を B のインスタンスと見て QuotedX を
呼びたいんです。動的にメソッドを追加するというのは無しで、何か方法はあるのでしょうか。
225デフォルトの名無しさん:2006/10/25(水) 00:52:13
>>224
それはダウンキャストでもアップキャストでもない。単なるキチガイキャスト。w
なぜそんなことをやりたいと思ったのかを書けばもうちょっとマシな質問になるだろう。
226デフォルトの名無しさん:2006/10/25(水) 00:53:28
>>224
Pythonならダウン"キャスト"なんてする必要もない
その例は本当にダウンキャストの例なのか?
227デフォルトの名無しさん:2006/10/25(水) 01:07:26
QuotedXを呼び出すつもりでQuotedYと書いてた、
とか言うオチじゃないだろうな。
228デフォルトの名無しさん:2006/10/25(水) 01:09:36
難しいことを簡単に考えるのが頭のいい人。
難しいことを難しくしか考えられないのはバカ。
しかもこういうバカは自分がバカであることに気づかないから始末に負えない。
229デフォルトの名無しさん:2006/10/25(水) 01:21:24
> def ReturnsA():
> return A()
> の様なものがあったとして、ReturnsA() の戻り値を B のインスタンスと見て
> QuotedX を呼びたいんです。

返してるのがAのインスタンスなのに、Bとして扱いたいってこと??
そりゃいくらなんでも無茶じゃねぇだろうか。
230224:2006/10/25(水) 01:24:42
うん、よく考えたらダウンキャストじゃないですね。あと、上の例はちょっと足りませんでした。
クラス B は、追加のデータはなく、

class B(A):
 def X(self):
  return '[' + A.X(self) + ']'

 def QuotedX(self):
  return '"' + self.X() + '"'

といった感じです。要するに、インターフェースを換えずに振る舞いを換えたり
新たなインターフェースを追加したいと言うことです。そういうことをしたければ
委譲したり、動的にメソッドを追加・オーバーライドすればすればすむ話ですが、
面倒なのでw、A を B と思って B のメソッドを呼ぶ様な横着はできないかと思った次第です。
231デフォルトの名無しさん:2006/10/25(水) 01:37:23
結局メタクラスに誘導なんですね。
232デフォルトの名無しさん:2006/10/25(水) 01:41:23
>230
そんなあなたにとっておきの解。

つ [C++]
オールドスタイルキャストしちゃえばどんなポインタも望み通りのクラスインスタンスになれるよ!!
                     ハ_ハ  
                   ('(゚∀゚∩ でもしぬるよ!!
                    ヽ  〈 
                     ヽヽ_)
233デフォルトの名無しさん:2006/10/25(水) 01:47:36
230が言ってるのがどういうタイプの横着のことなのか分からん・・・
まさかそんな基礎設計的な部分で「タイプがめんどくさい」とか・・・・?w
234デフォルトの名無しさん:2006/10/25(水) 01:55:53
「俺ってすごい感」とか
そういうやつだと想像。
235227:2006/10/25(水) 02:04:19
読み違えてた。正直すまんかった。

こういうことだったのね。

a = ReturnsA()
a.__class__ = B

236デフォルトの名無しさん:2006/10/25(水) 05:02:26
>>230
>要するに、インターフェースを換えずに振る舞いを換えたり
>新たなインターフェースを追加したいと言うことです。
いくらなんでも矛盾してるだろ。いいたいことはわかるが。
つうか、こんなことができる言語ってなかなかないような気がする。
プロトタイプ指向でもない限り。

>>235
Pythonすげえ!
237デフォルトの名無しさん:2006/10/25(水) 08:08:53
委譲ということばがでたところで質問。

Python を使ってデザインパターンの説明してるページとかないですか?
238デフォルトの名無しさん:2006/10/25(水) 08:18:26
>>235
pythonスゲェが、これは・・・・
239デフォルトの名無しさん:2006/10/25(水) 09:00:47
おまえら賢いな。俺には>>224の言いたいこととやりたいことがサッパリ理解できないわけだが
240デフォルトの名無しさん:2006/10/25(水) 09:42:11
ここはエスパー養成スレですから
241デフォルトの名無しさん:2006/10/25(水) 10:44:50
242227:2006/10/25(水) 10:50:38
エスパーでも何でもない。釣られただけ。

要は、「(動的なクラス変更ができない言語のために発明された)
アスペクトとかデコレータとかをPythonでやるにはどうすればいいの?」
という質問なんでしょ。

動的なクラス変更ができるPythonなら、235で書いた(書かされた)通り、
「動的にクラスを変更すればできますよ」という答えが出てくるのは必定。

そこで>>236>>235のような「それは反則じゃないのか」という反応が起きるのも予定調和。

そして、この流れ自体が、>>231が喝破したように、
>>224が仕掛けたメタクラス誘導のための釣り。

これに釣られて、227で墓穴を掘り、235でネタを提供させられ、
ついにはこの解説を書かされる羽目になったのが俺。
243242(=227):2006/10/25(水) 10:56:39
すまん。

そこで>>236>>235のような

は、

そこで>>236>>238のような

の間違い。
何あわててるんだ。俺。
244デフォルトの名無しさん:2006/10/25(水) 11:02:44
暇人の集うスレへようこそ。
245デフォルトの名無しさん:2006/10/25(水) 11:26:42
227を釣るスレになりました。
246デフォルトの名無しさん:2006/10/25(水) 13:00:33
>>227
正直、感動した。
まとまらない質問に、見事なまとめで答える。
Q&Aの見本のようなやり取りだと思った。
247デフォルトの名無しさん:2006/10/25(水) 13:12:02
初心者ばかりのスレで孤立する 241
248デフォルトの名無しさん:2006/10/25(水) 13:59:48
変数が定義されてるかどうか調べるのに、

if not '__host' in dir(self)

とかやってる私は変ですかね。

249デフォルトの名無しさん:2006/10/25(水) 14:02:33
>>248
>dir(self)
hasattr(self, '__host')
250デフォルトの名無しさん:2006/10/25(水) 14:02:37
変じゃないよ。
みんな隠しているけど、ここはそんな人たちばかりだから。
251デフォルトの名無しさん:2006/10/25(水) 14:22:37
>>249
なるほど。

本当にこういう方法しかないんですか

>>250
?

252デフォルトの名無しさん:2006/10/25(水) 15:11:39
vars(self).has_key('__host')
253デフォルトの名無しさん:2006/10/25(水) 15:14:30
has_key() は西暦 3000 年に消滅するので
なるべく使わないようにしたほうがいい
254デフォルトの名無しさん:2006/10/25(水) 16:01:48
うちの鬼が笑っています。
255デフォルトの名無しさん:2006/10/25(水) 16:08:04
dispatchモジュールについて知りたいのですが、
検索してもドキュメントの類を見つけることができませんでした。
唯一見つけた情報が下のDWの記事くらいで。
http://www-128.ibm.com/developerworks/library/l-cppeak2/

dispatchモジュールの使い方を学ぶにはどこを参照すれば
いいのでしょうか?
256Python初心者:2006/10/25(水) 16:23:07
空気を読まないPython初心者として一言:
Pythonのオブジェクト指向は他の言語とは
かなり違いますよね。
class PythonJoke :

  X = 'Python'
  if X=='Ruby':
    print 'Yadaa! Ruby'
  else:
    print 'OK! Python'
  
PythonJoke()

PythonJoke->OP:
OK! Python

クラスが普通の関数と同じように使える…

>>199
クラスの定義文の外でクラス自体も、それから
生成したインスタンスも自由に変更出来る。

確かにパワフルな印象はあるが、これはこれで
使いこなすのは結構難しいような気がする。
特に多人数で開発するとき。
いちいちdir()で中味を確認しないとクラスや
インスタンスが使えない…、なんてことには
ならないのだろうか?
257デフォルトの名無しさん:2006/10/25(水) 16:23:09
>>254
お宅の鬼によろしく言っておいてください。
258デフォルトの名無しさん:2006/10/25(水) 16:38:44
>>255
そんなことをここで訊くのが間違っている。
こんなところに出入りしている暇があったら素直にソース嫁。
259255:2006/10/25(水) 16:41:25
>>258
ソースがある場所だけでも教えていただけると助かります。
260デフォルトの名無しさん:2006/10/25(水) 16:47:49
>>259
おまいの貼り付けた記事に書いてあるだろうがー
261デフォルトの名無しさん:2006/10/25(水) 16:51:35
>>255
一応関連記事
ttp://www-06.ibm.com/jp/developerworks/linux/030606/j_l-pydisp.html
いいか、もうこんなとこに来るんじゃないぞー
262デフォルトの名無しさん:2006/10/25(水) 16:52:09
256 が仲間になりたそうにこちらを見ています
263デフォルトの名無しさん:2006/10/25(水) 17:42:50
ソフトウェアデザインの2.5解説は On Python を読みましたと言わんばかりだったなぁ。

264デフォルトの名無しさん:2006/10/25(水) 17:44:55
>>263
On Pythonって何?
おっぱいそんしか知らないぜ。
265デフォルトの名無しさん:2006/10/25(水) 17:58:28
>>264
雑誌原稿が書きたくて悔しいご本人だよ。
そっとしておいてやれ(ww
266デフォルトの名無しさん:2006/10/25(水) 18:27:16
>>265
うはwwwwwwwww
とんだ馬鹿面引っこ抜いちまった。

サイト管理者の方、すみませんでした。
267デフォルトの名無しさん:2006/10/25(水) 18:32:46
>>263
どっちも python.org の英文を元にした二次情報だろ.
悔しいのかも知れないが、こういうときは黙っておくのが男というものだよ.
268デフォルトの名無しさん:2006/10/25(水) 18:59:53
新着47件ですか
269デフォルトの名無しさん:2006/10/25(水) 19:05:51
あの、forでまわして配列に値を順繰りに詰め込んで逝くという動作についてなんだけど
ネットを駆使して調べて

n=[1,2,3,4,5,6,7,8,9,10]
sum = [0]

for r in n:
sum = sum + r
print "sum[", r, "] =", sum[r]

みたいにしたのですが、このやりかたはPython的にはスマートではなかったりするんでしょうか?
270デフォルトの名無しさん:2006/10/25(水) 19:14:29
リストの内包表記かな。
あと、print文も
print "sum[%d] =%d" % (r, sum[r])
みたいにするのがいいと思う。
271デフォルトの名無しさん:2006/10/25(水) 19:15:04
>>269
ネットで何を調べたのかは知らないでげすが、組み込み関数のreduceを使って
>>> reduce(lambda a, b: a + b, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 0)
55
とするのが、関数型言語的にはベタでスマートなやり方ですがPython的には
どっちでもいいでげす。
272デフォルトの名無しさん:2006/10/25(水) 19:30:06
>>270
>>271
アドバイスありがとうございますですm(..)m
273デフォルトの名無しさん:2006/10/25(水) 19:32:26
>>263

http://www.shido.info/py/

「おっぱいそん」ってこれか?
ググッてはじめて見たぞ。
こんな些末なサイトを引き合いに出す理由が分からん。
やっぱり本人だろ?
辺境のサイトにアンチがいるとも思えんしな。
274デフォルトの名無しさん:2006/10/25(水) 20:27:59
組み込み関数sum()を知らないスマートな初心者の集まるスレはここですか?
275デフォルトの名無しさん:2006/10/25(水) 20:48:58
269がめちゃくちゃに見えるんだけど・・・?
276デフォルトの名無しさん:2006/10/25(水) 20:51:08
嫌なことや気になることでもあったに違いない
277デフォルトの名無しさん:2006/10/25(水) 20:52:51
めちゃくちゃでもいいんだよ。
lambdaやreduceやメタクラスさえ使えれば満足なんだから。
278デフォルトの名無しさん:2006/10/25(水) 20:57:02
lamda や reduce , メタクラスを不用意に使いたがる人たちを
「おっぱいそん」と呼んで蔑むことにしましょう
279デフォルトの名無しさん:2006/10/25(水) 21:09:37
>>269
コレ動くの?
280デフォルトの名無しさん:2006/10/25(水) 21:30:36
testしてないコード書き込む奴はバカ
281デフォルトの名無しさん:2006/10/25(水) 21:31:56
エスパー能力で補完すると
sum[r] = sum[r-1] + r
としたいのかな
282デフォルトの名無しさん:2006/10/25(水) 21:32:33
スレを流したい理由でもあったんだろ。
283デフォルトの名無しさん:2006/10/25(水) 21:57:04
最近、Pythonに興味を持ったんだけどPythonスレっていつもこういう流れなのか?
つーか、ここって本当にPythonの本スレなのか?
284デフォルトの名無しさん:2006/10/25(水) 22:03:21
スレ番二桁過ぎた辺りから特に、住民が陰険になってこんな感じ。
慣れればどうってことないんで、本スレと認識してOK
285デフォルトの名無しさん:2006/10/25(水) 22:06:30
さて、そろそろメタ(ry
286デフォルトの名無しさん:2006/10/25(水) 22:18:52
>>273
いちいちURLさらすお前が本人だろ?
287283:2006/10/25(水) 22:20:01
海外はともかく日本国内で代表的なフォーラムがあるようにも見えないし、
MLやmixiのコミュも閑古鳥が鳴いてる。
Perlの次に人気がある(はずの)スクリプト言語のユーザー達は、一体どこで
情報交換してるのか不思議で仕方ない。
288デフォルトの名無しさん:2006/10/25(水) 22:26:13
とりあえずどんな言語だろうと、mixiに期待するのは止めとけ。
多少荒れたとしても、この板の方がはるかにマシだ。
289デフォルトの名無しさん:2006/10/25(水) 22:33:13
n=[1,2,3,4,5,6,7,8,9,10]
sum = [0]

for r in n:
sum = sum + [r]
print "sum[", r, "] =", sum[r]

でした。
290デフォルトの名無しさん:2006/10/25(水) 22:53:00
そいやこんな本も出ていましたが立ち読みしたとかでもいいので内容おしえれ。
http://www.cbook24.com/bm_detail.asp?sku=4839921709
291デフォルトの名無しさん:2006/10/25(水) 23:06:43
>>290
Pythonの解説があまりにも中途半端だと思った.
この著者本当にPython知ってんのかレベルの中途半端さ.
292デフォルトの名無しさん:2006/10/25(水) 23:14:32
初心者の集まるスレはここですか?って、そりゃないだろう。何それ?

もうレスは完結してるのに自分で勝手にやったんだろう?
教えてもらった君が言うのもなんだが、ちょっと暴走してるんじゃないか。

組み込み関数sum()のことも、展開した形に直されて実行されると知っているから、
"展開したらどういう構造になるのか?"と聞いたわけ。
そうしたら、"速度を気にするのなら使うべきではない。が、どうしても構造が気になるならファイル出力して見ろ"と
返答をいただいた。
これはつまり、組み込み関数sum()は遅い、少なくとも組み込み関数sum()を使うことで手打ちよりも速く最適化されるわけではないって言ってるんじゃないの?
これは、組み込み関数sum()が実行速度を落とす(結果論)以外の何にあたるの?
一体誰が、組み込み関数sum()で実行速度が遅くなる"理屈"を聞いたんだよ。そこも勝手な勘違いだろう。

組み込み関数sum()を使うと実行速度が遅くなる、 答えは YES  これでいいんだろ? これが結果だろ?
それが>>274の"組み込み関数sum()を知らないスマートな初心者の集まるスレはここですか?"ってことだろ?
何を余計な理屈を言って、それで"初心者の集まるスレはここですか?"ですか?w

初心者の集まるスレはここですか?ってw

お前、どんな内容であろうと、叩くか、人の足元見て博識ぶって偉そうにするかしか能がないだろ。
やらされたくなかったらレス自体しなければいいこと。
レスさえしなければ、俺の質問は流されて終わるか、他の誰かが知識を分けてくれるか、ただそれだけ。

Pythonしか使えないやつというより、俺も含めてこのスレ全体が腐ってるんじゃねーか。
俺と同類だよ同類。俺もこの程度でファビョンするくらいだから低俗なんだろうがな、
お前らも同等な低俗さだよ。同じような人間として言わせてくれよな。否、同じ生き物として認めたがらないんだろうけどな。

まぁ、このレス以降もう来ないから、テキトーに釣られときな。
教えてくれてありがとーな。
293デフォルトの名無しさん:2006/10/25(水) 23:15:50
このスレの住人もあまり人のこと言えませんよね
294デフォルトの名無しさん:2006/10/25(水) 23:19:27
アワワワワワ。
295デフォルトの名無しさん:2006/10/25(水) 23:21:25
ひゃあ、きちがいだ。
296デフォルトの名無しさん:2006/10/25(水) 23:22:24
>>295
答えは YES
297デフォルトの名無しさん:2006/10/25(水) 23:31:40
sumとかstrとかintとかいう変数を定義しちゃダメだぉ。

>>> int = 0
>>> int("123")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: 'int' object is not callable
298デフォルトの名無しさん:2006/10/25(水) 23:45:44
ある程度の規模のツールを作ることになって、文字列処理がメイン
と言うこともあり、Pythonで作って配布する事になった。
しかし、py2exeを試したが、DLL付属でとてもサイズがデカイ。
IronPythonも考えたが、相手方の環境を考え見送った。

結局py2exeで作った実行ファイルを渡したが、「サイズでかい」、とか
「何このDLL」とか、色々言われてしまった。
次に展開する時は、「前のツールと同じ場所に置いて」とでも言えばいいのか。

Pythonで作ったツールとか、社内とかで配布したい場合どうしてる?
299デフォルトの名無しさん:2006/10/26(木) 00:12:41
そうね。ミキシは無いね。
一番いいのは自分で調べることだと思う。
ほぼ全ての情報はWebにまとまってる。
300デフォルトの名無しさん:2006/10/26(木) 00:16:21
>>298
俺は、会社の規模がさほど大きくないこともあって、問答無用で
Python をインストールさせるが...

それより、IronPython を使わせる方がハードル高い気がする。
301デフォルトの名無しさん:2006/10/26(木) 00:21:15
GUIのアレ、うろ覚えだけど.netだっけか。
記事で見たら付属ファイル無いとかなんとか、
夢みたいな良い事ばかり書いてあったな。
302298:2006/10/26(木) 00:27:43
>>300
Cygwin環境があれば、強制的に入れさせることも「あり」なんですけどね・・・。
setup.pyにWINDOWSフォルダにPython24.DLLをコピーする処理を書こうかとも
思ったが、後で問題になるかも知れないと思い断念。

早いところVBスクリプトとかJスクリプトとかと同じ扱いになって欲しい<Python
303デフォルトの名無しさん:2006/10/26(木) 01:00:14
(car, *cdr) = [1,2,3,4]
とかできると嬉しいんだけどな…。
304デフォルトの名無しさん:2006/10/26(木) 01:10:26
mixiのPythonコミュは管理人が小物過ぎるんだろ。
あと,MLは時代遅れかもな。
最近の奴はBlog + ソーシャルブックマークとかで情報収集してるんじゃね?
305デフォルトの名無しさん:2006/10/26(木) 01:21:02
>>302
1つのexeファイルにパッキング
圧縮すれば小さくなるし
306デフォルトの名無しさん:2006/10/26(木) 01:37:02
>289
それ動く?

なんで リスト が必要ではない(と思われる)ところで
[]を書こうとするのか?
307デフォルトの名無しさん:2006/10/26(木) 02:14:22
>>289
sum = sum + [r] よりも sum.append(r) の方が効率的で速いよ。

>>303
car, cdr = x[0], x[1:] と書くのと大差ないよーな。
308デフォルトの名無しさん:2006/10/26(木) 02:38:21
>>298
> Pythonで作ったツールとか、社内とかで配布したい場合どうしてる?

実際にそういう状況になったことはないけど、もしやるとしたら
1.作ったアプリの方は Python で言うところの「パッケージ」にして(ディレクトリ毎に __init__.py を書いて)
setup.py を書いて Windows 用インストーラを生成して配布。
2.Windows 版 Python も Python.org が配布している Windows 用インストーラを推奨。
3.アプリの実行は
a)DOS 窓でパッケージ内の foo.py を実行してもらう(拡張子は .py のままにする)
b)Python 2.5 を使うことにして、新設された -m オプションを使ってパッケージ内の foo モジュールを起動。
c)Tkinter で(←ここ重要)簡単な GUI をつける。
といった方法を採用。ショートカットの作成を推奨したり
.bat ファイルを用意するぐらいはやってもバチは当たるまい。

とにかく Windows 用インストーラでサクサク、というのが敷居を下げるコツのような希ガス。
アンインストールも簡単で後腐れがなければなお良い(これもお試しユーザにとっては重要)。
309デフォルトの名無しさん:2006/10/26(木) 03:01:29
バイナリはpy2exeで作って、インストーラはInno Setupで作っているよ。
結果的にファイルがいっぱいあっても、インストーラ一発でインストールできるなら
素人さんは文句言わないような気がする。
310デフォルトの名無しさん:2006/10/26(木) 03:08:41
入れるときに見えるアーカイブが一つなら、中がカオスでも気づかれないしね。
311デフォルトの名無しさん:2006/10/26(木) 07:56:13
>>306
やりかたが分からなかったから
とりあえずやりたいことを実現するために出来ることをやってみたら
この形が一番始めにできたからです

いわばオブジェクト指…思考です!
312デフォルトの名無しさん:2006/10/26(木) 10:11:45
アワワワワワ。
313デフォルトの名無しさん:2006/10/26(木) 12:52:46
Numpy 1.0出たね。
って使ってる人少ない?
314デフォルトの名無しさん:2006/10/26(木) 13:05:59
289はHaskell的なスタイルだなって思った。
315デフォルトの名無しさん:2006/10/26(木) 13:39:09
関数型言語風のスタイルも
オブジェクト指向風のスタイルも
そつなくこなすのがPython的にいけてるスタイル
316デフォルトの名無しさん:2006/10/26(木) 13:55:53
317デフォルトの名無しさん:2006/10/26(木) 14:20:03
>>316
「本人乙」とか言われるぞ!!
318デフォルトの名無しさん:2006/10/26(木) 17:31:02
>>313
インスコ完了
319デフォルトの名無しさん:2006/10/26(木) 18:05:42
>>313
scipyスーパーパック対応待ち。
320Python初心者:2006/10/26(木) 20:47:47
>>262
ねぇ、
>>199
とか
>>256
なんかの問題に関して、Python関係の本や雑誌には
一切触れられてないが、ここに集う人々にとっては
全て織り込み済み?

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.

個人的には、結構
ugly,implicit,complex and complicated
な面白い話題じゃないかと思うが…

例えばC言語スレなんかでは、
>scanfを暴走させるのはスキル不足
>getsを使うのは知識不足
>strtokでハマルのは理解力不足
>よって、馬鹿はscanf, gets, strtokは使わない方が良い。
「堂々と」言語仕様の問題点を指摘していたような
記憶がある。
321デフォルトの名無しさん:2006/10/26(木) 21:34:39
杞憂でしょう
ついうっかり間違えて使うようなバグまがいの仕様ではないし

上級者しか使えない言語は問題だけど
上級者しか使わない言語機能は問題にはならない
322デフォルトの名無しさん:2006/10/26(木) 21:53:32
これだから原理主義者は...。
323デフォルトの名無しさん:2006/10/26(木) 21:56:18
何が問題なの?
324デフォルトの名無しさん:2006/10/26(木) 22:14:18
クラス名に()を付けてコンストラクタを呼び出す構文なら他の言語にもある。
325デフォルトの名無しさん:2006/10/26(木) 22:17:49
>>320
323に同意。それらの言語仕様の何がどう問題なの?
トリッキーなことができるのと、実際にトリッキーなことをやるのとは違う。
トリッキーなことをしなくても Python プログラムは書ける。
Python は法律じゃない。トリッキーな抜け穴があっても誰も困らない。
326デフォルトの名無しさん:2006/10/26(木) 22:27:47
いわゆる「弱い型付け」の言語は実行時とそれ以前(たとえばコンパイル)
の区別がなくて、関数やクラスの定義を実行時に解釈する物が殆ど。
クラス定義が実行時に解釈されるんだから、たとえばメソッドの書き換え
が実行時に出来るかどうかは、その属性が外から変更できるかどうか、の
問題に帰結する。

トリッキーだと思うかどうかは読む人のバックグラウンド次第じゃないか?
lambdaとかクロージャとかの経験があれば、あってよかった、ってなもんかも。

そういう話じゃなくて?
327デフォルトの名無しさん:2006/10/26(木) 22:28:00
>320
言語仕様の問題点?古い時代の標準ライブラリの問題点だろ?
328デフォルトの名無しさん:2006/10/26(木) 22:29:32
釣りが上手ですね。
329デフォルトの名無しさん:2006/10/26(木) 23:07:48
原理主義者だ、原理主義者だ、何の原理か知らねえけど原理主義者だ!
330デフォルトの名無しさん:2006/10/26(木) 23:23:53
perl みたいに一つのこと解決する短い式や文をいろんな書き方で書けるという
特徴を否定的に表現して、英語でなんとかって言うらしいんだけど、なんだっけ?
331デフォルトの名無しさん:2006/10/26(木) 23:28:11
TOOWTDI
There's Only One Way To Do It

かな?違うかも
332298:2006/10/26(木) 23:40:16
亀レスだけど、>>308 thanx。
トイレの内側に貼っておくわ。

一応配布対象は、同じ開発メンバーだったりするんだが、
全員から「Python?しらね」、と言われてしまっている。
「PerlとC言語を足して、2で割って、$記号を引いた様な言語」と言うと納得してもらえる。

本当はもっと伝えたいことはあるんだが、雰囲気がサワヤカ過ぎて言葉にできない。
333デフォルトの名無しさん:2006/10/26(木) 23:50:05
>>331
それです!
どうもありがとう。で、最近は python もいろいろな書き方できるようになってきた

ような気がする。というのが本題でした。

具体例とか言われると、迷うけど、2.5の参考演算子とか、要るの〜?って感じで。
3000には switch も来るそうで。
複数の言語を浅くやってると、switch $i in だか case in $i だか esac だか栄作だか
混乱するんですよね。
334デフォルトの名無しさん:2006/10/26(木) 23:53:14
>>333
replace('参考', '三項')
335デフォルトの名無しさん:2006/10/26(木) 23:57:30
>>333
参考演算子って、自分の知らない仕様が追加されているのかと思ってあせったYO!
「三項」ね・・・。

switchイラネ。if - elifで十分じゃん・・・。
たまにelse ifと書いて、叱られるけど。
336デフォルトの名無しさん:2006/10/27(金) 00:08:03
>>335
if 〜 elifだと、条件式の評価が複数回になる
switchなら、一回で済む
337デフォルトの名無しさん:2006/10/27(金) 00:15:39
>2.5の参考演算子とか、要るの〜?って感じで。
あの構文使うぐらいなら今まで通り〜and〜or〜と書いたほうがよっぽど分かり易いな。
338335:2006/10/27(金) 00:16:07
>>336
それは本当?
内部的に、やっていることは一緒じゃなくて?
339デフォルトの名無しさん:2006/10/27(金) 00:19:17
>>336
そうなの?
確かにCだと switch のほうが速いと言うのは定説ではあるが
(いまどきは知らんが、もしかしたら最適化でそんなのどっちでも同じになってるかも)
340デフォルトの名無しさん:2006/10/27(金) 00:21:17
http://www.python.org/dev/peps/pep-3103/

There are two main motivations to want to introduce new syntax for this idiom:

* It is repetitive: the variable and the test operator, usually '==' or 'in', are repeated in each if/elif branch.
* It is inefficient: when an expression matches the last test value (or no test value at all) it is compared to each of the preceding test values.

PEPを子守歌にして寝ろ。クソどもが。
341335:2006/10/27(金) 00:26:27
調べてみたが、switch-caseではなくて
match identifier:
 object:
  syntax
 object:
  continue # Equal C - no break
 any:
  pass   # Equal C - default

みたいな文法なんだねぇ。
書けるにしても、もうちっと他の言語と合わせて欲しいかも。

>>339
VCやGCCやMIPS系のコンパイラでも殆ど最適化かかっているよ。
ただ、逐一判定は行っているので(無駄な判定はとばしてしまうが)、
>>336が本当ならすごい実装していることになる。
342デフォルトの名無しさん:2006/10/27(金) 00:29:27
>>341
どこを調べたんだ?!
343デフォルトの名無しさん:2006/10/27(金) 00:30:26
あわわわわわ。
344デフォルトの名無しさん:2006/10/27(金) 00:31:09
341は、自分では頭がいいつもりのトンデモ電波野郎。
345341:2006/10/27(金) 00:31:29
どうやら、古いネタを調べていたようだw

http://mail.python.org/pipermail/python-list/2002-March/095015.html

2002年の話かw
346デフォルトの名無しさん:2006/10/27(金) 00:32:07
m9(^Д^)プギャー!!
347デフォルトの名無しさん:2006/10/27(金) 00:33:41
動的言語らしからぬ微妙な実装構文
348デフォルトの名無しさん:2006/10/27(金) 00:33:42
いずれにせよ、C みたいに、case の break を書かずに置いて複数の条件ブロックを
実行させるようなことはできないみたいね。

まぁアレもどうかとは思うが。break 忘れる奴多すぎ。
349デフォルトの名無しさん:2006/10/27(金) 00:36:22
Googleに変なものを掴まされて、恥ずかしくなったので
トンデモ電波野郎は去ることにするよ。
350デフォルトの名無しさん:2006/10/27(金) 12:44:12
351Python初心者:2006/10/27(金) 15:03:55
>>321〜329
>何が問題なの?
例えば、
「初めてのPython」でオーバーライドのことを
オーバーロードと表現している???
引数の数で関数の動きを変えることが
Pythonでは出来ないんだとP415まで読んで
ようやく分かりました。「初心者」が嵌り易い
問題だと思いませんか?

class OverLoad :
  
  #オーバーロードのサンプル
  def add (self,x,y,z):
    return x + y + z
  def add (self,x,y):
    return x + y

print OverLoad().add(3,4)
print OverLoad().add(3,4,5)

>>>
7

Traceback (most recent call last):
 File "C:/Python25/overload.py", line 14, in <module>
  print ol3.add(3,4,5)
TypeError: add() takes exactly 3 arguments (4 given)
352デフォルトの名無しさん:2006/10/27(金) 15:08:52
そりゃ大変だ。まぁがんばれ
353デフォルトの名無しさん:2006/10/27(金) 15:39:57
>>351
トンデモ電波野郎乙
354デフォルトの名無しさん:2006/10/27(金) 15:42:47
>>351
「初心者」が嵌り易い問題だとは思いません
355デフォルトの名無しさん:2006/10/27(金) 15:46:33
頼むから、質問するなら最後まで読み通してからにしろよ・・・
質問に答えてから「答えは〜ページに書いてありました」なんて失礼にもほどがある
356デフォルトの名無しさん:2006/10/27(金) 15:48:26
Python初心者の真の目的は、はじPyの評価をおとしめることなのである。
357デフォルトの名無しさん:2006/10/27(金) 15:51:38
釣りが上手ですね
358デフォルトの名無しさん:2006/10/27(金) 15:55:33
>>351
Javaでも使ってろ,というのもカワイソウなので

ヒント: >>> dir(OverLoad)
359デフォルトの名無しさん:2006/10/27(金) 16:12:18
「メソッドが上書きされて警告も出ないなんて、初心者が…」という展開になると予想。
360デフォルトの名無しさん:2006/10/27(金) 16:15:43
×「メソッドが上書きされて警告も出ないなんて、初心者が…」
○「メソッドが上書きされて警告も出ないなんて、私が…」
361デフォルトの名無しさん:2006/10/27(金) 16:42:33
大好きな他の言語達と比べる前に
まず本の一冊くらい読み通そうね。
362デフォルトの名無しさん:2006/10/27(金) 18:03:29
>>351
>引数の数で関数の動きを変えることが
>Pythonでは出来ないんだとP415まで読んで

どこの初心者が引数の数の違う関数を書くのだよw

ちなみにちゃんと出来るので心配無用
http://www.python.jp/doc/release/tut/node6.html#SECTION006730000000000000000
363デフォルトの名無しさん:2006/10/27(金) 18:44:55
>>362
>ちなみにちゃんと出来るので心配無用

こういうこと言ってんじゃないと思うが。

まぁ引数の数が違うメソッドの名前を同じにしたい場面って、あまり思いつかないけどね。
>>351 のサンプルだったら確かに >>362 の紹介した任意引数リストで
十分だと思うし。

リストを容易に扱える時点でC++とかのオーバーロードなんて(゚听)イラネ。
364デフォルトの名無しさん:2006/10/27(金) 19:05:52
>>351
> >何が問題なの?
> 例えば、

ぜんぜんたとえになっていない件について。
>>199>>256>>351はそれぞれ違う言語機能の話じゃん。

どうもあなたの読書感想文はウケが悪いみたいだから、
続きは自分の日記帳に書くのがいいと思われ。
365デフォルトの名無しさん:2006/10/27(金) 19:50:25
>>364
いいじゃん。ネタないんだから、このネタで。
366デフォルトの名無しさん:2006/10/27(金) 19:58:14
Python初心者氏、なんか「その機能を使って何をやりたいのか」がイメージ出来てないように見える
Pythonに対してだけでなく、暗黙の内に比較対照にしている言語に対してもだけど
367デフォルトの名無しさん:2006/10/27(金) 20:03:31
原理主義者だもの。
汚いものは消毒しないとね。
368デフォルトの名無しさん:2006/10/27(金) 20:53:54
だからよ、何の原理よ?
369デフォルトの名無しさん:2006/10/27(金) 21:02:15
プログラム言語論の原理主義
370デフォルトの名無しさん:2006/10/27(金) 21:17:57
リストのデータ型を文字列から整数型に
変換したいのですが、ループを使わずに
一気に変換することは可能でしょうか?
例:
['1','2','3'] → [1, 2, 3]

どなたかご教授頂けないでしょうか。
よろしくお願い致します。
371デフォルトの名無しさん:2006/10/27(金) 21:25:12
map(lambda x: int(x), ['1', '2', '3'])
372デフォルトの名無しさん:2006/10/27(金) 21:36:44
map(int, ['1', '2', '3'])
373370:2006/10/27(金) 21:49:43
>>371
>>372

どうもありがとうございます(´∀`*)
mapという関数を使えばよいのですね。
本当に助かりました。
374デフォルトの名無しさん:2006/10/27(金) 21:50:35
a = [int(x) for x in a]
375デフォルトの名無しさん:2006/10/27(金) 22:09:43
言語仕様にちょっとでもケチをつける奴には死を!って感じだな。
376デフォルトの名無しさん:2006/10/27(金) 22:14:54
単に馬鹿が馬鹿にされているだけだろ
377デフォルトの名無しさん:2006/10/27(金) 23:33:37
ケチのつけ方に悪意がこもっていたり、
個人の好き嫌いを一般論にすり替えようとしてたりしてるから。
378デフォルトの名無しさん:2006/10/27(金) 23:34:32
故に原理主義者と。
379デフォルトの名無しさん:2006/10/27(金) 23:35:39
変な火の粉が降りかかってくるから振り払わないと火傷しちゃうんですよぉ
380デフォルトの名無しさん:2006/10/27(金) 23:43:49
「このぱいそん、じゃばじゃない!」と言っているようだ。
381デフォルトの名無しさん:2006/10/27(金) 23:55:29
香ばしくなってまいりました。
382デフォルトの名無しさん:2006/10/28(土) 00:17:06
そういうときは原理主義でメタクラスな話でもしようよ
383デフォルトの名無しさん:2006/10/28(土) 00:28:29
原理主義者なら当然 self は廃止だよな。
384デフォルトの名無しさん:2006/10/28(土) 00:35:20
どういう原理だよ
385デフォルトの名無しさん:2006/10/28(土) 00:36:28
我々の教典には「はじめにselfありき」とあります.
386デフォルトの名無しさん:2006/10/28(土) 00:40:25
はらさとるですが何か?
387デフォルトの名無しさん:2006/10/28(土) 00:40:36
原理主義的にはメタクラスはプロキシーパタンに分類されます
388デフォルトの名無しさん:2006/10/28(土) 05:39:34
アワワワワ。
389デフォルトの名無しさん:2006/10/28(土) 09:27:49
同じ反応ばっかりしてると某おっさんなのがバレバレ仮面。
390デフォルトの名無しさん:2006/10/28(土) 09:30:46
敢えて悩まずに「Python初心者」「原理主義」「メタクラス」を透明アボリッシュ
391デフォルトの名無しさん:2006/10/28(土) 09:39:23
言語仕様にちょっとでもケチをつける奴には死を!って感じだな。
392デフォルトの名無しさん:2006/10/28(土) 09:41:45
故に原理主義者なんですよぉ。
393デフォルトの名無しさん:2006/10/28(土) 09:43:07
>>389
>バレバレ仮面

大正ロマンの香りのする妄想ですね。
394デフォルトの名無しさん:2006/10/28(土) 09:48:09
バレバレ仮面のメタクラス的実装について、原理主義的に議論しようぜ.
395デフォルトの名無しさん:2006/10/28(土) 10:03:55
>>Python初心者
正直、私はあなたを応援するよ。
あなたの質問は、他の言語スレならどれも問題なく応答されている類のものだ。
「空気が読めない」とか批判されているけど、
はっきり言って、ここのスレの空気は腐っている。
396デフォルトの名無しさん:2006/10/28(土) 10:13:01
本人乙
397デフォルトの名無しさん:2006/10/28(土) 10:23:36
>>395
バレバレ仮面乙。
398デフォルトの名無しさん:2006/10/28(土) 10:26:57
>>3889-392
腐ったスレの代表例
399デフォルトの名無しさん:2006/10/28(土) 10:35:44
メタクラス原理主義
デザパタ原理主義
lambda原理主義
態度のでかい初心者はいぢめる原理主義
腐ったスレとけなしつつ、ほかに行くとこがない原理主義
400デフォルトの名無しさん:2006/10/28(土) 11:34:38
>>395
本の一冊もまともに最後まで読めないアホを応援すんなよWWW
401デフォルトの名無しさん:2006/10/28(土) 11:50:56
いずれにせよPEP一読してからね>バレバレ仮面
402デフォルトの名無しさん:2006/10/28(土) 11:54:02
Python初心者とか言ってる奴は何をやろうとしてるんだ?
なんか、JavaやLispの参考書のサンプルをPythonで書き直してみるとか
そういうただ不毛なパズルをやってるだけのような気がする…

そもそも違うものなんだから、考え方や心構えも違うわけで。
例えとしては微妙かも知れないが、
性善説に基づいたある程度の秩序が成り立ってる所に
性悪説の常識を振り回しながら踏み込んでいく、っていうのは
必ずしも望ましい事ではないと思う。
403デフォルトの名無しさん:2006/10/28(土) 12:17:36
>そもそも違うものなんだから、考え方や心構えも違うわけで。

その考え方や心構えを聞いているように見えるが。
404デフォルトの名無しさん:2006/10/28(土) 12:23:54
言語仕様にちょっとでもケチをつける奴には死を!と叫ぶ
おそらくPythonやってもいない粘着嵐を追い出さないとダメだ。
405デフォルトの名無しさん:2006/10/28(土) 13:06:25
いい加減に、そろそろPythonの話を。
まずはメタクラスあたりから。
406デフォルトの名無しさん:2006/10/28(土) 13:32:01
398 の超ロングパスはいつか届く日は来るのだろうか
407デフォルトの名無しさん:2006/10/28(土) 13:37:47
なんだかキャラとして独立したバレバレ仮面のAAよろしく
408デフォルトの名無しさん:2006/10/28(土) 13:41:57
>>407

     川|川川  川
    ‖川 | | | ー ー||        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    川川 | |ー□--□l      < 同じ反応ばっかりしてると某おっさんなのがバレバレ仮面。
    川川| | \ J/||        \_______________
    川川‖  | ロ|/| カタカタカタ
    川川|‖\|__|l|l  _____
   /川川川__/川川  |  | ̄ ̄\ \
   |  川川|  |/川l__,|  |    | ̄ ̄|
   |  \_|__|_|、__|  |    |__|
   |  \____|つ   |__|__/ /
   |      |  | | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕
  |       | ̄
409デフォルトの名無しさん:2006/10/28(土) 13:46:14
キモイ
410デフォルトの名無しさん:2006/10/28(土) 13:48:39
python の宿題。。。スレのほうがよっぽど良スレな。

ところで、python の thread で mutex で複数待たせて、mutex 開放するとするじゃない?
そのときブロックから復帰するのってFIFO?それともOSまかせの順不同?
411デフォルトの名無しさん:2006/10/28(土) 14:07:51
それリファレンスに書いてなかったっけ?
412デフォルトの名無しさん:2006/10/28(土) 14:33:14
PythonでSICPやります
413Python初心者:2006/10/28(土) 15:38:33
>>395
応援Tks.
ところで、ここにお集まりの先生方!
(と、Python原理主義者の皆さん…)
http://diveintopython.org/
で「Dive into Python」が無料で読めます。

Dive Into Python has already been fully or partially
translated into several languages. If you translate
it into another language and would like to be listed
here, just let me know.

Italian
French
Spanish
Chinese
Korean
Russian

この中に同じアジア近隣諸国であるChinese Korean が
有ってJapaneseが無いのは日本のPythonファンとして、
いかにも寂しい気がしますよね。(さすがに
North Koreaは無いが…)
どなたかこれを翻訳して、2ちゃんねるにおける
Pythoniansの実力の程を世界に知らしめてやろう!、
といった「気迫溢れる先生」は居られないのだろうか?
414デフォルトの名無しさん:2006/10/28(土) 15:51:12
>>411
>どのスレッドが処理を進行できるのかは定義されておらず、実装によって異なるかもしれません。

かなぁ。結局 pthread もそうだし、python の thread って pthread 利用してるんだっけか。
pthread だと lock 開放順をFIFO したかったら root 権が要るんだけど、python ではどうなんだろうなぁ。
415デフォルトの名無しさん:2006/10/28(土) 15:52:05
>>412

意味はよくわからないが、SICP の例文を全部 Python で書いてくれるとうれしい
416デフォルトの名無しさん:2006/10/28(土) 15:53:16
見事にスルー仮面。
417デフォルトの名無しさん:2006/10/28(土) 16:09:19
>>413
検索してみると翻訳作業をはじめたといってる人は見つかるんだけど
続けてるとかあきらめたとかの現況がわからないので
別個にはじめていいものかどうかわからんね。
418デフォルトの名無しさん:2006/10/28(土) 16:11:38
本一冊訳すのは根性が必要だぞ。
このスレにいるキモオタどもには、そんな根性のあるやつなんていないよ。
419デフォルトの名無しさん:2006/10/28(土) 16:45:06
前半:すでにある文書とかぶりまくり
後半:英語読めない素人には必要ナシ
420デフォルトの名無しさん:2006/10/28(土) 16:54:31
>>302
Pythonで作られたプレゼンツールKeyJnoteの
Windows版はPythonの必要な部分だけ抜き出して使っているみたいだ。
ファイル数は354、16.0MB。
まあでかいけど、いまどきはさほど問題になる大きさでもないと思う。
これと同じ方法が使えないかな?
421デフォルトの名無しさん:2006/10/28(土) 17:01:21
アワワワワ仮面。
422デフォルトの名無しさん:2006/10/28(土) 17:01:53
初心者ですが、Programming Python, 3rd Edition 買ってみました。
http://safari.oreilly.com/0596009259
ページ総数1596に圧倒されてます。買う前から判ってたけどさ。
423デフォルトの名無しさん:2006/10/28(土) 17:19:07
すげーページ数だ。。>1596ページ
前版もかなり分厚かったと記憶してるけど、3rd editionは何センチぐらいになるんですか?
424デフォルトの名無しさん:2006/10/28(土) 17:38:22
幅や高さより厚いです!(ウソ)
425デフォルトの名無しさん:2006/10/28(土) 17:40:50
つまんないし寒い。
426デフォルトの名無しさん:2006/10/28(土) 17:42:42
メタクラス仮面。
427デフォルトの名無しさん:2006/10/28(土) 17:45:49
>>422
随分厚くなってるんだね。
どんなことが加筆されてるんだろうか。
428デフォルトの名無しさん:2006/10/28(土) 18:11:10
  _  ∩
( ゚∀゚)彡 おっぱいそん!
 ⊂彡      おっぱいそん!
429デフォルトの名無しさん:2006/10/28(土) 18:20:54
コードを書き込む→原理主義者扱い
430デフォルトの名無しさん:2006/10/28(土) 18:40:21
強迫神経症?
431デフォルトの名無しさん:2006/10/28(土) 18:40:52
>>422 構成がめちゃくちゃな希ガス
432デフォルトの名無しさん:2006/10/28(土) 18:51:32
なんかProgramming Pythonって普通のプログラミング言語本みたいな文法項目の網羅的解説見たいな構成になってないよね。
433デフォルトの名無しさん:2006/10/28(土) 18:55:13
>>>^Zqawsedfrtgyhujikolp

でも終了可能
434デフォルトの名無しさん:2006/10/28(土) 20:09:38
日本語のおらいりいは表紙がねずみ
435デフォルトの名無しさん:2006/10/28(土) 20:19:23
エラーをキャッチするような部分をデコレーターにして
付けたりはずしたりするといい感じ
436デフォルトの名無しさん:2006/10/28(土) 20:24:19
凸レータの@書法って廃止になんねーかなぁ。
面倒でもちゃんと書けばいいと思った。@とか使いたくない。perlじゃあるまいし。
437デフォルトの名無しさん:2006/10/28(土) 20:35:05
どっちかっていうとJavaのアノテーション記法を意識してると思うけどね
438デフォルトの名無しさん:2006/10/28(土) 20:49:35
使わないから気にならない
439デフォルトの名無しさん:2006/10/28(土) 20:54:18
テストに出るぞ
440デフォルトの名無しさん:2006/10/28(土) 21:12:36
一応貼っておきますね

An Introduction to Python & IronPython
http://www.okisoft.co.jp/esc/python/iron-python-intro.html
441デフォルトの名無しさん:2006/10/28(土) 21:23:41
>>436
ちゃんと、ってどう書くの?
442デフォルトの名無しさん:2006/10/28(土) 21:33:20
>>440
いろんなことがごっちゃに書いてあってとても読みづらいですね。
これも釣りなのかと思ってしまう(WWWWWWWWW
443デフォルトの名無しさん:2006/10/28(土) 23:01:56
>>422
自分も買った。背表紙は6.0cmあった。重さは2.0Kg。
紀伊国屋から持って帰るのがちと辛かった。
444デフォルトの名無しさん:2006/10/29(日) 00:57:26
445デフォルトの名無しさん:2006/10/29(日) 01:47:32
(a)==aの合理性について
446デフォルトの名無しさん:2006/10/29(日) 01:56:17
(a,)としないとタプルにならないんだよね
意外とはまりポイントになりやすい

そのかわり、次のどっちも同じ戻り値になるわけだが

return a
return (a)

447デフォルトの名無しさん:2006/10/29(日) 02:00:44
>>445
(a) == aにならないのはおかしいって言いたいのか?

要素1個のタプルを作りたかったら、
(a,)って書かないとダメなのが気持ち悪い、とかじゃなくて?
448447:2006/10/29(日) 02:01:33
かぶった。鬱氏。
449デフォルトの名無しさん:2006/10/29(日) 02:03:25
タプルの本質は ',' なんだよね
'(' ')' はダミーだと思え
450デフォルトの名無しさん:2006/10/29(日) 02:27:05
マニュアルには
> 一つの要素を持つタプルは、値の後ろにコンマを続ける
> (単一の値を丸括弧で囲むだけでは不十分です) ことで構築できます。
> 美しくはないけれども、効果的です。
とあるね。

The Zen of Python の
> Special cases aren't special enough to break the rules.
> Although practicality beats purity.
あたりだろうか。
451デフォルトの名無しさん:2006/10/29(日) 04:38:22
バックスラッシュを使わずに行を継続するのに便利かなと思ったり・・
return ( a
+ b
+ c )
(a)がタプルにならないおかげでこういう行継続が可能に・・・
(使い方間違ってるのかな・・・
452デフォルトの名無しさん:2006/10/29(日) 07:52:23
>>449
その自慢の「本質」とやらで空タプルを作ってくれ。
453デフォルトの名無しさん:2006/10/29(日) 08:09:21
「() と書けば空タプルが作れる」って例外が設けられてるだけじゃね?
454デフォルトの名無しさん:2006/10/29(日) 08:15:28
例外は(a, )のほうだろ
()、[]、{}で空のが作れるのは統一されてる
455デフォルトの名無しさん:2006/10/29(日) 08:19:03
(a,)が気持ち悪いひとは「','がタプルを作るんだよ」と思えば気にならないよ
程度の意味しかないな。
456デフォルトの名無しさん:2006/10/29(日) 09:45:23
>>454
別に括弧で括らなくても、カンマを付けるだけでタプルになるんだよね。

>>> t = 1,
>>> t
(1,)

そういう意味で >>449 は「',' がタプルの本質」って書いたんじゃないだろうか。
んで、本来は括弧が不要である以上「()で空タプルができる」ってのが例外かな、と思ったんだけど。

まあ、あんまりグダグダと議論しても、Guidoにでも聞かない限り答えはでないか。
457デフォルトの名無しさん:2006/10/29(日) 11:32:19
>>456
答えは言語仕様で厳格に規定されていると思うけど
458デフォルトの名無しさん:2006/10/29(日) 11:38:19
タプルにカッコが必須でないおかげで、以下のように書けるんだよな

def foo():
  return 1, 2, 3

a, b, c = foo()

気が利いてるよな
459デフォルトの名無しさん:2006/10/29(日) 11:56:02
そもそも式をまとめるのと関数の引数の範囲を表すのとタプルを作るのに同じ小括弧を使っているのがまずいよ
だから、タプルには 〔きっこう括弧〕 でも使う事にすれば良かったんだ
460デフォルトの名無しさん:2006/10/29(日) 11:58:33
特に関係ないが きっこうかっこ って微妙にすわりが悪いな
461デフォルトの名無しさん:2006/10/29(日) 12:07:05
「」 『』 【】 《》 とかいろいろ使えそうだな
462デフォルトの名無しさん:2006/10/29(日) 13:10:10
配列の最大値をとるには、max(list)を使えばいいのは分ったんだけど、
indexの値と一緒にとりたい場合って、組み込みの関数ってあるんすかね?
(val,index)=max(list)見たいな感じで、list内の最大値と、そのインデックスが帰ってくると嬉しい。
463デフォルトの名無しさん:2006/10/29(日) 13:21:13
(1, 2, 3, 4, 4)みたいに、最大値が複数ある場合を考えないとならないので
アドホックな方法は存在しえないかもな
max()で帰ってきた値をindex()に渡せばインデックスは得られるよ
464デフォルトの名無しさん:2006/10/29(日) 13:38:32
自明な解

a=(1, 2, 3, 4, 4)
[i[0] for i in enumerate(a) if i[1] == max(a)]
465デフォルトの名無しさん:2006/10/29(日) 13:58:43
こういうのは?

>>> def trev(t): return t[1], t[0]

>>> a = [1.0, 2.0, 3.0, 4.0]
>>> trev(max(map(trev, enumerate(a))))
(3, 4.0)
466デフォルトの名無しさん:2006/10/29(日) 14:26:10
素直にやるならこう?

def where_is_max(L):
  for index, value in enumerate(L):
    if value == max(L):
      return (index, value)
467462:2006/10/29(日) 14:32:51
色々なやりかたありがとうです。
468デフォルトの名無しさん:2006/10/29(日) 15:48:47
引数リストも内部ではタプルとして持ち歩くから、別な物と考えるのは微妙かも。
469デフォルトの名無しさん:2006/10/29(日) 17:37:22
実装はそうかもしれないが、

hoge(a, b, c)



hoge a, b, c

と書いたりは出来ないので表記上は別物になるでしょう
470デフォルトの名無しさん:2006/10/29(日) 18:59:01
value, index = max(zip(L, range(len(L))))
471デフォルトの名無しさん:2006/10/29(日) 19:02:17
>タプルには 〔きっこう括弧〕 でも使う事にすれば良かったん
459でもすぐに思いつく程度のことをGuidoが考えなかったとでも?
472デフォルトの名無しさん:2006/10/29(日) 19:11:58
そりゃGuidoがJIS記号文字を日常的につかっていればちょっとは思いついたかもね。
473デフォルトの名無しさん:2006/10/29(日) 19:49:25
from operator import itemgetter
index, value = max(enumerate(a), key=itemgetter(1))
474Python初心者:2006/10/29(日) 20:47:08
>>422
>初心者ですが、Programming Python, 3rd Edition 買ってみました。
>ページ総数1596に圧倒されてます。買う前から判ってたけどさ。
重かったろうねぇ…
「初めてのPython」->715ページの倍!
私は現在ようやく476ページまで読破したところです。

ところでLuts先生がPythonの講義をすると、必ず受講者の
半分がオブジェクト指向プログラミングのところで
脱落するそうです。ー>(熟睡する人もいるとか…)
「Pythonの」オブジェクト指向で脱落した人は本当に
「半分で」済んでいるのだろうか?
結構奥が深いというか、複雑怪奇というか、脱落するのは
ある意味必然的な結果のように感じる。
先生は他の言語でオブジェクト指向によるシステム開発
経験の有る無しが受講生の覚醒と熟睡を分けると書いて
いるが、返って有る人の方が熟睡度が深いかもね?
475デフォルトの名無しさん:2006/10/29(日) 20:50:47
Sugeee勉強になったよ。ありがとさん。
476デフォルトの名無しさん:2006/10/29(日) 21:01:05
>>472
Unicodeにはいろんな括弧があるから今後設計される言語は楽しみだなw
477デフォルトの名無しさん:2006/10/29(日) 21:05:03
色んな括弧を華麗に使い分ける言語なんて使いたくないけどな
478デフォルトの名無しさん:2006/10/29(日) 21:49:06
perl みたいにワケワカメな記号を沢山覚えないといけないのはイヤ
479デフォルトの名無しさん:2006/10/29(日) 21:49:18
<タプル>でいいじゃん
480デフォルトの名無しさん:2006/10/29(日) 21:57:00
括弧だけで構成されたBlainF*ck系実装って絶対あるだろーなー
481デフォルトの名無しさん:2006/10/29(日) 22:05:48
>>478
それも嫌だが、
begin-tuple 1, 2, 3, end-tuple
みたいなのもちょっと鬱陶しいぞw
要はバランス感覚だね
482デフォルトの名無しさん:2006/10/29(日) 22:06:09
>>479
http://www.python.org/dev/peps/pep-0318/

<...>の導入はデコレータの時にも検討されているので読んでみれ。
言語の仕様策定の難しさといったら、常人の想像を越えているな。
483デフォルトの名無しさん:2006/10/29(日) 22:12:11
>>474
本は最後まで読んでから物を言え、と
何度言われれば分かるの?
484デフォルトの名無しさん:2006/10/29(日) 22:25:40
>>483
いい加減、放置したらええんでないの
485デフォルトの名無しさん:2006/10/29(日) 22:43:32
これだけ人の言うことを無視する人も珍しいね。なんとゆーか、暖簾に腕押し。
486デフォルトの名無しさん:2006/10/29(日) 22:45:01
キチガイだもの。
487デフォルトの名無しさん:2006/10/29(日) 23:02:26
俺の、俺の、俺の話を聞けぇぇぇ〜〜〜〜♪
488デフォルトの名無しさん:2006/10/29(日) 23:07:25
>487
あー、交渉人が主役のエロゲでそれが決め台詞な奴いた。
489デフォルトの名無しさん:2006/10/29(日) 23:07:55
「応援する」とかいうやつも怪しいもんだな(WWWW
490デフォルトの名無しさん:2006/10/29(日) 23:32:32
逆に
hoge((a,b,c))

hoge(a,b,c)
と書くこもとも出来ない、
この辺の仕様の関係で、引数の*valっていうのが抜かせないんだと思う・・
491デフォルトの名無しさん:2006/10/29(日) 23:49:23
キチガイは、「はじめてのPython」を陥れようとする工作員なんだぜ。
492デフォルトの名無しさん:2006/10/30(月) 00:47:20
hoge(*(a, b, c)) となら書けるね。args = (a, b, c); hoge(*args) でも可。
493デフォルトの名無しさん:2006/10/30(月) 00:51:44

♪ ∧,_∧
   (´・ω・`) ))          Simple, fun, and indented〜♪
 (( ( つ ヽ、   ♪
   〉 とノ )))
  (__ノ^(_)
494デフォルトの名無しさん:2006/10/30(月) 00:55:40
不定個の引数を受け取りたい場面を普通にある。
そのための仕様だろ。
495デフォルトの名無しさん:2006/10/30(月) 01:38:53
この*argsとか**argsが出るたびに、背中がむずむずっとする。凡人の成果じゃないなと。
496デフォルトの名無しさん:2006/10/30(月) 10:40:11
不定個数の引数を受け取る仕様は他の言語にもあるしPython以前からもあった。
497デフォルトの名無しさん:2006/10/30(月) 11:23:18
>>496
こういうピンボケがいるからこのスレはダメになる
498デフォルトの名無しさん:2006/10/30(月) 11:31:13
>>495
>*argsとか**args

異なる引数に同じ名前をつけたらダメだよ。
基本から勉強しようね。
499デフォルトの名無しさん:2006/10/30(月) 11:33:37
>>497
お前がピンボケと思うのなら、「いや、そうじゃなくてね」と話を続けるのが大人ってもんだ.
このコミュニケーション不全野郎が.
500デフォルトの名無しさん:2006/10/30(月) 11:56:12
>>498
そういう事じゃないだろ
hogeって書いてあったら全部同じ変数かよ
501デフォルトの名無しさん:2006/10/30(月) 12:01:06
つーか普通 ** ときたら kws とかだろ? args はねえよ
495 = 497 = 500は世間を知らないお子ちゃま決定(WWWWWW
502デフォルトの名無しさん:2006/10/30(月) 12:04:18
やれやれだぜ・・・
503デフォルトの名無しさん:2006/10/30(月) 12:08:29
おれはkeywordsかkeys派。
ハンガリアンなツワモノはいますか?
504デフォルトの名無しさん:2006/10/30(月) 12:17:44
>>495には、どういう理由でどうむずむずするのか説明希望
505デフォルトの名無しさん:2006/10/30(月) 12:18:57
しかしkwsってヘンだよね(www

V I P P E R か (wwwwwww
506デフォルトの名無しさん:2006/10/30(月) 12:24:25
*a と **k だろ?
507デフォルトの名無しさん:2006/10/30(月) 12:26:05
>>504
>502
508デフォルトの名無しさん:2006/10/30(月) 12:51:14
>>496
誰もPythonが初めて実装したなんて言ってないと思うよ
509デフォルトの名無しさん:2006/10/30(月) 13:09:48
対話型インタープリターのの新しい終了の仕方見つけた。
>>>type(exit)("death note")()
510デフォルトの名無しさん:2006/10/30(月) 13:18:53
>509
カッコが多くてムズムズッとするぜ
511デフォルトの名無しさん:2006/10/30(月) 13:39:31
>>509

>>496 は天然だからほっとこう。
512デフォルトの名無しさん:2006/10/30(月) 13:49:56
>>509
>type(exit)("death note")()

TypeError: 'str' object is not callable
513デフォルトの名無しさん:2006/10/30(月) 13:50:39
>>511
>502
514デフォルトの名無しさん:2006/10/30(月) 13:58:28
>>512
>>type(exit)("death note")()
NameError: No. I wrote your name. You die.
515デフォルトの名無しさん:2006/10/30(月) 14:09:14
エスパー能力を総動員して真性厨房と和むスレはここですか?
516デフォルトの名無しさん:2006/10/30(月) 14:18:59
>>515にはタプルが不足しています
517デフォルトの名無しさん:2006/10/30(月) 14:22:27
こんなときにバレバレ仮面がいてくれたら。。。
518デフォルトの名無しさん:2006/10/30(月) 14:33:06
>>512
ん?もしかして古いpythonだと、exitが文字列だったりするんですかね?
type(exit)だけだと何になりますか?
519デフォルトの名無しさん:2006/10/30(月) 14:46:22
>>518
/path/to/lib/python2.5/site.py

class Quitter(object):
  def __init__(self, name):
    self.name = name
  def __repr__(self):
    return 'Use %s() or %s to exit' % (self.name, eof)
   :
520デフォルトの名無しさん:2006/10/30(月) 14:48:22
(続き)
/path/to/lib/python2.4/site.py

def setquit():
  """(ry
  """
  if os.sep == ':':
    exit = 'Use Cmd-Q to quit.'
  elif os.sep == '¥¥':
    exit = 'Use Ctrl-Z plus Return to exit.'
  else:
    exit = 'Use Ctrl-D (i.e. EOF) to exit.'
  __builtin__.quit = __builtin__.exit = exit
521デフォルトの名無しさん:2006/10/30(月) 15:46:48
もう誰が基地外で誰が基地外でないのかすら分からなくなってしまった
522デフォルトの名無しさん:2006/10/30(月) 16:40:11
おやおや、>>521は自分以外に「でない人」などいないことに気づいていないようですよ。
523デフォルトの名無しさん:2006/10/30(月) 16:43:51
そんなの些細な問題ですよ
524デフォルトの名無しさん:2006/10/30(月) 16:46:44
>>522
二重否定の構文は分かりづらく、メンテナンス性が悪いと思ったので
リファクタリングしてみました

> おやおや、>>521は自分だけが「基地外」であることに気づいていないようですよ。
525デフォルトの名無しさん:2006/10/30(月) 16:48:28
わかりやすいな
526デフォルトの名無しさん:2006/10/30(月) 16:58:27
まさに Pythonic !
527デフォルトの名無しさん:2006/10/30(月) 17:06:45
print "Simple is better than complex."
528デフォルトの名無しさん:2006/10/30(月) 17:25:29
あれ、ほんとにそうなるのか?
529デフォルトの名無しさん:2006/10/30(月) 17:30:13
志村〜、うしろ〜〜!、うしろ〜〜!
530デフォルトの名無しさん:2006/10/30(月) 17:39:33
>>519>>520
途中でPythonのバージョンが変わってるようですが???w
ソース確認してきたけどやっぱり2.4のexitはただの文字列で、
2.5のexitはQuitterクラス(という終了用のクラス)になってる模様。
だから2.5だと>>509みたいな遊び(?)が可能
531デフォルトの名無しさん:2006/10/30(月) 18:00:00
>>530
>ソース確認してきたけどやっぱり2.4のexitはただの文字列で、
>2.5のexitはQuitterクラス(という終了用のクラス)になってる模様。

519と520に該当コードが張ってあるじゃん。
君は分裂症とかそういう病気の人かな?
532Python初心者:2006/10/30(月) 18:25:58
>>483
>本は最後まで読んでから物を言え、と
>何度言われれば分かるの?
ご忠告により昨日頑張って525ページまで読みました。
Lutz先生がそのページにおいて、
「Pythonという言語のコア部分の解説は終わりです。
ここまで読んだ方は、十分に自分はPythonプログラマ
であると名乗る資格があるでしょう。」
と認証されました。「履歴書」にそう書けって…
533Python初心者:2006/10/30(月) 18:28:01
ところで、この前だれかPythonでインターフェースを
実装する方法を書いてましたよね?以下、私も考えましたが、
今一ぴったり来ない。他に良い手はあるでしょうか?

class Interface:
  
  def virtual_method(self):
    
    self.name = 'Python!'
    self.act()
    
  def act(self):
    
    assert 0,'act must be defined!'

class Sub(Interface):  
  
  def act(self):
    
    print 'Let us act with '+ self.name
    
if __name__=='__main__':

  s = Sub()
  s.virtual_method()

>>>
Let us act with Python!
534デフォルトの名無しさん:2006/10/30(月) 18:34:53
>>531
ああ、日本語がまったく書いてないから>>519>>520の意図が全然読めてなかった。
しかし、これで分裂症に見られるわけか。なんかもう書きたくない。
535デフォルトの名無しさん:2006/10/30(月) 18:49:59
じゃあねバイバイ
536デフォルトの名無しさん:2006/10/30(月) 18:57:22
アワワワワワ。
537デフォルトの名無しさん:2006/10/30(月) 20:03:48
O/Rマッピングツールというか、オブジェクトをそのまんまXMLとして
吐き出すようなモジュールってありますか?

あるいは、そんなものって需要ありますか?作ろうとしてるんですが。
538デフォルトの名無しさん:2006/10/30(月) 20:29:27
>>533
zope3は自前でインターフェースを実装している
539デフォルトの名無しさん:2006/10/30(月) 20:31:30
>>533
そゆのは Template Method パタンとゆーのでは。

_________________________
    <○ノ
     ‖
     くく
しまった!デザパタはNGワードだった!
オレが止めているうちに他の話題に移れ!
早く!早く!オレに構わず逝け!
540デフォルトの名無しさん:2006/10/30(月) 20:37:03
541デフォルトの名無しさん:2006/10/30(月) 21:16:33
>>540
ありがとうございます、たくさんあるんですね。
さっそくさわってみようと思います。

他に、XMLObjectなるものを見つけました。
http://xmlobject.sourceforge.net/
542デフォルトの名無しさん:2006/10/30(月) 21:18:41
構ってクンの言語クソオタとか
ひたすらソース貼るだけで日本語では罵倒以外出来ない奴とか…。

Pythonに興味を持った人がこのスレ見て
「Pythonプログラマは人格破綻者ばっかりだ」とか思われたら
悔しくてたまらないわあ。
543デフォルトの名無しさん:2006/10/30(月) 21:33:11
工作員乙。
544デフォルトの名無しさん:2006/10/30(月) 21:49:53
>>542
このスレだけ見てそういう判断をするのは問題だし、そういう人間はおらんだろう。
545デフォルトの名無しさん:2006/10/30(月) 22:41:44
>>542
真っ先に指摘すべきは
空気が読めず何度言われても態度を改めない「Python初心者」だろ(w

お前わかりやすすぎるんだよ、馬鹿が(wwwwwww
546デフォルトの名無しさん:2006/10/30(月) 23:22:53
pythonスレって、昔からこんなもんだ。
日本語の情報少なくて、とっつきにくい印象があるのか
底辺がものすご狭い。
547デフォルトの名無しさん:2006/10/30(月) 23:28:09
いや、昔はもっとまったりしてたよ
何ていうかこう、斜め上から爆撃するような人はほとんどいなかった
548デフォルトの名無しさん:2006/10/30(月) 23:40:21
そもそも人がいなかっただけ、とか。
Zope本出たね、って言っただけで厨呼ばわりされたりしたな
549デフォルトの名無しさん:2006/10/30(月) 23:41:54
キチガイもいなかったな。
550デフォルトの名無しさん:2006/10/30(月) 23:45:09
英語の情報に頼らざるを得ない状況ではDQNは寄ってこない。
日本語の情報が増えるとDQNも増える。
551デフォルトの名無しさん:2006/10/30(月) 23:46:34
海外在住の日本人の Pythonista で DQN を知ってるぞ(wwww
言葉遣いがヘンな奴。
552デフォルトの名無しさん:2006/10/31(火) 00:18:19
>>539
こういうノリは好きだ(w
ついでに言うとデザパタネタに過剰反応しちゃう奴もわりと好きだ(wwww
553デフォルトの名無しさん:2006/10/31(火) 00:33:36
俺は*args,**kwargsだ。
どっかで見たから真似したんだけど。
554デフォルトの名無しさん:2006/10/31(火) 01:59:24
そろそろPython初心者が
ちょっとでも話が難しくなると皆さんも分からないんですねw
とか言い出すのでスルーちからを発揮する時
555デフォルトの名無しさん:2006/10/31(火) 02:22:25
Python初心者の質問はあくまで初心者の域をでないものだし問題なくね?
556デフォルトの名無しさん:2006/10/31(火) 02:31:11
私は
Python初心者を
応援します
 
という自演
  
 
 

 
 

 
どーでもいいですよ
557デフォルトの名無しさん:2006/10/31(火) 05:32:38
>555
確かにPython自体は初心者だと思うが
他言語では「自称」中級者だろうなw
少なくとも本当の初心者とは違う

強いて言えばアンチって感じか?
結構知ってる癖に知らないフリして
さも今知ったフリして難癖付ける

ま、他言語でもアンチなんだろうがな
クレーマー気質の奴って居るからね
558デフォルトの名無しさん:2006/10/31(火) 11:23:49
特定言語の水準ではなくて、人間として初心者なんだと思うよ
559デフォルトの名無しさん:2006/10/31(火) 11:44:11
どんぐりの背比べ
560デフォルトの名無しさん:2006/10/31(火) 11:56:22
工作員乙。
561Python初心者:2006/10/31(火) 16:29:36
>>557
>結構知ってる癖に知らないフリして
>さも今知ったフリして難癖付ける

難癖つけてる気は全然ないんだが。
ここに居る連中でもPythonが最初のプログラミング言語だ
なんてのは少ないはずだ。大抵はVB,C,Java辺りから
流れてきてPythonが面白いので使ってる訳じゃないの?
謂わば全員Pythonは第二外国語のようなもんだ。
まして日本においてPythonで食ってるなんてのは極々少数。
(一部のWriter程度…か)
従ってこのスレで他の言語の視点から、それと比較して
Pythonの言語仕様を語ることが難癖とはとても思えん。

なお、読んでから発言しろ!って何回も指摘されるので
一応「初めてのPython」全て読了しました。
理解出来たかどうかは別にして…
と言うか、あまり厚いので最後の方では最初に書かれてあった
内容をすっかり忘れてしまい、zip()ってなんだったかなぁ?
って感じだった。
700ページでそれ位だから1600ページあるProgramming Python,
3rd Edition は…とても手が出ない。
もし、Programming Pythonを読んでない奴は、ここで発言する
資格無し、と言われれば沈黙せざるを得ないが…
562デフォルトの名無しさん:2006/10/31(火) 17:03:41
>>561
>もし、Programming Pythonを読んでない奴は、ここで発言する
>資格無し、と言われれば沈黙せざるを得ないが…

アンタに限ってはそういうことにしておいてほしいぜ。
563デフォルトの名無しさん:2006/10/31(火) 17:11:40
とりあえず3行以上のレスは禁止にしてほしいな
564デフォルトの名無しさん:2006/10/31(火) 17:28:07
今までほとんど傍観していたが、そろそろ、スレを分けるべき時かと思う。

○このスレの禁止事項
・デザパタ
・メタクラス
・他言語との比較(特にRuby)
・Pythonの言語仕様についての違和感
・3行以上の長文

いいかげん息がつまる。なぜこれらが禁止事項なのか、理解できない。
565デフォルトの名無しさん:2006/10/31(火) 17:28:27
> 従ってこのスレで他の言語の視点から、それと比較して
> Pythonの言語仕様を語る

には、それなりの知識や経験が必要で、本を途中まで読んだだけで語っても
他人に笑われるだけだってことだよ
566デフォルトの名無しさん:2006/10/31(火) 17:29:30
おまえ1行レスじゃ
ねぇ
かよ
567デフォルトの名無しさん:2006/10/31(火) 17:30:25
>>564
>○このスレの禁止事項

誰が決めたんだ(w
気にすることないじゃん
過剰反応する奴はスルーすればいいし
な?<4行目
568デフォルトの名無しさん:2006/10/31(火) 17:42:28
>>567
> 過剰反応する奴はスルーすればいいし
> な?<4行目

俺もそう思ってたんだが、今は考えが違う。

このスレの煽り叩きをずっと見ていたんだが、彼らは外部から来た荒らしじゃ
なくて、元からの住人で、質問の回答者をやったりもしてるんじゃないだろうか?
だったら、追い出そうとしたり、スルーして沈静化を待ったりしても意味がない。

つまり、愉快犯でやってるんじゃなくて、このスレの(彼らにとっての)クオ
リティを守ろうとしているんだと思う。理解しづらいが、メタクラスやデザパ
タや他言語の話をすると(彼らにとっての)クオリティが落ちるんだろう。

彼らには彼らの幸せがあるんだから、そういう話をどこか別スレでやれるなら、
お互い幸せになれるんじゃないかと思った。
>・3行以上の長文

python のコードはワンライナー限定? っていうのはチト問題ありすぎ
570デフォルトの名無しさん:2006/10/31(火) 19:52:05
つ〜*Darkside Python* Part.1
571デフォルトの名無しさん:2006/10/31(火) 19:54:05
3行以上の長文を禁止する必要はないだろう。確かに読まないから無駄ではあるけど。
572デフォルトの名無しさん:2006/10/31(火) 20:18:28
そうだ!
みんな本名で投稿すればいいんだよ!
573デフォルトの名無しさん:2006/10/31(火) 20:30:23
森 亮靖さんってエラい人?
どんなプログラム作ってる人?
574デフォルトの名無しさん:2006/10/31(火) 20:31:55
こういう構って君をスルーすればスレの雰囲気も変わってくると思うよ。
575デフォルトの名無しさん:2006/10/31(火) 20:40:53
俺の場合は C --> asm --> LISP --> Python だな。全部学部時代で。
Python 以外の LL は使うことはないけど常識的なことは知っている程度。
なぜ Python だったのか。単純に言えば C++ で書くのウザかったから。
576デフォルトの名無しさん:2006/10/31(火) 20:43:13
def hoge():
 def moge():
  return 'hogemoge'
 x = """hogemoge""""

>>> print getLocals(hoge)
{'x': 'hogemoge', 'moge': <function>}

てな感じでlocals()を外から取り出す関数って不可能?
577デフォルトの名無しさん:2006/10/31(火) 20:49:26
>>576
hogeを実行しない限り、取り出したいもの自体が存在していない気がする
578デフォルトの名無しさん:2006/10/31(火) 21:44:03
初心者ですが、デバッグ時などにオブジェクトの内容をdumpするにはどうしたらいいんでしょう?
phpでいうところのvar_dump()みたいのを探したんですが見つからないなーと。。
579デフォルトの名無しさん:2006/10/31(火) 21:44:17
>>576
とりあえず。
>>> hoge.func_code.co_varnames
('moge', 'x')
>>> hoge.func_code.co_nlocals
2
580デフォルトの名無しさん:2006/10/31(火) 21:46:30
>>578
print >>sys.stderr, repr(some_object)
とかじゃなくて?
581デフォルトの名無しさん:2006/10/31(火) 23:30:49
 (i) <私まんこちゃん!
 ╋
 /\
 (i) <お友達になろう!
 ╋
 /\
 (i) <私まんこちゃん!
 ╋
 /\

http://ex13.2ch.net/test/read.cgi/gline/1158927200/
582デフォルトの名無しさん:2006/11/01(水) 11:16:39
まんこちゃんはシングルトンになったほうがいいかもな。
583Python初心者:2006/11/01(水) 12:21:30
>>568

>つまり、愉快犯でやってるんじゃなくて、このスレの(彼らにとっての)クオ
>リティを守ろうとしているんだと思う。理解しづらいが、メタクラスやデザパ
>タや他言語の話をすると(彼らにとっての)クオリティが落ちるんだろう。

不思議だなやぁ?と思っていたがヒントが見えてきた。
メタクラス、デザパタ、多言語に共通するもの…
「実は」オブジェクト指向プログラミングじゃないの?
クオリティが落ちるじゃなくて、抽象度が上がると
困るとかさぁ…(あっ!5行になってしまったぁ…)
584デフォルトの名無しさん:2006/11/01(水) 12:29:41
>>583
お前が言うな(WWWWWWWWWWWW
585デフォルトの名無しさん:2006/11/01(水) 12:30:43
>>564
>>567
相手の言ってないことを持ち出して非難するのは詭弁家の手法だって
死んだじっちゃんが言ってた。

>>583
>メタクラス、デザパタ、多言語に共通するもの…
荒らしが持ち出す話題だから敬遠されてるだけ。
586デフォルトの名無しさん:2006/11/01(水) 12:51:52
>>585
君は言ったつもりが無くても、相手(の一部)にはそのように伝わっているの
だよ。

そして、君が荒らしと認定している人を、このスレの全員が荒らし認定してい
るわけではないのだ。
荒らし認定していない人からは、君は「デザパタの話をするだけで過剰反応す
る人」と受け取られているのだよ。

つまり、そういう人からは、君の方がが荒らし認定されているのだよ。

やはりスレは分けるべきだな。感覚が違いすぎる。そして、どちらが正しいと
か、間違っているとか決めることは出来ない。
587585:2006/11/01(水) 12:56:14
私はデザパタがらみの投稿をした覚えがないのだが。
588デフォルトの名無しさん:2006/11/01(水) 12:59:04
みなさんにはタプル成分とmonty成分の入った錠剤を処方しておきますね
589デフォルトの名無しさん:2006/11/01(水) 13:12:32
>>587
じゃあ、「デザパタがらみの投稿に対して、それを荒らしと感じた人(反応し
たかどうかは問わない)」と定義すればいいのか?

しかしこの定義の変更は瑣末に過ぎない。あなた本人が何をしたかは割とどう
でも良くて、本論は、

・デザパタ等の投稿を荒らしと感じた住人が多数いたこと。
・荒らしと感じなかった住人もいたこと。
・後者からは、何で荒らしなのか理解できず、むしろ前者の住人のうち、大き
 く反応した人々のほうを荒らしと感じたこと。
・どちらが正しいかを押し付ける権利はどちらにも無いこと。

この4点になる。これらについては理解してもらえるか?
590デフォルトの名無しさん:2006/11/01(水) 13:18:44
>>589
うだうだ言ってもしょうがないだろ。
どうせ相手は、3行以上のレスは読めない(読まない)んだから。議論しても無駄。
さっさとスレ分離すればいいんだよ。

新しくスレ立てするまでも無い。Pythonの宿題スレが見事に過疎ってる。
http://pc8.2ch.net/test/read.cgi/tech/1153585095/l20

どうせほとんど使い道が無いんだから、本スレが荒れそうな話題はこっちに書けば
いいだろ。
591585:2006/11/01(水) 13:31:32
どっちが正しいかなんて問題にしてないよ。繰り返すが相手の言ってないことを
ネタに他人を批判するのは止めたほうがいい。私にとっては君みたいなのは
荒らしで、君にとってはそうじゃない。それだけの話。
592デフォルトの名無しさん:2006/11/01(水) 13:53:25
ちょっとはPythonの話をしろよw
593デフォルトの名無しさん:2006/11/01(水) 13:54:01
運営厨みたいなメタ議論つまらんぞ
594デフォルトの名無しさん:2006/11/01(水) 14:02:29
>>591
すまんが、あんたが何を言っているのか、10回以上読み直して考えたが、正直
言って全然分からぬ。たぶんこちらのIQが低いんだろう。

だけど、こちらの話も伝わってないこと、議論をしても無駄なことだけはよく
分かった。今後なんか書きたいときは、自分も宿題スレに行くことにする。

>>592
ほらよ、スペイン宗教裁判だ。
http://b.hatena.ne.jp/entry/http://www.youtube.com/watch?v=zO68fUMWx3g
595デフォルトの名無しさん:2006/11/01(水) 14:20:40
>>594
なんでわざわざはてなブックマークのURLをはるのかね、あんたネットイナゴか?
いずれにしろお前の方が荒らしっぽく見えるわ(プ
596デフォルトの名無しさん:2006/11/01(水) 14:28:23
荒らしの定義がなんだか分かんなくなってきたと思われ。
597デフォルトの名無しさん:2006/11/01(水) 14:31:54
ヒマな奴、たくさんいるんだな
598デフォルトの名無しさん:2006/11/01(水) 14:42:24
>>595
ページ下方のコメント欄に、いくつかリンクが紹介されてて、
それを見ながらだとヒアリングの苦手な自分にも楽しめるんだよ。

それにしても
> お前の方が荒らしっぽく見えるわ(プ

こういう主張をすることに意味は無い、と再三書いたつもりだったが。
議論が無駄だったことを改めて痛感。
599デフォルトの名無しさん:2006/11/01(水) 14:42:26
>>564
(メタクラス|デザパタ)の話をしようぜ、とか、(Python|Ruby)はとにかく糞だ、
って話を切り出すのが荒らしの常套手段だから敬遠されてるんでは
俺はこうやってメタクラスを使ってるんだがどうよ、ってな内容ならレスもつくだろ
600デフォルトの名無しさん:2006/11/01(水) 14:43:28
喧嘩は他所でやってくれ。おまえらの論争に興味はない。
601デフォルトの名無しさん:2006/11/01(水) 14:44:12
喧嘩とMonty Pythonの話題は宿題スレでやればいいのにね
602デフォルトの名無しさん:2006/11/01(水) 14:47:43
どっちが荒らしかと聞かれれば両方荒らしだと思う
603デフォルトの名無しさん:2006/11/01(水) 14:49:04
ここは俺の日記帳だ!
604デフォルトの名無しさん:2006/11/01(水) 14:49:53
俺の、俺の、俺の話を聞け〜〜〜〜♪
605デフォルトの名無しさん:2006/11/01(水) 14:51:32
前から言いたかったのだが、一行レスは全部荒らし。長文のほうがはるかにマシ。
606デフォルトの名無しさん:2006/11/01(水) 14:52:40
じゃあ
これからは
3行以下のレスは禁止な。
607デフォルトの名無しさん:2006/11/01(水) 14:53:52
しかし困ったことに、3行以上の長文も禁止なのだよ。
608デフォルトの名無しさん:2006/11/01(水) 14:59:56
>>606















便



609デフォルトの名無しさん:2006/11/01(水) 15:01:37
>>607
ちょうど3行のレスは禁止の禁止だから、
逆にオーケーってことにしようぜ
610デフォルトの名無しさん:2006/11/01(水) 15:03:24
イライラを事故処理できないオコチャマと
それを見ていじって楽しむ暇な奴

みんな Pythonista さ
611デフォルトの名無しさん:2006/11/01(水) 18:18:03
禁じ手の行間読みが普通な、審判も居ない匿名掲示板で、議論なんぞ試みられても…
612デフォルトの名無しさん:2006/11/01(水) 18:35:43






613デフォルトの名無しさん:2006/11/01(水) 18:36:43





614デフォルトの名無しさん:2006/11/01(水) 18:37:37
苦いだけ。やめとけ
615デフォルトの名無しさん:2006/11/01(水) 18:44:12
>>614
よく知ってるな(wwww
616デフォルトの名無しさん:2006/11/01(水) 18:51:14
unko
tabesugi
617デフォルトの名無しさん:2006/11/01(水) 19:25:54
def unko():
print 'tabesugi'
618デフォルトの名無しさん:2006/11/01(水) 19:32:01
食ウンをデザパタ使って書こうぜ
619デフォルトの名無しさん:2006/11/01(水) 20:06:01
def tabesugi():
print "unko"
620デフォルトの名無しさん:2006/11/01(水) 20:41:52
VIPに迷い込んだかと思った
621デフォルトの名無しさん:2006/11/01(水) 21:02:09
"""
Nobody expects the Spanish inquisition! ジャジャ〜ン
"""
622デフォルトの名無しさん:2006/11/01(水) 22:45:38
こうばしく
623デフォルトの名無しさん:2006/11/01(水) 23:48:40
忘れてた!シングルトンの話をしようぜ!
624デフォルトの名無しさん:2006/11/02(木) 01:40:39
どうぞ、語ってください。
625デフォルトの名無しさん:2006/11/02(木) 02:15:41
>>620
VIPPERかよ(wwww
626デフォルトの名無しさん:2006/11/02(木) 02:15:45
シングルd

 本作の主人公。20歳。
 一目惚れ、弱気、非力、貧乏、ドジで押しに弱く何故か勘違いされてしまうという典型的なラブコメの主人公の気質を備えている。
 ヒロインの純子は「シングルさん」と呼ぶが、純子の恋敵である明日香からは「シングルd♪」と音符付きで呼ばれる事が多い。
 実家が魚屋の為か魚の知識は豊富だが血が苦手な為捌けない(むしろ純子の方が上手い)。
627デフォルトの名無しさん:2006/11/02(木) 02:18:11
>>626
メルヘン系かよ(wwwwwwwwwww
628デフォルトの名無しさん:2006/11/02(木) 03:47:00
シングルさん、実は女性説
629デフォルトの名無しさん:2006/11/02(木) 03:58:15
やおいかよ(wwwwwwwww
630デフォルトの名無しさん:2006/11/02(木) 04:08:35
awwwwww
631デフォルトの名無しさん:2006/11/02(木) 06:36:04
シングルdは童顔だが30才の「結婚しない女」っぽいな
632デフォルトの名無しさん:2006/11/02(木) 06:45:23
Pythonと関係ないしだいいちキモい
633デフォルトの名無しさん:2006/11/02(木) 08:43:10
あの、リストの中身を計算するのはどうすればいいのでしょうか?

L1=[1,2,3]で、
L2=L1*2だと
L2=[1,2,3,1,2,3]になってしまいます…

最終的にやりたいことは
L_all=[0,1,2,3,4,5]です。
L_all=[0] + L1で
L_all=[0,1,2,3]まではできたのですが、後ろの4,5がうまく行きません。
アドバイスよろしくお願いします
634デフォルトの名無しさん:2006/11/02(木) 08:56:47
>>633
リストの各要素に「2を掛ける」という処理を繰り返せばいい。
繰り返し(反復)の方法はマニュアルや参考書にたくさん書いてある。
635デフォルトの名無しさん:2006/11/02(木) 08:59:14
>>634
ありがとうございます。
繰り返しに関するページを見てみます。
636デフォルトの名無しさん:2006/11/02(木) 10:48:24
>>633
足し算・かけ算は参考書とか見ればわかるだろうけど、
質問の仕方が良くないね。

> L_all=[0,1,2,3]まではできたのですが、後ろの4,5がうまく行きません。

何をしようとしてうまくいかないのかわからない。
L_all=[0] + L1 + [4,5]
と、単純に足すのと別な方法で 4, 5 を追加したいの?
637デフォルトの名無しさん:2006/11/02(木) 11:02:14
633の質問で内容を理解したと思われる634は超エスパー。
 

あるいは自演。
638デフォルトの名無しさん:2006/11/02(木) 11:04:48
またこの流れか…
639デフォルトの名無しさん:2006/11/02(木) 11:37:42
エスパー力を最大限発揮してみた。

>>> l1 = [1, 2, 3]
>>> max_l1 = max(l1)
>>> max_l1
3
>>> l2 = [x + max_l1 for x in l1]
>>> l2
[4, 5, 6]
>>> l_all = [x - 1 for x in (l1 + l2)]
>>> l_all
[0, 1, 2, 3, 4, 5]

しかし、どうも合っている気がしない。
640デフォルトの名無しさん:2006/11/02(木) 11:55:09
リストは配列です。
641デフォルトの名無しさん:2006/11/02(木) 11:57:51
638は自治厨です。
642デフォルトの名無しさん:2006/11/02(木) 12:09:02
>>640
原理学園の生徒さんが来ましたよ
643デフォルトの名無しさん:2006/11/02(木) 12:32:15
学園ものか(wwwwww
644デフォルトの名無しさん:2006/11/02(木) 13:09:07
a = range(10)
a = [n*2 for n in a]
del a
645Python初心者:2006/11/02(木) 13:20:48
>>583
>>584
>お前が言うな(WWWWWWWWWWWW
なんか、「引き攣ったような」笑いだね?
646Python初心者:2006/11/02(木) 13:21:32
さて、そろそろPythonに戻って、質問があります。
下記の通りinput.txtを作り、
Name: Tarou Bob Cheng
Age: 28 34 46
City: Tokyo New_York Beijing

それを読み込み縦横を変換するプログラムを作成:
import sys
try:
  input = open('input.txt', 'r')
except IOError:
  print 'No File!'
  sys.exit()

lines = input.readlines()
wordlists = [line.split() for line in lines]
for row in zip(*wordlists):
  print '\t'.join(row)
すると何も出ない。
上記コード中、*wordlists[:-1]とすると:
Name:Age:City:
Tarou28Tokyo
Bob 34New_York
Cheng46Beijing
うまくOPされる。どうもinput.txt末尾の改行を
ダブって拾っているようだ。何故でしょうか?
print lines
['Name: Tarou Bob Cheng\n', 'Age: 28 34
 46\n', 'City: Tokyo New_York Beijing\n', '\n']
647デフォルトの名無しさん:2006/11/02(木) 13:23:34
>>644
a = range(10)
map(lambda x: x*2, a)
del a
648デフォルトの名無しさん:2006/11/02(木) 13:28:50
>>646
表示されるけど?末尾で二度改行してるという落ちじゃないよね。
649デフォルトの名無しさん:2006/11/02(木) 13:30:16
>>644,647
冗長で Python らしくないと思ったので,リファクタリングしてみたよ.

以下が書き換えたコードです.

650デフォルトの名無しさん:2006/11/02(木) 14:55:35
>>646
こちらも問題なく動く。
Python 2.4.3 - Enthought Edition 1.0.0.beta4 on WinXP
Python 2.3.5 on Debian woody
さらにDebianでは改行コードをDOS(\r\n)にして再挑戦。
いずれも再現せず。

そちらの環境を報告されたし。
651デフォルトの名無しさん:2006/11/02(木) 15:00:40
釣りがうまいですね。
652デフォルトの名無しさん:2006/11/02(木) 15:13:54
デコレータとかオブジェクト指向云々する奴が、print linesとかprint rowして原因を調べるセンスもないという矛盾。
653デフォルトの名無しさん:2006/11/02(木) 15:15:58
ゆえに人間として初心者である、と。
654Python初心者:2006/11/02(木) 16:32:42
つーか皆でPython初心者になろうぜ
655デフォルトの名無しさん:2006/11/02(木) 18:36:07
初心者しかいない。
656デフォルトの名無しさん:2006/11/02(木) 20:00:12
俺は初心者じゃない。
657デフォルトの名無しさん:2006/11/02(木) 20:10:50
初心者はみんなそう言う。
658デフォルトの名無しさん:2006/11/02(木) 20:37:10
ああ言えば上祐ばっか
659デフォルトの名無しさん:2006/11/02(木) 21:24:26
なまえ:しょしんしゃ
PYTHONれき:10ねんぐらい
660デフォルトの名無しさん:2006/11/02(木) 21:30:06
静かに、そして確実に世代交代が進んでいます。
661デフォルトの名無しさん:2006/11/02(木) 22:39:46
>>649
分かってないな。
メモリ上に
あらわれては消える
うたかたの
形眺めて
楽しむひと時
662デフォルトの名無しさん:2006/11/02(木) 22:44:23
>>661
どこを縦読み?
663デフォルトの名無しさん:2006/11/02(木) 22:53:26
 と
われ
かた
めて
664デフォルトの名無しさん:2006/11/02(木) 23:08:18
>>646
一時変数linesが余計、wordlistsも余計、inputも余計
665デフォルトの名無しさん:2006/11/02(木) 23:11:43
一行野郎あらわる
666デフォルトの名無しさん:2006/11/02(木) 23:11:48
ゆえに人間として初心者である、と。
667デフォルトの名無しさん:2006/11/02(木) 23:18:34
>>645
>なんか、「引き攣ったような」笑いだね?
引き攣っててゴメンね(WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
668デフォルトの名無しさん:2006/11/02(木) 23:32:24
で、お前らこの1週間で何行Pythonプログラムを書いたんだ?
669デフォルトの名無しさん:2006/11/02(木) 23:34:00
ここの質問検証するのに、20行くらいかな
670デフォルトの名無しさん:2006/11/02(木) 23:37:49
3000行くらいかな。我ながら少ないと思う。
671デフォルトの名無しさん:2006/11/02(木) 23:47:13
3.000行位かな
672670:2006/11/02(木) 23:50:25
オイラはTDDを実践しているので、実際に動いているコードは2/3くらいだ。
だから、実質的には2000行くらいかな。
673デフォルトの名無しさん:2006/11/03(金) 00:16:15
アイデアが来るのを待ってるので一行も
674デフォルトの名無しさん:2006/11/03(金) 00:44:05
3行半
675デフォルトの名無しさん:2006/11/03(金) 00:45:19
matlabのコードなら…
pythonは難しくて無理
676デフォルトの名無しさん:2006/11/03(金) 00:58:46
Mercurialのスレってある?
677デフォルトの名無しさん:2006/11/03(金) 01:11:26
>676ー、スレ検索、スレ検索!
678Python初心者:2006/11/03(金) 01:13:14
どうだろうね
679デフォルトの名無しさん:2006/11/03(金) 01:19:06
680Python初心者:2006/11/03(金) 01:45:23
>>679
誤爆ですか?
681デフォルトの名無しさん:2006/11/03(金) 01:50:35
>>672
ぶっちゃけPythonで1週間に2000行といったら相当なもん。
(C:\Python2.3\Lib\*.py にある185個のファイル中、
1000行以上あるのはわずかに17個。1割にも満たない。)
Pythonハカーに認定!w
682デフォルトの名無しさん:2006/11/03(金) 01:54:05
>>672
ところでTDDってTest Driven Developmentの略みたいだけど
具体的にはどーすんの?
doctestモジュールとかunittestモジュールを使うの?
683デフォルトの名無しさん:2006/11/03(金) 02:13:03
一週間で書いた3000行のうちの2000行が生き残ってる時点で糞プロジェクト確実
684デフォルトの名無しさん:2006/11/03(金) 02:47:36
>683
フーン
685デフォルトの名無しさん:2006/11/03(金) 03:35:14
客層変わったね。ゆとり教育ゆとり教育
686Python初心者:2006/11/03(金) 03:56:07
>>685
なかなか教えてくれないのもゆとり教育の弊害でしょうか?
687塩水 ◆1FrMT.vzQQ :2006/11/03(金) 04:11:16
クーロン力を計算するプログラムデキタ。
ソースの構成とかグダグダだと思うけど、やりたかった計算はできました\(^o^)/
ソース書きながらきづいたけど、結局複素数使わなくてもよかったみたいw
688デフォルトの名無しさん:2006/11/03(金) 04:26:58
687>>>越えられない壁>>>686
689デフォルトの名無しさん:2006/11/03(金) 06:45:36
任意の場所で改行したい時は
print ""
としてるのですが、python的な正攻法ってあるのでしょうか?
690デフォルトの名無しさん:2006/11/03(金) 07:19:36
引数なしで print
691デフォルトの名無しさん:2006/11/03(金) 07:41:48
どもですm(__)m
692デフォルトの名無しさん:2006/11/03(金) 08:07:35
越えられない壁を理解できていない例: ttp://d.hatena.ne.jp/morchin/20061102#p1
693デフォルトの名無しさん:2006/11/03(金) 08:13:47
学生の時にしっかり勉強しとけば…


の気持ちが分かる瞬間だねえ
694デフォルトの名無しさん:2006/11/03(金) 08:29:08
世の中には間違ったまま死んで逝く人の方が多いのです。だから気になさらぬように。
695670:2006/11/03(金) 08:53:41
>>681
ファイルは当然複数に別れてるよ。
先週末と昨日までの差分を取ったらその行数が出た。

>>682
Doctestは使わない。Unittestを使う。
追加したコードについてはテストコードを書く。全体のテストを実行する、の繰り返し。
結果がなかなか見えづらい、ベースとなるクラスなんかを開発しているときも
モチベーションを維持しやすい。テストが通ったときは嬉しい。
テストしやすいようにコード書く癖が付くのが意外な利点。
メソッドや関数が短くなるし、機能が抽象化される。

>>683
書き換えたり消したりしたうち、テストコードを除外した行数が2000、という意味。

長文でスマン。
696デフォルトの名無しさん:2006/11/03(金) 09:28:28
「実際の成果物には含まれないけど開発の過程でPython使ってる」人っている?

俺はテキストファイルの一括変換とかにしか使えてないので…
他の応用例があればヒントが欲しいっす。

697デフォルトの名無しさん:2006/11/03(金) 10:50:16
>>695
TDDって、すごくあこがれてるので、こういう書き込みは本当にありがたいです。
ちゃんと実践している人がいるんだね。
だけど、自分がやるのは敷居が高いなあ。
いつもスケジュールに余裕ないから、なかなか手を出せない。
698633:2006/11/03(金) 11:13:25
すみません。やりたかったことは、
「あるリストnの二倍の長さを持つリストで、成分に0から1ずつ代入されたL_all」
を作ることが目的でした。本を読みながら、やっとつくれました。

n = [1, 2, 3, 4]
def Fn_Lall(r_mat):
L_all = []
x = r_mat[-1:][0] + 1
y = len(r_mat) * 2
z = range(x, y)
L_all = [0] + r_mat + z
return L_all

print Fn_Lall(n)

[0, 1, 2, 3, 4, 5, 6, 7]
699デフォルトの名無しさん:2006/11/03(金) 11:22:59
>>698
> 「あるリストnの二倍の長さを持つリストで、成分に0から1ずつ代入されたL_all」
これじゃあダメなの?
>>> n = [1, 2, 3, 4]
>>> range(2 * len(n))
[0, 1, 2, 3, 4, 5, 6, 7]
700633:2006/11/03(金) 11:38:31
>>699
OKです…
701デフォルトの名無しさん:2006/11/03(金) 11:39:10
もしかして、対話環境で書いたら、分かってもらえないのかもしれない。

# L_all を l_allに変えた。変数名は普通は小文字から。
# http://oldriver.org/python/pep-0008j.html

n = [1, 2, 3, 4]
l_all = range(2 * len(n))
print l_all

[0, 1, 2, 3, 4, 5, 6, 7]
702701:2006/11/03(金) 11:41:44
おっと、>>700 で書き込みがあった。
ちゃんと通じてたのね。スマソ。
まあ何にせよ解決してよかった。
703633:2006/11/03(金) 11:49:31
>>701
ありがとうございます。
サイトを参考にソースを整形してみます。
704デフォルトの名無しさん:2006/11/03(金) 12:02:27
なんつうか、「初めてのプログラミング」って感じで、
少しほのぼのしたな。
Pythonとかでどんどん伸びていってほしいと思った。
705670:2006/11/03(金) 12:09:48
またしても長文気味で申し訳ないが。

>>697
TDDは開発効率を向上するためにあるものなので
スケジュール的にきついときこそ、積極的に活用するといいと思う。

unittestモジュールの使い方に慣れる
使ってるフレームワークなりなんなりの、テストツールの使い方に慣れる
この二つの学習コストが必要になるので
なかなか手を出せないという気持ちは分かるけどね。
業務時間を学習時間としてとれないなら
休日を使って、自分で試してみるといいんじゃないかな。

リストコンプリヘンションなんかを使って
1行で複雑なテスト用のassertを書けたときなんかは
自分がデキる開発者になった気がして楽しい(w
706デフォルトの名無しさん:2006/11/03(金) 12:28:39
>>705
ユニットテストツールを使おうとして、いつも引っかかるのは

・外部データリソースとの連携
 …単純な関数ならテストを書くのも楽なんだけど、HTTPやデータベースを扱うコードって、
  どうやってテストを書くの?
  専用のテストデータを用意するにしても、すごくテストコードが膨大になりそう。

・結合テスト
 …単体テストなら何とか書けるけど、結合テストになると組み合わせの場合の数が
  発散して、とてもすべてを網羅できそうにない。

この辺りで行き詰まって、結局すごく小さなコードでしかTDDを試したことのない
ダメな俺様。
707デフォルトの名無しさん:2006/11/03(金) 12:47:27
>>706
ユニットテストツールは単体テスト(できるだけ小さい単位のテスト)を支援する
ものだと思っている。
708デフォルトの名無しさん:2006/11/03(金) 12:50:04
>>707
結合テストは書かないのね。まあそれはそれでいいのかも。

> ・外部データリソースとの連携
の方はどうするの?
709デフォルトの名無しさん:2006/11/03(金) 12:52:19
>>708
書かないんじゃなくて、ユニットテストツールの守備範囲外ということ。
あくまで「ユニット」テストなんだから。
710670:2006/11/03(金) 12:58:36
>>706
>・外部データリソースとの連携
絨毯爆撃的なデータを作るユーティリティを作ってテストしてるよ。
極端なケース(数値しダメな引数に英字を渡す、とか)は、
コード&テストを書く一番最初の段階で手でassert書くよ。

>・結合テスト
unittestから呼び出せる範囲のテスト、
機械的にデータを生成できる範囲のテストならやる。
もっと上流のテスト(たとえばWebブラウザを使って実際に使ってみるとか)
も定期的にやるよ。
バグが見付かったら、テストにフィードバックできないか検討する。
必要ならテストをしやすいようにコードをリファクタリングすることも含めテストを見直す。
基底部分のテストが充実していれば、
おおもとのコードを変えてまずいことになってもすぐ分かるので安心。

"テスト可能な"設計をすれば、unittestで出来るレベルのテストで
品質を向上することは可能だけど、完全な品質を保証することは不可能。
unittestは万能ではない。

なんでもそうだと思うけど、こだわりを捨てることも重要だと思うよ。
711デフォルトの名無しさん:2006/11/03(金) 13:07:45
>>710
おおおお!なんかすごくよく分かった気がする。

・テストデータは自動生成する。境界値だけは決め打ち。
・結合テストは完全なカバリッジは無理だから、手動テストを併用し、バグが見つかったら
 自動テストに反映。

こんな感じに理解しました。大感謝。
それにしても、こういうコツは実際にやっている人に聞かないとわかんないなあ。
712Python初心者:2006/11/03(金) 13:37:38
>>652
>デコレータとかオブジェクト指向云々する奴が、print linesとかprint rowして
>原因を調べるセンスもないという矛盾。

どこを読んでおられるのでしょうか?
>>646
>print lines
>['Name: Tarou Bob Cheng\n', 'Age: 28 34
> 46\n', 'City: Tokyo New_York Beijing\n', '\n']

>>664
>一時変数linesが余計、wordlistsも余計、inputも余計
先生は、
import sys
[sys.stdout.write(row + '\n') for row in
  ['\t'.join(row) for row in
    [line.split() for line in
      open('input.txt', 'r').readlines()]]]
こう書いた方が分かり易いとでも?
確かにリスト内包表記が早いことは事実だが…
>>680
>>686
Python初心者[2]とかさぁ、[0]じゃないことを
明記すべきじゃないの?礼儀としては。

なお当初質問の件、よくある原因不明の「不安定な」動作と
してお忘れ下さい。「不思議と?本日は」問題なく動きました。
お騒がせしました。
713Python初心者:2006/11/03(金) 13:39:26
ところでPythonのフローズンバイナリーと
称して、pyc + PVCをパックにして配布する
手段がありますよね?VB,Java,.Netのように
Pythonのランタイムって無いのでしょうか?
そうすれば配布はpycだけで済みますよね?

714デフォルトの名無しさん:2006/11/03(金) 13:47:28
>>713
ライブラリが必要だから、普通のPythonとほどんどボリューム変わらんと思う
715デフォルトの名無しさん:2006/11/03(金) 13:55:57
>>712
[line.rstrip().split() for line in file('input.txt')]
716デフォルトの名無しさん:2006/11/03(金) 14:45:26
>>712
しょしんしゃさんのぱいそんは、ひによってどうさがちがうんですね。
717デフォルトの名無しさん:2006/11/03(金) 15:10:30
>>712
別にprintを使うなとは誰も言ってない
for x in zip(*eval(>>715)):
  print x

あと、引数なしのsplitの正確な動作がよく分からんけど
>>715のrstripは無駄な気がする
718デフォルトの名無しさん:2006/11/03(金) 15:34:03
>>717
無駄でした
引数なしだと挙動が変わるんだね

'a\n'.split()     # => ['a']
'a\n'.split('\n') # => ['a', '']
719デフォルトの名無しさん:2006/11/03(金) 16:08:21
>>686
ここに書いてあることを当てにするような初心者が本当にいるとすれば、その時点で終わってる。
720デフォルトの名無しさん:2006/11/03(金) 16:34:08
>>692
俺はようやっとプログラミングに馴染み始めた初心者だが、これは正しいの?
ハッシュがkeyとvalueの辞書ってのは傍流であって、本質は他にあるの?

■[一般][Python] タグ付けという考え方
以前はハッシュの本質は「分割して検索範囲を減らす」ことにあると思っていた。これはその通りであると思うが、別の見方をしてみると、
「タグ付け」がハッシュ(というデータ構造)のアルゴリズムの本質であると思う。
http://d.hatena.ne.jp/morchin/20061031
721デフォルトの名無しさん:2006/11/03(金) 16:49:49
「本質」などと言う恥ずかしい単語を使う人の話を読むよりも、プログラムをいっぱい
読んでいっぱい書くほうが、よほど本質を理解できると思う。w
722デフォルトの名無しさん:2006/11/03(金) 16:57:14
いい加減にPython自体のソースコード読めよ。Cぐらい読めるだろ?
723デフォルトの名無しさん:2006/11/03(金) 17:10:25
Pythonの熟達者に、個人的に聞いてみたかったんだけど、
http://www.amazon.co.jp/exec/obidos/ASIN/489471163X
http://0xcc.net/misc/sicp.html
この本についてどう思う?Pythonにも役立つ?
724デフォルトの名無しさん:2006/11/03(金) 17:15:01
役に立つから読む、役に立たないから読まないという奴は、何を読んでも役に立たない。
725デフォルトの名無しさん:2006/11/03(金) 17:18:06
>>724がSICPを読んでいない方に500ペリカ。
726725:2006/11/03(金) 17:24:56
まあ、俺も読んでないんだけど。
つうか、難しすぎ。よほど知能の高い人以外は読めないんじゃないかと思った。
727デフォルトの名無しさん:2006/11/03(金) 17:37:35
1を使わず1を定義するやつが喉につかえてる。

>>721
「本質」は「オレの主張」に読み替えることにしてる。
728デフォルトの名無しさん:2006/11/03(金) 17:40:12
言語の仕様を云々議論するなら最低限これくらい読んでいて当然な本だと思っていたのだが
729デフォルトの名無しさん:2006/11/03(金) 17:47:32
> 1を使わず1を定義するやつが喉につかえてる。
何かと思ったら、SICPの話なのね。
自分も分かんなかったけど、Little Schemer(Scheme手習い)を読んだら分かった。
730デフォルトの名無しさん:2006/11/03(金) 17:56:12
Pythonスレ本来の高慢さが戻ってきた?
731デフォルトの名無しさん:2006/11/03(金) 18:10:45
なんかすごい本なのかな。読み終えた人はここに何人ぐらい居るんだ?
732デフォルトの名無しさん:2006/11/03(金) 18:25:34
まあ読みたきゃ読めばいいんじゃないか?俺は読んでないけど。

はてなのひげぽん氏が、この前こんなのを書いていた。
「計算機プログラムの構造と解釈(SICP)」を読み終えて
http://d.hatena.ne.jp/higepon/20061027/1161960363

しかし、そもそもGuido本人が、あんまりプログラミングの本を読まない人のような
気もする。
http://blog.livedoor.jp/dankogai/archives/50629146.html
このなかでGuidoだけ、コンピュータと関係ない本を挙げてる。

ちなみにSICPを挙げている人は2名。
733デフォルトの名無しさん:2006/11/03(金) 18:51:28
>>732
Quicksilver は邦訳がないので読んでなくても仕方ないが
普通プログラマならニール・スティーヴンスンくらい何冊か持ってるだろ。
734デフォルトの名無しさん:2006/11/03(金) 18:52:14
>>723
せっかく興味持ったのなら、とりあえず買って読め。
もしつまらなかったら、本ではなく君の頭のほうの問題だ。
735723:2006/11/03(金) 19:05:39
>>734
読んだ人キター!(AA略)
頭の問題は日々悩んでるんで、この本についても迷ってるんですよ。
大学の数学の教科書みたいに、確かに頭の訓練にはなるけど、
実用には別に関係ない、とかだったらどうしようと思って。
安い本じゃないですしねえ。
736デフォルトの名無しさん:2006/11/03(金) 19:14:25
>>735
webにある英語の印刷すればいいじゃない。
Schemeだけ別途憶えて、後半だけやるというのもいいよ。

なにも試験を受けるわけじゃないんだから、ばか正直に先頭から読まなくても
一番面白そうなところにいきなり上陸すればいい。
737デフォルトの名無しさん:2006/11/03(金) 19:20:57
>>735
> 大学の数学の教科書みたいに、確かに頭の訓練にはなるけど、
> 実用には別に関係ない、とかだったらどうしようと思って。

そういうのとはちょっと違うな。実用というのかわからんけど、書くプログラムは確実に
マシなものになると思う。
738デフォルトの名無しさん:2006/11/03(金) 19:27:20
技術オタの戯れ言はこのへんでやめて、そろそろメタクラスの話をしようぜ。
739723:2006/11/03(金) 19:46:27
>>736-737
すいません、ちょっと席をはずしてました。
ありがとうございます。英語もダメなんで、やっぱり本を買うしかないです。
まあ賭けだと思って読んでみます。
今よりすこしはマシになりたいですしね。
740デフォルトの名無しさん:2006/11/03(金) 21:05:18
[1,-1,10,-10]を書き込んだlist.txtを読み出して出力しようとしたのですが、
出力結果がlist.txtのデータをリストとして認識してくれません。

f = open('list.txt')
line = f.readline()
a0 = line[0]
b0 = line[2]
c0 = line[4]
print a0,b0,c0,

line[0]が"["、line[2]が","のようになってしまいます。
元データがリストではないのか、読み込み方がリストでないのかわかりません。
どのように直したら、line[0]が"1"、line[1]が"-1"・・・line[4]が"-10"のようになりますか?
741デフォルトの名無しさん:2006/11/03(金) 21:12:36
line = eval(f.readline())
742デフォルトの名無しさん:2006/11/03(金) 21:24:20
感謝です。
動作するようになりました。
743デフォルトの名無しさん:2006/11/03(金) 21:36:54
>>740
>>元データがリストではないのか、読み込み方がリストでないのかわかりません。
ちなみに正解は「単に文字列として読んでいる」。
なのでそのやり方だと1文字目、3文字目、5文字目が代入される事になる。

eval()によってその文字列をpythonのコードとして解釈することで、単なる文字列から
リストになって期待される動作になる。

以上、蛇足かも知れませんが補足でした。
744デフォルトの名無しさん:2006/11/03(金) 21:47:10
いえ、説明ありがとうございます。
pythonの事を聞ける身近な人がいないので、人の意見は参考になります。
初めてのpythonだと調べるのが大変で。
リファレンスもですが・・・。
745デフォルトの名無しさん:2006/11/03(金) 22:15:32
このスレの簡単な質問のやりとりが俺の血となり骨となっていく
746デフォルトの名無しさん:2006/11/03(金) 22:17:57
ずいぶん安いな。
747デフォルトの名無しさん:2006/11/03(金) 22:33:39
激安ですぜ。evalって便利なのねー。
raw_input()に対するinput()みたいなもんだったのか。
748デフォルトの名無しさん:2006/11/03(金) 22:37:10
evalごときで喜ぶのが安いって言ってんだよ。
それくらい分からないでこの先どんだけ細かく躓くんだ(www
749デフォルトの名無しさん:2006/11/03(金) 22:48:31
>>747
とはいえevalでデータを読むぐらいなら、importした方がマシじゃないかと思う。

セキュリティホールになるし。
750デフォルトの名無しさん:2006/11/03(金) 22:50:40
importしてもヤバいコードは実行されちゃうけどね〜。
751デフォルトの名無しさん:2006/11/03(金) 23:02:26
単純なリストくらいなら普通に解析したほうがいい罠。
752デフォルトの名無しさん:2006/11/03(金) 23:05:35
XML原理主義の俺が来ましたょ。
753デフォルトの名無しさん:2006/11/03(金) 23:08:18
>720
hash が何なのか
hash の応用にどんなものがあるのか

を調べれば自明
754デフォルトの名無しさん:2006/11/03(金) 23:11:04
>>751
んで普通に解析するならevalしちゃえばいいじゃんとなるわけよw

でもそう考えると、単純な(改行やカンマをデータに含まない)csvだったら
一行読んで前後に[]をつけてevalすればリストになるのかーと思った。

と書いた時、splitでいいじゃんと普通なところに戻った。
755デフォルトの名無しさん:2006/11/03(金) 23:14:09
どう使うかによるんじゃね?
自分しか使わないならevalでいいし

つーか普通リストをそのままファイルに書かねえ(www
756デフォルトの名無しさん:2006/11/03(金) 23:31:43
だよなwww
757Python初心者 ◆hlfDgUV2TA :2006/11/04(土) 00:24:15
> >>680
> >>686
> Python初心者[2]とかさぁ、[0]じゃないことを
> 明記すべきじゃないの?礼儀としては。

どこの礼儀ですか?
同じコテハン同士を区別したいのであればトリップの使用をお勧めします。
758デフォルトの名無しさん:2006/11/04(土) 00:25:38
モノホンのネラーだわこいつ(WWWWWWWWWWWWWWWWWWWWWWW
759デフォルトの名無しさん:2006/11/04(土) 00:30:19
偽物とかあるのか?
760デフォルトの名無しさん:2006/11/04(土) 00:34:05
特に識別する必要性を感じないのだが
761デフォルトの名無しさん:2006/11/04(土) 00:34:43
むしろ単にいなくなって欲しいっつーか
762デフォルトの名無しさん:2006/11/04(土) 00:36:43
同意
763デフォルトの名無しさん:2006/11/04(土) 00:38:09
レス番が飛んでるw
764デフォルトの名無しさん:2006/11/04(土) 00:39:51
答える奴は止めないけどアンカー引用しないで欲しいわ
765デフォルトの名無しさん:2006/11/04(土) 00:42:02
このスレって現役の学生は少ないのかな・・・
「学生のころ」って発言が多いような・・・w
766デフォルトの名無しさん:2006/11/04(土) 00:42:58
実社会における学生の比率を反映してるだけじゃない?
767デフォルトの名無しさん:2006/11/04(土) 00:43:40
少子化のご時世だしね
768デフォルトの名無しさん:2006/11/04(土) 00:43:59
学生います!
python使えないのでROMしてます.
matlabのほうがscipyより便利だし…
769デフォルトの名無しさん:2006/11/04(土) 01:00:47
私は学生ではありませんが、あちらのほうはまだ現役ですよ
770デフォルトの名無しさん:2006/11/04(土) 01:12:15
Il a insinué quelques choses.
771デフォルトの名無しさん:2006/11/04(土) 01:51:46
フランス語っぽくみえる。ラテンの香りはしない。
772デフォルトの名無しさん:2006/11/04(土) 02:00:15
フランス語は言語学的にはラテン語族に分類されます.
773デフォルトの名無しさん:2006/11/04(土) 03:41:37
ゲルマン人の末裔なのに言葉はラテン語族か。
同じロマンス系なのに、イタリア・スペイン・ポルトガルと違いすぎ。
774デフォルトの名無しさん:2006/11/04(土) 03:54:58
辺境だから
775デフォルトの名無しさん:2006/11/04(土) 05:38:26
rubyがpythonになっちゃうかもしれない話
ttp://www.rubyist.net/~matz/20060615.html#p03
776デフォルトの名無しさん:2006/11/04(土) 07:52:30
>>775
古い話っすから
777デフォルトの名無しさん:2006/11/04(土) 07:55:23
× pythonになっちゃう
○ python風味になっちゃう
778デフォルトの名無しさん:2006/11/04(土) 09:21:10
Paul Grahamに言わせれば
全てのみどころのある言語はLISPになっていくw
779デフォルトの名無しさん:2006/11/04(土) 10:38:30
lisp は進化しないのか?
780デフォルトの名無しさん:2006/11/04(土) 11:01:27
ボーグだから。
781デフォルトの名無しさん:2006/11/04(土) 12:21:06
Lisp は言語としては完璧なので進化の余地がありません
782デフォルトの名無しさん:2006/11/04(土) 12:29:12
終わった言語ってことか
783デフォルトの名無しさん:2006/11/04(土) 14:13:09
lispは、オブジェクト指向プログラミングがやりにくい。
言語そのものでのサポートではないからね。
基本はC言語スタイルのプログラミングになる。
進化というなら、 Pythonの方が上だよ。
784デフォルトの名無しさん:2006/11/04(土) 14:27:56
Googleに就職したLisperの話。(サイトが落ちているんでGoogleキャッシュ)
How I lost my faith
http://72.14.235.104/search?q=cache:efNGrpEbh9UJ:www.gembook.jp

いやいやながら他の言語を本当に勉強すると、*私の* 生産性もLispの場合よりも高くなった。
例えば、現在ではWeb開発にはPythonを使用している。

GoogleにはPeter Norvigもやって来たが、彼もまたLispを捨て去っていた。
(私はNASA時代にPeterとこの点について話し合ったことがあった。当時、彼はもう
 Lispを見捨てていて、私はそれを痛ましく思ったものだ)
785デフォルトの名無しさん:2006/11/04(土) 14:29:18
>>778>>781は多分ほめ殺しだよw
786デフォルトの名無しさん:2006/11/04(土) 14:58:13
しかし、LISPには歴史の蓄積があるから、それを無視するのはもったいない。
>>784のリンク先を読んでみそ。そこの筆者はLISPを学んだことで
大きなメリットを得ている。
787デフォルトの名無しさん:2006/11/04(土) 16:10:06
今度はGoogle厨か
788Python初心者:2006/11/04(土) 16:48:15
>>714
>ライブラリが必要だから、普通のPythonとほどんど
>ボリューム変わらんと思う
普通のライブラリー関数は全てpycの中間コード化するから
dllのようなものだけだよね?
後は中間コードが走る環境さえあれば良い。パーサーや
デバッガーとか開発用の部分は全て取り外せば、かなり
軽くなるような気がするが?
でないとJavaがランタイム(JVM)をわざわざ配布している
意味が無くなる。

>>717
>for x in zip(*eval(>>715)):
>  print x
*evalが気になる。経験者はevalな、って…
789Python初心者:2006/11/04(土) 16:54:02
さて、Generatorのyieldが複数あるとどうなるのか?
試してみました。
def counter (maximum):
  i = 0
  while i < maximum:
    print 'Hi'    
    yield i
    i += 1
    yield 'Yahoo' + str(i)
    print 'Bye\n'
if __name__=='__main__':
  x = counter(10)
  print x.next()
  print x.next()
  print x.next()
  print x.next()
  print x.next()
5回やったが、結果は3回目の途中で終わって
しまった。何故でしょうか?
Hi
0
Yahoo1
Bye

Hi
1
Yahoo2
Bye

Hi
2
790デフォルトの名無しさん:2006/11/04(土) 17:05:05
いや、ちゃんと5回だよ
791デフォルトの名無しさん:2006/11/04(土) 17:11:12
しまった。何故でしょうか?
Hi
0 <- 1回目
Yahoo1 <- 2回目
Bye

Hi
1 <- 3回目
Yahoo2 <- 4回目
Bye

Hi
2 <- 5回目
792デフォルトの名無しさん:2006/11/04(土) 17:24:27
何故ならそこにyield文があったからさ!
793デフォルトの名無しさん:2006/11/04(土) 17:31:41
何が議題になったのか分からない
794デフォルトの名無しさん:2006/11/04(土) 18:06:40
マニュアルすら読んでないんだろ
ほっとけ
795デフォルトの名無しさん:2006/11/04(土) 18:36:53
>>789
対話画面で実行してみたら分かるよ。counter.pyに収めて実行すると、
>>> import counter
>>> x = counter.counter(10)
>>> x.next()
Hi
0
>>> x.next()
'Yahoo1'
>>> x.next()
Bye

Hi
1
>>> x.next()
'Yahoo2'
>>> x.next()
Bye

Hi
2

ジェネレータは、yield文を実行するとそこで停止し、
またnext()を呼ばれると、その次の行から再開する。
796デフォルトの名無しさん:2006/11/04(土) 19:04:07
ジェネレータを誤解しちゃったのかな。
下のページの、「イテレータを使おう」辺りを読むといいだろう。
http://www.python.jp/Zope/articles/tips

一回呼ばれると、関数内のコードを全部実行するというわけじゃない。
yield文が実行されると、そこで実行状態を凍結し、次に呼ばれるまで
待機している。

まあいかにも初心者らしい誤解なのかな。
797デフォルトの名無しさん:2006/11/04(土) 20:37:56
スライド11のサンプル間違ってね?
798デフォルトの名無しさん:2006/11/04(土) 21:35:37
self._nをインクリメントし忘れてるっぽいけど・・・
799デフォルトの名無しさん:2006/11/04(土) 22:46:02
python初心者って結局のところ何がしたいんだろう?
800python初心者:2006/11/04(土) 22:47:58
>>799
みなさんとお話がしたいだけだ。
801デフォルトの名無しさん:2006/11/04(土) 23:02:16
同じコードが時によって挙動を変えたり
5回が3回になったり
頭がおかしいとしか思えません
ほんとうにありがとうございました
802デフォルトの名無しさん:2006/11/04(土) 23:51:23
>>799
どうみても構って君です。
ほ(ry
803デフォルトの名無しさん:2006/11/04(土) 23:52:42
>>800
VIPでやれ

少なくとも質問の前にはリファレンスマニュアルに目を通すか
ググるくらいしてくれ
804デフォルトの名無しさん:2006/11/04(土) 23:54:14
ググれって言っても、この場合はGCSのことなんだけどね。
805デフォルトの名無しさん:2006/11/05(日) 00:01:07
Python初心者はみんPyの作者タソに粘着していたZOPE関係者と同一人物?
世の中に沢山の基地外がいるとも思えないし
806デフォルトの名無しさん:2006/11/05(日) 00:03:39
あれとは違う気がするが、臭さは同じ扱いでよし。
807デフォルトの名無しさん:2006/11/05(日) 00:35:44
>>805
あれはひどかったな。正直かわいそうだった。
808デフォルトの名無しさん:2006/11/05(日) 01:55:58
対話式で実行例書き込んでくれてる人良く見かけるけど、
実際に自分の作業とかするときも対話式で作業することってあるの?

もしそうだとしたらどんな時に使うのかな
809デフォルトの名無しさん:2006/11/05(日) 01:57:20
>>808
俺はシェルの代わりに使ってたりする。
810デフォルトの名無しさん:2006/11/05(日) 02:05:08
>>809
pythonでlinuxコマンド使えるということですか?
cdとかlsみたいな。
811デフォルトの名無しさん:2006/11/05(日) 02:19:30
あの人は知っててわざと質問形式で書いて釣ってるだけ。しかも釣りどころが浅すぎる。
小魚ばっかり狙ってないで、もっと重箱の隅をつつくようなネタとか程度の高い宿題を持ってこいよ。
自称脱初心者が競って釣られるいまの状況は滑稽だが、そろそろ飽きてきた。
812デフォルトの名無しさん:2006/11/05(日) 02:28:31
>>805
バレバレ仮面だよきっと。
813デフォルトの名無しさん:2006/11/05(日) 02:34:49
○○仮面って・・・ どこの小学生のネタだよ(´・ω・)
814デフォルトの名無しさん:2006/11/05(日) 02:38:13
>>811
釣りどころが浅すぎるって808みたいなやつ?
815デフォルトの名無しさん:2006/11/05(日) 02:42:10
>>810
bashが呼び出せるのかどうかはしらないけど、「cdとかlsみたいな」のはOSモジュールの中に入ってるよ。
Windowsや*nixのシェルはどうも馴染めないので環境が許す限りPython使ってるなぁ。
816デフォルトの名無しさん:2006/11/05(日) 03:17:21
俺もlogin shellはipythonだ
817デフォルトの名無しさん:2006/11/05(日) 03:17:27
>>810
ipython(ipython.scipy.org)という
強化型対話モードプログラムには
よりunixのシェルに近づけた
pyshというプロファイルがある。
機能的にbashやzshには及ばないけど、
コマンドライン補完なんかもしてくれる。
818デフォルトの名無しさん:2006/11/05(日) 03:20:07
>>815,817
なるほど。pythonはそういう使い方もあるのですね
レスありがとうございました。
819デフォルトの名無しさん:2006/11/05(日) 03:39:40
ipythonでググってみると?とか、!つければ通常のコマンドも利用可能とか
結構よさそうな記事が多いですね。ちょっと試しに使ってみます。
最強シェルとうたわれたzshの苦い経験があるのでちょっと躊躇しますが…
820デフォルトの名無しさん:2006/11/05(日) 04:14:59
>>808
既存のモジュールや自分で作ったモジュールの動作をちょっと確認してみたり
するときにはよく使うよ。要するに、ちょっと実験してみるときって感じ。
821デフォルトの名無しさん:2006/11/05(日) 05:31:56
使ってるとつくづくPy^H^HMatlabは便利なうんこ野郎だということがよく分かる。
822デフォルトの名無しさん:2006/11/05(日) 06:32:01
new style classはraise出来ないっと...φ(..)
823デフォルトの名無しさん:2006/11/05(日) 07:47:02
824デフォルトの名無しさん:2006/11/05(日) 09:38:46
>>805
>Python初心者はみんPyの作者タソに粘着していたZOPE関係者と同一人物?

漏れもそうオモタ(www
825Python初心者:2006/11/06(月) 13:13:21
>>791
そうかぁ、なんとなくwhile1回とnext()1回が対応して
いると勘違いしていた。
>>811
>あの人は知っててわざと質問形式で書いて釣ってるだけ。
>しかも釣りどころが浅すぎる。
スレのレベルに合わせて質問出来るほど経験者じゃない
から…。先月私立図書館で「初めてのPython」を借りて
読み、先週貸し出し期限が来てもう返しちゃったので
あまり高級な質問を期待しないで欲しいな。
>>824
>Python初心者はみんPyの作者タソに粘着していたZOPE関係者と同一人物?
ZOPEって、そんな言語あったぁ?
826デフォルトの名無しさん:2006/11/06(月) 14:45:49
そろそろsageを覚えてもいいんじゃないかと思う秋の夕暮れちょっと前
827Python初心者:2006/11/06(月) 15:03:27
分かっててやってるものはしょうがないじゃんw
828デフォルトの名無しさん:2006/11/06(月) 15:04:36
基地外ですから何を言っても無駄です。
本当にありがとうございました。
829デフォルトの名無しさん:2006/11/06(月) 16:08:30
上がってるスレにやってきました
よろしくwwww
830デフォルトの名無しさん:2006/11/06(月) 16:11:14
sage
831まんこ:2006/11/06(月) 20:00:11
まんこ
832デフォルトの名無しさん:2006/11/06(月) 21:30:44
ちがう
おっpyだ
833デフォルトの名無しさん:2006/11/06(月) 22:34:19
乙.py
834デフォルトの名無しさん:2006/11/06(月) 22:40:49
>>833
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
835デフォルトの名無しさん:2006/11/06(月) 23:33:47
>>> print open("乙.py").read()
# -*- coding: sjis -*-
print u"乙"

>>> __import__("乙")

<module '乙' from '乙.py'>
>>>
836デフォルトの名無しさん:2006/11/06(月) 23:46:55
print 'bTnvvIjvvL7QlO+8vu+8ie++jO++n++9t+++nu+9rO+9sCEh\n'.decode("base64").decode("utf-8")
837デフォルトの名無しさん:2006/11/06(月) 23:52:33
>>835


>>836
binascii.Error: Incorrect padding
838デフォルトの名無しさん:2006/11/07(火) 00:43:56
>>834>>837
エラーメッセージだけ示されても・・・
839デフォルトの名無しさん:2006/11/07(火) 01:32:09
>>838
ys:1: DeprecationWarning: Non-ASCII character '\xa5' in file 838.py on line 1, bu
t no encoding declared; see http://www.python.org/peps/pep-0263.html for details
File "838.py", line 1
エラーメッセージだけ示されても・・・
^
SyntaxError: invalid syntax
840デフォルトの名無しさん:2006/11/07(火) 01:36:19
$python
>>> エラーメッセージだけ示されても・・・
File "<stdin>", line 1
エラーメッセージだけ示されても・・・
^
SyntaxError: invalid syntax

$ perl
エラーメッセージだけ示されても・・・
Unrecognized character ¥xE3 at - line 1

$ ruby
エラーメッセージだけ示されても・・・
-:1: Invalid char `¥250' in expression
-:1: Invalid char `¥343' in expression
-:1: Invalid char `¥203' in expression
-:1: Invalid char `¥251' in expression
-:1: Invalid char `¥343' in expression
-:1: Invalid char `¥203' in expression
(延々と続く)
ルビーバロス(wwwwwwwww
841デフォルトの名無しさん:2006/11/07(火) 01:43:29
気違いじみた展開だな
842デフォルトの名無しさん:2006/11/07(火) 01:56:55
843デフォルトの名無しさん:2006/11/07(火) 01:57:55
エラーリカバリーは腕の見せどころ
844デフォルトの名無しさん:2006/11/07(火) 02:06:33
>>839-840
逝ってよし
845デフォルトの名無しさん:2006/11/07(火) 02:23:58
846デフォルトの名無しさん:2006/11/07(火) 02:48:31
>>842
これはひどい
847デフォルトの名無しさん:2006/11/07(火) 02:57:16
問1:

>>841
ネタを「気違いじみた」と評する○○○。

○○○に適語を埋めよ。
848デフォルトの名無しさん:2006/11/07(火) 02:58:48
気違いだとばれたのでネタ宣言ですか
ネタなら普通もうちょっと面白いでしょwww
849デフォルトの名無しさん:2006/11/07(火) 03:01:59
おっ.pyの派生がネタじゃなかったら、俺は何を信じて生きていけばいいんだろう
850デフォルトの名無しさん:2006/11/07(火) 03:03:56
問2:

>>848
まあ君には面白くないだろうね。だって○○○なんだから。

○○○に適語を埋めよ。
851デフォルトの名無しさん:2006/11/07(火) 03:06:33
・・・面白いと思ってやってるんだろうか
852デフォルトの名無しさん:2006/11/07(火) 03:08:10
>>848
気違いであることとネタであることは矛盾しないと思う
どちらにしても気違いは邪魔だね
853デフォルトの名無しさん:2006/11/07(火) 03:10:04
なんで過剰反応するのか分からん.
強迫神経症かなにかのひとなの?
854デフォルトの名無しさん:2006/11/07(火) 03:11:07
○○○であることを指摘されたからカンにさわったんだよ
ところで、○○○って何?
855デフォルトの名無しさん:2006/11/07(火) 04:05:53
ぬるぽ
856デフォルトの名無しさん:2006/11/07(火) 04:19:03
>>855
gxx
857デフォルトの名無しさん:2006/11/07(火) 04:38:05
どうもすごい勢いでキチガイ認定しに来る変なのが一人居る
858デフォルトの名無しさん:2006/11/07(火) 04:42:15
The first and most important thing is to be friendly, even (I should say especially) with people who disagree with you. Other people are not idiots just because they disagree with you, so don't call them idiots.
http://www.python.org/dev/culture/
859デフォルトの名無しさん:2006/11/07(火) 04:59:08
図星みたいだ.
860デフォルトの名無しさん:2006/11/07(火) 06:57:45
ボケ殺しの集団がスレに貼り付いとる
キモス
861デフォルトの名無しさん:2006/11/07(火) 07:03:16
途中からボケが全然面白くないのが困る
862デフォルトの名無しさん:2006/11/07(火) 10:16:25
○○○ですから、何を言っても無駄です。
本当にありがとうございました。
863デフォルトの名無しさん:2006/11/07(火) 10:39:10
○○○って人名か?
だったら○×4じゃないのか?
864デフォルトの名無しさん:2006/11/07(火) 11:06:51
↑ということにしたいのですね
865デフォルトの名無しさん:2006/11/07(火) 11:14:27
そろそろメタク(ry
866デフォルトの名無しさん:2006/11/07(火) 11:42:18
そろそろPythonの話をしてほしい
867デフォルトの名無しさん:2006/11/07(火) 12:24:32
だからメタク(ry
868デフォルトの名無しさん:2006/11/07(火) 13:04:43
ナタク(ry
869デフォルトの名無しさん:2006/11/07(火) 13:40:07
質問です。
デコレ(ry
870デフォルトの名無しさん:2006/11/07(火) 14:47:50
質問です。
タプルの本質(略
871デフォルトの名無しさん:2006/11/07(火) 14:51:27
お答えします。
一般的な定義では(ry
872デフォルトの名無しさん:2006/11/07(火) 15:13:56
良ス(ry
873デフォルトの名無しさん:2006/11/07(火) 15:52:42
>865
オタクの親戚かとオモタ
874デフォルトの名無しさん:2006/11/07(火) 17:00:20
その調子だ!だんだんレベルが上がってきたぞ!!
875デフォルトの名無しさん:2006/11/07(火) 18:47:46
サキュバスは頭がいたいふりをした!
876デフォルトの名無しさん:2006/11/07(火) 21:51:17
とも蔵
877デフォルトの名無しさん:2006/11/07(火) 22:30:04
なんでIDが表示されないんだろう?
878デフォルトの名無しさん:2006/11/07(火) 22:37:54
あ”
ほんとだ
879デフォルトの名無しさん:2006/11/07(火) 23:49:50
>868
貴様は正しいのかと(ry
880デフォルトの名無しさん:2006/11/08(水) 00:16:18
ド低脳スレじゃないってば!
881デフォルトの名無しさん:2006/11/08(水) 00:32:05
なじめないガキがスネているようにしか見えない(ry
882デフォルトの名無しさん:2006/11/08(水) 00:48:25
ruby終わったな
883デフォルトの名無しさん:2006/11/08(水) 01:11:23
>>875
サイコパスは頭がいいふりをした

に見えた.
884デフォルトの名無しさん:2006/11/08(水) 01:21:44
なんだこのスレ
まともなPythonのスレってここ?
885デフォルトの名無しさん:2006/11/08(水) 01:26:20
>>877
すべて一人で書き込んでいるので要らないんですよ
886デフォルトの名無しさん:2006/11/08(水) 01:26:33
お前深夜になると現れるな(wwwwww
ところでデザインパ(ry
887デフォルトの名無しさん:2006/11/08(水) 01:26:53
>>884
これでも一番まともなんですよ
888デフォルトの名無しさん:2006/11/08(水) 01:30:12
こうやってレベルが下がってゆくわけだ
889デフォルトの名無しさん:2006/11/08(水) 01:31:16
ここはRuby厨の遊び場になりました
890デフォルトの名無しさん:2006/11/08(水) 01:33:36
>>889
Rubist乙。
891デフォルトの名無しさん:2006/11/08(水) 01:35:45
>889
Rubyの話だったら,Rubyスレでやってくれ.
892デフォルトの名無しさん:2006/11/08(水) 01:49:16
>>891
やだ!もっとここで遊びたい!
893デフォルトの名無しさん:2006/11/08(水) 05:27:03
ttp://newworld.ddo.jp/wiki/PerformanceTips を読んでて思ったんだけど、
リストの最大値と、そのインデックスを調べる方法って

>>> max((value, index) for (index, value) in enumerate(L))

とも書けるよね。もっと手を抜くと

>>> max(*enumerate(L))

になる。このシュワルツ変換ってパズルみたいで面白いね。
894デフォルトの名無しさん:2006/11/08(水) 05:57:18
>>893
手を抜きすぎ。
>>> L = [3.0, 2.0, 1.0]
>>> max(*enumerate(L))
(2, 1.0)
895デフォルトの名無しさん:2006/11/08(水) 08:01:26
ここで聞くのも微妙なんだけど
PyISAPIeでTracって動かせるべか?
896デフォルトの名無しさん:2006/11/08(水) 09:59:43
max(*zip(L,range(len(L))))
897デフォルトの名無しさん:2006/11/08(水) 10:18:13
>>893
>>>> max((value, index) for (index, value) in enumerate(L))

valueが先に来てるのがポイントなのね。
enumerate()はindex, valueの順で値を返すイテレータを返してくるので
最大値を正しく判別できない,と。

これでもオッケー?

>>> max(list(reversed(x)) for x in enumerate(L))
898デフォルトの名無しさん:2006/11/08(水) 12:18:29
「シュワルツ変換」って
ろくにテストもせず動かないコードに改悪するって意味の用語ですか?
899デフォルトの名無しさん:2006/11/08(水) 16:15:11
>>> 894, 898

アイヤー。一応試してみてから書き込んだんだけど…。
ごめんね。眠い頭でやるとダメだね。

ちなみに試したコードはこう:
>>> L = [1, 2, -3, 5, 2, 5, 8, 1, 8]
>>> max((v, i) for (i, v) in enumerate(L))
(8, 8)
>>> max(*enumerate(L))
(8, 8)

何やってんの俺…。
900デフォルトの名無しさん:2006/11/08(水) 19:13:00
>>899
テスト用の適切なケースを作るには、経験が必要だよね。
894のリストは、挙動がおかしいことを知った上で
極端な例を作ったんじゃないかと想像する。

俺だったら真ん中よりすこし前後に最大値が来るようなテストデータを作るかな。
最初の要素、最後の要素、真ん中の要素は、
ロジックが間違っていても機械的にたまたま正しい答えが出るかも知れないから。
901899:2006/11/08(水) 22:26:37
>>900
なるほど。勉強になったよ。ありがとう。
902デフォルトの名無しさん:2006/11/09(木) 04:18:41
>>189
for i in r(34):print" ".join(map(str,x));x=y+[x[j]+x[j+1]for j in r(i)]+y
ってすればちょっとだけ短くなるね.と超遅レス.
1文になる気もするけど…
903デフォルトの名無しさん:2006/11/09(木) 04:29:13
ソフトウェアテストにpythonって使うの?
904デフォルトの名無しさん:2006/11/09(木) 04:32:42
うん
905デフォルトの名無しさん:2006/11/09(木) 06:08:42
enumerate(x)自体がzip(range(len(x)),x)とほとんど等価な気がする
==では無いけど
906デフォルトの名無しさん:2006/11/09(木) 08:07:12
確かに、後者のxはジェネレータ使えないな。
907デフォルトの名無しさん:2006/11/09(木) 11:19:18
夜中の進行はレベルが低いとオモタ。
908デフォルトの名無しさん:2006/11/09(木) 11:44:30
そうか。昼休みになったらレベルの高いレクチャーしてくれよ
909デフォルトの名無しさん:2006/11/09(木) 11:56:02
レベルが低い=より仕様に密着した話題
レベルが高い=どこで応用されてるかとか

レベルが低いのが悪いわけじゃない
910デフォルトの名無しさん:2006/11/09(木) 12:45:07
昼=フレームワーク談義
夜=バイトコード談義
それ以外=メタクラス談義

でよろしく。
911Python初心者:2006/11/09(木) 15:00:03
ActivePython2.5のリリースが遅いよね?
普通Pythonの新ヴァージョンが出て大体一月程度で
追いついていたのに…
ところで、皆さんは何をエディターとしてお使いですか?
912Python初心者:2006/11/09(木) 15:02:21
管理人のひろゆきさんのお誕生日オメデトー!
って一応言っておくのが礼儀かねぇ?
913デフォルトの名無しさん:2006/11/09(木) 15:57:01
Emacs と xyzzy。
ちなみにひろゆきはどうでもいいと思われ。
ここはあんまりそういうことにこだわるする板じゃないし。
914デフォルトの名無しさん:2006/11/09(木) 16:24:05
>>911
開発に使ってるのは Emacs(Meadow)
でも、人のパソコンとか開発用でないマシンでは「メモ帳」w
915Python初心者:2006/11/09(木) 17:03:16
へーemacsなんか使ってる人いるんだ
僕はvisual studioを使ってるよ?
916デフォルトの名無しさん:2006/11/09(木) 17:20:54
VisualStudioも悪くないけど、Emacsを甘く見てはいかんよ。
http://bc.tech.coop/blog/060302.html

Pythonと全然関係ないな。
917デフォルトの名無しさん:2006/11/09(木) 17:53:38
俺はVIM使ってる

他のエディタ使うと無意識にhjklとかタイプしてしまう
あと無闇に:wしまくるクセがつく
918デフォルトの名無しさん:2006/11/09(木) 17:58:56
>>916
Emacsこえーよw
919デフォルトの名無しさん:2006/11/09(木) 18:03:25
emacs原理主義。
vim原理主義。
vi原理主義。
メモ帳原理主義。
秀丸オタ。
920デフォルトの名無しさん:2006/11/09(木) 19:50:30
システム管理してるからなりゆきでvim
921デフォルトの名無しさん:2006/11/09(木) 20:00:56
DOSとwindowsから入ってunix系触る必要ないと、
viもemacsも恐ろしいものに思えてしまう。
922デフォルトの名無しさん:2006/11/09(木) 20:52:59
俺は ed.py だ
923デフォルトの名無しさん:2006/11/09(木) 21:19:49
インテリセンス的なライブラリリファレンスがないだろうかー
924デフォルトの名無しさん:2006/11/09(木) 21:51:09
emacs + python-mode + pycomplete + ipython な環境が快適すぎるので
最近はずっとこれ。

以前はeclipseのPyDevプラグインを使っていた時期もありました。
925デフォルトの名無しさん:2006/11/09(木) 21:54:00
>>923

module.method

みたいに打った段階でmodule.methodのヘルプ(というかdocstring)がカーソルの
右下に表示されるようなもののことを言ってるんなら、PyDevでそんなことができたはず。
926デフォルトの名無しさん:2006/11/09(木) 22:20:13
vim7 + skk.vim
でもOmni補完はほとんど使ってない
927デフォルトの名無しさん:2006/11/09(木) 22:32:06
バイトコード直打ちの俺が来ましたょ。
928デフォルトの名無しさん:2006/11/09(木) 23:19:26
しゃべりまくるGuido(なんかしんどそう・・
http://video.google.com/videoplay?docid=-6459339159268485356#13m59s
929デフォルトの名無しさん:2006/11/09(木) 23:58:57
Python3000にちなんで標高3000mの高地で講演を行ったらしい(嘘)
個人的に文字列型のUnicode統合が待ち遠しい。
930デフォルトの名無しさん:2006/11/10(金) 00:00:36
ツマンネ。
931デフォルトの名無しさん:2006/11/10(金) 00:16:26
ネンマツですね。
932デフォルトの名無しさん:2006/11/10(金) 00:20:04
ネツマン。
933デフォルトの名無しさん:2006/11/10(金) 00:24:55
なにげに旅をしていたら
http://sourceforge.net/projects/numpy
NumPy 1.0 released 2006-10-25
ってのに遭遇した。

numpy だか numeric だか numarray だか scipy だか
NumPy は numpy とは別だとかわけのわからん状態は
どうなってるんでしょう?

とりあえず数値計算なパッケージを触ってみたい人に
一等メジャーっぽいものをって言ったら上記の NumPy 1.0 でいいのかな?
934デフォルトの名無しさん:2006/11/10(金) 00:39:22
>>924
> emacs + python-mode + pycomplete + ipython
俺もそれ。もやは伴侶と化している。快適すぎる
935Python初心者:2006/11/10(金) 11:57:39
>>934
>>924
> emacs + python-mode + pycomplete + ipython
>俺もそれ。もやは伴侶と化している。快適すぎる
人気高いねぇ。最初の二つは分かるけど、後ろの
二つは何をしているの?Visual Studio並のインテリセンス
が付いているとか…
それとUnix系じゃないと使えない?例えばMeadowsとか入れれば
Windowsでも動くんですか?

>>928
>しゃべりまくるGuido(なんかしんどそう・・
>http://video.google.com/videoplay?docid=-6459339159268485356#13m59s
最初マイクを直しながら「This is more comfortable for me.」しか
分からなかった…でもNativeじゃないから分かり易いことは事実。
時々オランダ語訛りが入ってた。ー>語尾が不自然に上がるでしょ?
また長いねぇ。全部聞いた人居ますか?要約してくれると有り難い。
10行以内で…
936デフォルトの名無しさん:2006/11/10(金) 12:03:40
質問させてください.

文字列を与えると,その名前のクラスを返す関数を作りたいと考えています.

def class_factory(str):
  # returns class Hoge() or Fuga(), and so on.
  return "str"()

class_factory('Hoge')
class_factory('Fuga')

マニュアルのどの節を参照すればよいでしょうか.
あるいは,このようなことができることを解説している書籍でもよいので,
ポインタをご教示いただければ幸いです.
937デフォルトの名無しさん:2006/11/10(金) 12:10:02
>>936
こういうことか?

>>> class klass:
... pass
...
>>> klass
<class __main__.klass at 0x39ca20>

>>> def class_factory(klassname):
... return eval(klassname)
...
>>> class_factory('klass')
<class __main__.klass at 0x39ca20>

>>> k = class_factory('klass')()
>>> k
<__main__.klass instance at 0x3a5530>

蛇足だが、strとかintっていう引数、変数を作るのはやめた方がいいな
938デフォルトの名無しさん:2006/11/10(金) 12:14:00
続きな。
937のコードはimportと絡めるととたんに破綻するんだ。気をつけろ。

>>> import sets
>>> sets.Set([]) # sets.Setはクラス
Set([])
>>> cf('Set')([])
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<stdin>", line 2, in cf
File "<string>", line 0, in ?
NameError: name 'Set' is not defined
>>> cf('sets.Set')([])
Set([])
939936:2006/11/10(金) 12:35:52
>>937-938
感謝します.
> strとかintっていう引数、変数
気を付けます.

やはり
>>> class klass:
... pass
最初にクラスの定義は必要なのですね.

インスタンスではなく,クラスの動的な定義ができればと
考えていました.言葉足らずで申し訳ありません.

あるいは
class GeneralClass:
  pass

GeneralClass.__name__ == 'Hoge'
のような,動的なクラス名の変更ができれば同じかとも考えたのですが,
クラス名はimmutableかと思い諦めて,先ほどの質問を致しました.

やり方を考え直そうと思います.
940デフォルトの名無しさん:2006/11/10(金) 12:37:29
import new
MyClass = new.classobj('MyClass', (object,), {})
941936:2006/11/10(金) 12:41:45
>>940
感謝します.
まさに期待どおりの動作をしました.
さっそくnewなるモジュールについて調べてみます.

>>> import new
>>> name='Hoge'
>>> my_object=new.classobj(name, (object,), {})
>>> my_object
<class '__main__.Hoge'>

ありがとうございました.

>>937-938の手法も,使いでがあるのでメモしました.どうもありがとうございます.
942デフォルトの名無しさん:2006/11/10(金) 12:52:15
やっぱりメタク(ry
943デフォルトの名無しさん:2006/11/10(金) 14:52:39
>>941
同じことだけど
>>> def foo(self): print "hello"
>>> A = type("A", (object,), {"foo": foo})
でも可。
>>> A
<class '__main__.A'>
>>> A()
<__main__.A object at 0x00DB76D0>
>>> A().foo()
hello
>>>
944936:2006/11/10(金) 15:03:56
>>943
組み込み関数だけでできるんですね.
もはや>>940とも何が起きているのか分からないので,
チュートリアルとリファレンスの最初の方を読み直して,出直してきます.
945デフォルトの名無しさん:2006/11/10(金) 16:19:59
>>944
話題としてはメタクラスに関するものなので、
情報を探すときのキーワードにするとよいと思われ。
946Python初心者:2006/11/10(金) 21:40:40
class A:
 buffer = ""

 def recv( self ):
  temp = sock.recv( 1024 )
  buffer += temp

この書き方って遅くなっちゃうのかなぁ?
他にいい書き方あるったらおしえて!
947デフォルトの名無しさん:2006/11/10(金) 22:07:40
lisp使え
948デフォルトの名無しさん:2006/11/10(金) 22:23:41
>>> from timeit import Timer
>>> f1 = """def test(m, n):
s = ""
d = "0123456789abcdef" * m
for i in range(n):
s += d
"""
>>> f2 = """def test(m, n):
s = []
d = "0123456789abcdef" * m
for i in range(n):
s.append(d)
"".join(s)
"""
>>> Timer("test(10, 1)", f1).timeit()
2.1228756727461473
>>> Timer("test(10, 1)", f2).timeit()
2.9558281848669594
>>> Timer("test(10, 10)", f1).timeit()
13.39612017728507
>>> Timer("test(10, 10)", f2).timeit()
9.7877330778073883
949デフォルトの名無しさん:2006/11/10(金) 22:45:41
groove!
950デフォルトの名無しさん:2006/11/11(土) 00:30:07
何度も連結するんであれば
配列にデータをappendしていって最後に空文字区切りでappendする方が速いよ

と日本語で書いた方が短い
951デフォルトの名無しさん:2006/11/11(土) 00:35:17
join
952デフォルトの名無しさん:2006/11/11(土) 01:10:14
>>946
self.buffer
953デフォルトの名無しさん:2006/11/11(土) 08:54:32
>>950
必ずしも速くはない(状況次第)ということを>>948の結果は示している。
954デフォルトの名無しさん:2006/11/11(土) 09:58:11
結局読みにくいコードにするくらいなら素直に書け

特に性能上のボトルネックになる部分なら
チューニングも悪くはないが
955デフォルトの名無しさん:2006/11/11(土) 10:25:18
ボトルネックはおまえの能力。Python に非は無い。
956デフォルトの名無しさん:2006/11/11(土) 20:19:46
この時期ボトルネックのセーターは暖かくていいよね。
957デフォルトの名無しさん:2006/11/11(土) 20:23:27
そろそろボトルネック奏法の話をしようぜ
958デフォルトの名無しさん:2006/11/11(土) 22:34:52
rubyで書かれた「deplate」というWikiのコンバータがあります
Pythonで同じようなものありますでしょうか?

VimのWikiモードみたいなもので「Viki」ってのがありまして
そこからコンバータでhtmlに変換しようとしています

Vikiのサイトでdeplateが紹介されていたのですが
PythonでそんなんあればPythonのほうがいいと思いました

ご存じのかたいますか?
959デフォルトの名無しさん:2006/11/11(土) 23:49:27
Docutils
960デフォルトの名無しさん:2006/11/12(日) 01:44:42
JapaneseCodecsをインストールしようとしているんですが、
python setup.py installを行っても、次のようなエラーメッセージが出て、完了しません。

$ python JapaneseCodecs-1.4.11/setup.py install
/usr/lib/python2.4/distutils/dist.py:222: UserWarning: 'licence' distribution option is deprecated; use 'license'
warnings.warn(msg)
running install
running build
running build_py
error: package directory 'japanese' does not exist

'japanese'のパッケージがないからエラーだよ、って意味なんでしょうけども、
対処方法がわかりません。どなたかご存じではないでしょうか。
961デフォルトの名無しさん:2006/11/12(日) 01:45:53
いまどきJapaneseCodecsなんて不要だということに気が付こうぜ
962デフォルトの名無しさん:2006/11/12(日) 01:52:10
2.4には標準で入ってる
963デフォルトの名無しさん:2006/11/12(日) 01:54:06
へーそうなんだ。ありがとうございます。

しかし納得がいかない。。。
日本語を扱うためのパッケージをDLし、いざインストールするとそれがないと言われるなんて。
十中八九私に過失があるんでしょうけど。

必要ないならば気にせずにやっていこうと思います。
964デフォルトの名無しさん:2006/11/12(日) 01:55:36
>>962
納得です。どもでした。
965デフォルトの名無しさん:2006/11/12(日) 01:56:13
そろそろJapaneseCodecsのことは忘れてあげてください
966デフォルトの名無しさん:2006/11/12(日) 02:17:49
むしろ ninix を忘れないでくれ、ninix
967デフォルトの名無しさん:2006/11/12(日) 03:30:23
Python Wart with Exception and Stack Frame
http://fucoder.com/2006/11/python-wart-with-exception-and-stack-frame/
>  Any convenient solution?
968デフォルトの名無しさん:2006/11/12(日) 03:31:04
>>960
$ cd JapaneseCodecs-1.4.11
$ python setup.py install
969デフォルトの名無しさん:2006/11/12(日) 03:57:03
>>967
def main():
  print 1
  try:
    bar()
  except:
    print 2
  print 3
if __name__ == "__main__":
  main()
  print 4
みたいに try: except: をトップレベルに置かないようにするとか
def bar():
  try:
    baz = Foo()
    raise 'Doh'
  finally:
    del baz
みたいに finally: を使えばいいとかそういう話なのかな。
970デフォルトの名無しさん:2006/11/12(日) 04:20:06
参考までに。

"del x" は直接 x.__del__() を呼び出しません。
  "del x"は x への参照カウント (reference count) を 1 つ減らします。
  x.__del__()は x への参照カウントがゼロになった際にのみ呼び出されます。

オブジェクトへの参照カウントがゼロになるのを妨げる可能性のあるよくある状況には、以下のようなものがあります。
  1.複数のオブジェクト間における循環参照 (二重リンクリストや、親と子へのポインタを持つツリーデータ構造)。
  2.例外を捕捉した関数におけるスタックフレーム上にあるオブジェクトへの参照 (sys.exc_traceback に記憶されているトレースバックが、スタックフレームを生き延びさせます)。
  3.対話モードでハンドルされなかった例外を送出したスタックフレーム上にあるオブジェクトへの参照 (sys.last_traceback に記憶されているトレースバックが、スタックフレームを生き延びさせます)。

1の状況については、明示的に循環参照を壊すしか解決策はありません。
2・3の状況は、None を sys.exc_traceback や sys.last_traceback に入れることで解決できます。
971デフォルトの名無しさん:2006/11/12(日) 04:36:23
ローカル変数の解放を、参照カウントによるGCで行われるようにしたいけど、例外を投げると
例外のスタックフレームの中で参照されちゃうから、参照カウントが0にならなくて
スコープを抜けても解放されないっていう話みたいだね。いちいち例外情報を消すのがめんどい、と。

例外が処理されたら、例外情報が自動的にクリアされるようにできればいいんだろうけど、
できるんだろうか。処理されない例外をフックする事は可能みたいだけど。
972デフォルトの名無しさん:2006/11/12(日) 05:53:44
どうみてもGuidoの責任です。
973デフォルトの名無しさん:2006/11/12(日) 06:53:04
パイソンで書かれた有名なソフト教えて
GIMPのフィルタくらいしか知らん
974デフォルトの名無しさん:2006/11/12(日) 07:06:33
Bittorrent
975デフォルトの名無しさん:2006/11/12(日) 07:14:39
>>973
http://ja.wikipedia.org/wiki/Python
の「Pythonによって実装されているフリー/オープンソースソフトウェア」あたりを見るといいよ
976デフォルトの名無しさん:2006/11/12(日) 09:05:34
>>959さん
Docutils試してみます
rest2webなんてのもあったりするんですね
いろいろ探してみます

ありがとうございました
977デフォルトの名無しさん:2006/11/12(日) 10:39:41
問題があれば理にかなった解決策を見つけて直す。
これまでもそうだったしこれからもそうだ。
978デフォルトの名無しさん:2006/11/12(日) 15:57:56
>>974-975
おぉ!あるんだなやっぱり
ありがとぉ
979デフォルトの名無しさん:2006/11/12(日) 16:48:24
pythonの調べもの(関数の機能や引数など)は普段Webからやるのですが、ローカルでかつコマンドラインで
調べる方法も欲しいなあということで探したらpydocを見つけました。

で、質問があるのです。
例えば関数renameの機能や引数が知りたいとします。でもosというモジュールの名前も存在も知らないとします。
この時、コマンドラインのpydocから、os.renameという情報まで辿りつくことはできるのでしょうか?
pydoc rename や pydoc -k rename のどちらもダメのようですし。。。

こういう検索をしたい場合、直接ドキュメントにgrepするしかないのでしょうか?
980デフォルトの名無しさん:2006/11/12(日) 22:55:23
981デフォルトの名無しさん:2006/11/13(月) 12:26:31
なんと予想に反してリスト内包表記がいちばん速かった!
http://tabesugi.net/memo/2006/b2.html#121342
982デフォルトの名無しさん:2006/11/13(月) 12:42:36
>>981
チュートリアル読めばわかることをいちいち書くな。
983デフォルトの名無しさん:2006/11/13(月) 12:58:03
どこを読めば書いてあるんだ?つか、お勉強スレなんだからいいじゃねえか。
どこかに書いてあることは書けないなんつってたら、荒らししか住めないスレ
になっちまうぞ。
984デフォルトの名無しさん:2006/11/13(月) 13:11:51
もうなってる。
985デフォルトの名無しさん:2006/11/13(月) 13:47:16
マジレスすると、Python2.5では1,2,3は大差なかった。順位も試すたびに
変わるし、あんまり気にする必要ないんじゃないかと思われ。
import time
count = 10000
tests = []
def test():
    s = ''
    for i in range(count):
          s += str(i)
tests.append(test)
def test():
    s = ''
    for i in xrange(count):
        s += str(i)
tests.append(test)
def test():
    s = ''.join([ str(i) for i in range(count) ])
tests.append(test)
def test():
    s = ''.join([ str(i) for i in xrange(count) ])
tests.append(test)
totals = [0.0] * len(tests)
for n in xrange(10):
    for i, test in enumerate(tests):
        t1 = time.time()
        test()
        t2 = time.time()
        totals[i] += (t2 - t1) * 1000 # msec
for total in totals:
    print total / 10
986デフォルトの名無しさん:2006/11/13(月) 13:59:22
って、Windowsのtime.time()の解像度が低いせいか?orz
987デフォルトの名無しさん:2006/11/13(月) 14:21:55
QueryPerformanceCounterを使うwintime.timeをでっちあげて計ってみた。

#count=1000
4.72554564476
4.67648841441
3.90035584569
3.69968898594
4.24475744367
4.1335426271

#count=10000
54.5079901814
50.9173091501
51.2835010886
47.8802196681
55.1138479263
50.6915263832

内包表現が速いってのは本当っぽい。しかしxrangeが遅いというのは
少なくともPython2.5では真実ではない。
988デフォルトの名無しさん:2006/11/13(月) 16:46:47
>986
流れが良く分かってないけどこんなのがあるね:
http://doc.astro-wise.org/timeit.html
| The difference in default timer function is because on Windows,
| clock() has microsecond granularity but time()'s granularity is 1/60th
| of a second; on Unix, clock() has 1/100th of a second granularity and
| time() is much more precise.
989デフォルトの名無しさん:2006/11/13(月) 18:27:42
おお、調べてみます。
990デフォルトの名無しさん:2006/11/13(月) 20:31:52
1000get…には遠いか
991デフォルトの名無しさん:2006/11/13(月) 22:32:24
あと10レスだからさして遠くない
992デフォルトの名無しさん:2006/11/13(月) 23:04:23
ここで新スレに移動
993デフォルトの名無しさん:2006/11/13(月) 23:10:26
Python初心者はこのスレと一緒に埋め立て。
994デフォルトの名無しさん:2006/11/13(月) 23:11:43
>>982
tabesugi warosu(wwwwwwww
995デフォルトの名無しさん:2006/11/13(月) 23:13:53
ウメ
996デフォルトの名無しさん:2006/11/13(月) 23:16:49
Zope関係者の外基地も一緒に埋めようぜ。
997デフォルトの名無しさん:2006/11/13(月) 23:58:21
誘導埋め埋め

Pythonのお勉強 Part15
http://pc8.2ch.net/test/read.cgi/tech/1163339504/
998デフォルトの名無しさん:2006/11/14(火) 00:02:19
998
999デフォルトの名無しさん:2006/11/14(火) 00:04:26
py1000
1000デフォルトの名無しさん:2006/11/14(火) 00:05:29
1000だったらPython初心者はもう来ない。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。