Pythonのお勉強 Part17at TECH
Pythonのお勉強 Part17 - 暇つぶし2ch200:デフォルトの名無しさん
07/02/26 02:14:39
>>198
>とはいえ、Python自身はとても気にいったので、自分はまだ力量不足かも
>しれないけど、なんとかPythonによるデザパタ・コードは書いていきたい。

PHPでもデザパタは出来るよ。

201:デフォルトの名無しさん
07/02/26 02:15:00
行数多いレスは読まなきゃ平気

202:デフォルトの名無しさん
07/02/26 02:16:44
>>198
お願いだから自分のブログか何かでやってくれないか?

203:デフォルトの名無しさん
07/02/26 02:22:20
抜けるためのメソッド
def exit( self ):
  self.__previous.setNext(self.__next)
入れ替わるためのメソッド
def swap( self, target ):
  target.__previous.setNext(self)
  self.setNext(target.__next)
  target.setNext(self.__next)
  self.__previous.setNext(target)

この辺があれば確かに使えるかもね。そのパターン。
__nextとsetNextしかないとif elifと同じだけど・・・

204:デフォルトの名無しさん
07/02/26 02:26:26
いい加減やめたら?
雰囲気読めよ

Pythonでデザパタ。とかスレ作ったら?
そしたら俺もそっち行く

205:デフォルトの名無しさん
07/02/26 02:31:38
>>197
しかし、やっぱり[alice,bob,...]
みたいな人の配列を作って、
順番変更は配列操作、
実行時は
def solve( n ):
  for p in people:
    if p.solve(n):
      return p.message
とかにしたほうが簡単な気がする。
__next だの __previousだのテクニカルすぎてやる意味が見出せない。

206:デフォルトの名無しさん
07/02/26 02:33:22
>>204の直後に>>205って
おまえどういう神経してんの

207:デフォルトの名無しさん
07/02/26 02:41:11
空気が読めない人はPerlを使うと幸せになれると思うよ。

208:デフォルトの名無しさん
07/02/26 02:46:11
一応205はアンチデザパタのつもりで書いたんだけど・・・(・ω・)
205にJavaの人が答えてくれなかったら>>177のパターン絶対使わないし・・・

209:206
07/02/26 02:51:29
>>208
そうだったのか。
ごめんなさい。まぢですまん

210:デフォルトの名無しさん
07/02/26 03:01:19
>>208
いや、だから、
君は抽象的処理者と具体的処理者の部分を全然変更してないだろ。

そして、そうなっているということは、
たくさんのクラスを無修正で済ませることができているということ。
変更を局所化できているということ。

君はすべてを、抽象的処理者と具体的処理者を全然使わない方法で実装できる。

そのとき、どこに変更部分があるかは気まぐれで、
あっちこっちと直さないといけなくなるだろう。
オブジェクト指向を使う意味が全然ない、オブジェクト指向のコードに
することもできる。モジュール構成より疲れるだけの。

天才ダン・インガルスが変更したのは、たしかにメソッド一つだったかもしれない。
でも、それはメソッド一つですむように設計しておいたからだ。

君の変更は、メインクラスのメイン・メソッドの内容にとどまる。
メインクラスには、他のメソッドもいろいろもてるだろう。
アナザー・メソッドを定めておいて、それを実行すれば、
元のコードの変更はゼロで、コードの追加ですべてできるかも
しれない。

以上、デザパタ論議は終わり。自分は当面、参加しない。

211:デフォルトの名無しさん
07/02/26 03:05:29
>>どの程度コードを書換える必要が出てくるかは設計の上手下手の話であって、
>>オブジェクト指向の話ではない。

>ううん、違う。それこそがオブジェクト指向だと思う。

悪いんだけど、他所いってやってくれない? あんた根本的に何か勘違いしてるよ。


212:デフォルトの名無しさん
07/02/26 03:11:11
宗教って怖いね

213:デフォルトの名無しさん
07/02/26 03:22:22
怖いね。


214:デフォルトの名無しさん
07/02/26 03:29:31
怖いね.

215:デフォルトの名無しさん
07/02/26 03:47:08
後は放置で

216:デフォルトの名無しさん
07/02/26 04:49:56
誰かが立てたっぽいな。

デザパタ + python
スレリンク(tech板)

217:デフォルトの名無しさん
07/02/26 04:52:12
遠いお国で幸せになってる人間を、どうこう言うほど卑しくないつもりだw

218:デフォルトの名無しさん
07/02/26 04:56:43
デザパタってのは数式の公式みたいなもんだなあと改めてオモタ。
勉強しているときは何の役に立つのかピンと来ない。
確かに便利そうではあるが自分のこととして実感できない。
そして、実際に役に立つことが分かるようになった頃には
自分にとってごく当たり前の、普段使いの道具になっている。
勉強していたとき、なぜこの便利さが実感できなかったのかと不思議に思う。
できることなら当時の自分に教えてやりたい。
でも、その説明を聞いても当時の自分にはやっぱりピンと来ないんだろうなあ。

219:デフォルトの名無しさん
07/02/26 05:05:24
>>218
>>216

220:デフォルトの名無しさん
07/02/26 05:07:49
>>219
すまん、パピコしてから気付いた。あと「数式の公式」ぢゃなくて「数学の公式」だった。

221:デフォルトの名無しさん
07/02/26 09:07:09
前のフォームのある画面からPOSTでアクセスされ、どんな変数名が渡ってくるか固定ではない場合、
その変数名と値を収集するにはどうしたらいいのでしょうか?

222:デフォルトの名無しさん
07/02/26 11:46:01
>>221
デザパタとオブジェクト指向を勉強すれば分かるよ

223:デフォルトの名無しさん
07/02/26 12:05:42
・・・などと、とんちんかんな回答をもらわないように、
使っているライブラリ、実行環境、できれば問題を再現する小さなコードなど、
問題を特定するのに必要な情報を書きましょう。

224:デフォルトの名無しさん
07/02/26 12:14:55
>>221
質問の仕方が悪い.

~するには何パターンを使えばいいのですか?

これが、このスレでの正しい質問のしかた.

225:デフォルトの名無しさん
07/02/26 12:32:53
>>221
import cgi
FormData = cgi.FieldStorage()

print "Content-Type: text/text\n"
for KEY in FormData.keys():
 print "(%s, %s)" % (KEY, str(FormData.getlist(KEY)))

226:デフォルトの名無しさん
07/02/26 12:41:30
URLリンク(video.google.com)
Python 3.0 final: June 2008
Python 2.6 final: April 2008

227:デフォルトの名無しさん
07/02/26 12:46:26
>>225
適当に書いたけど正しくは「text/plain」だった

228:221
07/02/26 13:09:15
>>222-227
ご返答ありがとうございます。
情報不足で申し訳ありませんでした。
>>225さんのソースを元に作成してみます。

229:221
07/02/26 15:08:56
>>225のサンプルを元に作成してみました。
実行した結果、何も表示されませんでした。
原因はresult.pyの「for KEY in FormData.keys():」のループが1度も入りません。
→FormDataの値を確認したら「FieldStorage(None, None, [])」で値が取得出来なかった模様。
期待値としてtest.htmlのtext1に「123」test2に「abc」を入れ
result.pyの画面で「test1/123(改行)test2/abc」がブラウザで表示されることです。
改善策を教えて下さい。よろしくお願いします。

--- test.html(form部分のみ/nameのtest1とtext2が可変の名前になる所) ---
<form action="result.py" method="post">
<input type="text" name="text1">
<input type="text" name="text2">
<input type="submit" value="実行">
</form>

--- result.py ---
import cgi
from mod_python import apache
from string import *
def handler(req):
 FormData = cgi.FieldStorage()
 req.write("Content-Type: text/html\n\n")
 req.write("Content-Type: text/plain\n")
 req.write("<html><head><title>test</title></head><body>")
 for KEY in FormData.keys():
  data_column = str(KEY) + "/"
  data_value = str(FormData.getlist(KEY)) + "<BR>"
  req.write(req, data_column)
  req.write(req, data_value)
 req.write("</body></html>")

230:221と229
07/02/26 15:13:41
req.write("</body></html>")
の次の行に
return apache.OK
が入ります。

231:デフォルトの名無しさん
07/02/26 15:24:30
>>229
普通のcgiじゃなくて、mod-python か。
そっちは良くわからん。

とりあえず、Content-Typeは1回だけしか書けないはずなので、
req.write("Content-Type: text/plain\n")
の行は削除してみてくれ

232:229
07/02/26 15:38:26
>>231
mod-pythonの方です。
Content-Typeの所は指定の通り、消してみましたが変化ないようです。

FormData = cgi.FieldStorage()

この時点でFormDataに何も値が持ってこられない時点で、
エラーにはならないとはいえmod-pythonでは使えないのかな?

233:デフォルトの名無しさん
07/02/26 16:04:04
>>232
マニュアルさっと見た限り、
from mod_python import util
form_data= util.FieldStorage(req)
とかでいけそうな気がします。

あと、ヘッダについては req.write() するのではなく
req.content_type = "text/plain"
のようにするみたいです。

234:デフォルトの名無しさん
07/02/26 16:10:31
cgiモジュールは普通のCGIで使うやつだから、mod-pythonの場合は根本的に違うんじゃないかな。
ちょっと調べたら、

Content-Typeの設定は
req.content_type = "text/plain"
で設定する。

URLリンク(www.python.jp)
を読むと、クライアントからのデータは readメソッドで読めるようだ。
POSTの生データは、KEY1=VALUE1&KEY2=VALUE2&・・・だから
あとは自力でなんとかしてみれ。

235:232
07/02/26 16:44:37
>>233-234
返答ありがとうございます。

>>233さんのutilをインポートする件は、表示出来ず、
>>234さんのContent-Typeでreadメソッドでも表示出来ませんでした。
何か手段が無いかと別のメソッドを調査してみた所、
readではなくreadlineのメソッドでフォームの値が収集出来ました。
「text1=123&text2=abc」って感じに。
あとはこの文字列を砕いて表示出来るように頑張ります。
記念に同じ疑問で今後引っかかった方用にソース残しておきます。

--- result.py ---
from mod_python import apache
from string import *
def handler(req):
req.content_type = "text/plain"
aaaaa = req.readline()
req.write("<html><head><title>test</title></head><body>")
req.write(aaaaa)
req.write("</body></html>")
return apache.OK

みなさん、ご協力ありがとうございます。

236:デフォルトの名無しさん
07/02/26 16:44:41
つーか、text/htmlとtext/plainを同時に指定しちゃだめだろw
あと、>>229の書き方だと、空行の入る位置がおかしいから
2個目のContent-typeはドキュメント内に表示されるぞ、

>>234
それやるとデコードを自分でやる羽目になるので、素人にはお勧めできないw

237:デフォルトの名無しさん
07/02/26 16:46:40
こんな感じか

from mod_python import apache, util

def handler(req):
 req.content_type = "text/plain"
 form_data= util.FieldStorage(req)
 for field in form_data.list:
  req.write(field.name+"/"+field.value+"\n")
 return apache.OK

238:デフォルトの名無しさん
07/02/26 16:52:03
>>226
ヒゲ!ヒゲ!

239:235
07/02/26 17:00:34
>>236-237
ご返答ありがとうございます

>>237さんの便利ですね。
1項目ずつ分かれていますから。
自分のより、こちらをベースにしたいです。

本当にありがとうございます。


240:デフォルトの名無しさん
07/02/26 17:16:02
やっぱりprint 関数は見た目はあんまりうれしくない感じだ・・・
print('x\n', 'y')とかちょっとperlっぽい感じがする、・・・、
まあp=printとか[print(x) for x in arry]
とかいろいろ悪さが出来るのは面白いだろうけど、・・・

241:デフォルトの名無しさん
07/02/26 17:39:10
>>226
ず~と 水みたいなのを握り締めてるのが気になってしょうがない

242:デフォルトの名無しさん
07/02/26 17:49:29
new style class がraise出来なかったのは結局解決したってことなんだろうか・・・
短くてよく分からんかった・・・

243:デフォルトの名無しさん
07/02/26 17:58:45
a = { f(x) for x in S if P(x) }

↑これやばいwかっこよすぎ

244:デフォルトの名無しさん
07/02/26 21:02:36
nonlocal 萎え

245:デフォルトの名無しさん
07/02/26 22:15:25
  _  ∩
( ゚∀゚)彡 おっぱい!おっぱい!
 ⊂彡


246:デフォルトの名無しさん
07/02/26 22:24:03
perlでいうCPANみたいなものってpythonではどこになるんすか?

247:デフォルトの名無しさん
07/02/26 22:30:25
>>246
ぱいぱい

248:デフォルトの名無しさん
07/02/26 22:31:00
ぱいぱい
URLリンク(cheeseshop.python.org)

249:デフォルトの名無しさん
07/02/26 22:52:49
>>247-248
ありがとん。

250:デフォルトの名無しさん
07/02/27 03:10:10
チーズショップが正式名称になったんじゃないの?
まあ、urlに残ってるけど・・・

251:デフォルトの名無しさん
07/02/27 15:05:15
最新Pythonエクスプローラ ~Django,TurboGears,Twisted,IronPython 完全攻略
URLリンク(gihyo.jp)

252:デフォルトの名無しさん
07/02/27 15:13:12
お、よさげだね

SDの python 関連記事のまとめかな?


253:デフォルトの名無しさん
07/02/27 17:59:44
それにしても TurboGears ってpython2.5がでて半年たつのにいまだに
2.5に対応できないでいる。寄せ集めツールズの弱点がでた感じ。

254:デフォルトの名無しさん
07/02/27 20:48:06
一番遅いのに合わせてるってこと? どいつだろう。

255:デフォルトの名無しさん
07/02/27 20:51:58
2.5に未対応でもほぼ無問題.
functoolsとか使いたがるヤツはたいてい使い物にならない機能オタ.

256:デフォルトの名無しさん
07/02/27 21:05:18
>>> [   'A']
['A']

こっちみんなよw

>>> ['A'   ]
['A']

こっちみんな!w

257:デフォルトの名無しさん
07/02/27 21:08:13
>>256
和んだw

258:デフォルトの名無しさん
07/02/27 21:38:27
吹いた

259:デフォルトの名無しさん
07/02/27 21:43:49
>>256
その発想はなかったわwwwww

260:デフォルトの名無しさん
07/02/28 01:12:51
>>256
Python >>> Ruby が決定したなw

irb(main):001:0> [   'A']
=> ["A"]
irb(main):002:0> ['A'   ]
=> ["A"]


261:デフォルトの名無しさん
07/02/28 02:00:28
>>260
あなたのおかげで、やっと>>256の意味がわかった。
ありがとう、面白いねこれ。

262:デフォルトの名無しさん
07/02/28 07:48:17
>>>> ('_')
>'_'
>>>> ('_')
>'_'
>>>> ('_',)
>('_',)


263:デフォルトの名無しさん
07/02/28 09:49:37
Python Jobs - Average Salary for Python Skills
URLリンク(www.itjobswatch.co.uk)
> Average Salary £43,149

  (,,゚Д゚) 43149ポンドっていくらだ・・・・

Σ(,,゚Д゚) 1000万超?!

  (,,゚Д゚) ポカーン

264:デフォルトの名無しさん
07/02/28 09:50:58
なのになんで俺無職なん?

265:デフォルトの名無しさん
07/02/28 09:53:48
Over1000マソのサラリーに求められる
仕事の質や量を考えられないようなヤツが無職なのは当然

266:デフォルトの名無しさん
07/02/28 10:20:58
決め打ちの煽りワロス

無職仲間ハケーン

267:デフォルトの名無しさん
07/02/28 10:35:53
>>264,266
Python使えてIQ140以上で英語ができて
IT系の特定分野でとんがった技術持ってて
自分で課題設定できて絶え間なく成果を出せるようなスキルがあれば
Googleに入れるぞ!

そしたらストックオプションで人生の半分くらい引きこもっても生きてられるぞ!!

おまえらガンガレ!!

268:デフォルトの名無しさん
07/02/28 11:44:10
>自分で課題設定できて絶え間なく成果を出せる

....................o.....rz


269:デフォルトの名無しさん
07/02/28 13:08:57
有能を語っているうちに興奮して態度がでかくなる無能って
どうしようもなくミジメだよな。

270:デフォルトの名無しさん
07/02/28 14:04:14
そんなやつならわざわざGoogleに入るまでもない。

271:デフォルトの名無しさん
07/02/28 20:22:43
>>> [  'A'] < "なあ、俺って結構イケてる?"
True
>>> [  'A'] < "え、マジで?"
True
>>> [  'A'] < "・・・・・"
True
>>> [  'A'] < "あー"
True
>>> [  'A'] < "俺、逝ってよし?"
True
>>> [  'A']
['A']

だから、こっちみんなw

272:デフォルトの名無しさん
07/02/28 20:47:23
ぱいそんかわいいよぱいそん

273:デフォルトの名無しさん
07/02/28 20:50:36
たぷるたん、ってのもいました

274:デフォルトの名無しさん
07/02/28 23:01:01
>>269
そうやって君の一日がまた一つ終わったわけだ。

275:デフォルトの名無しさん
07/03/01 00:45:09
>>271
ハゲワロスw

276:デフォルトの名無しさん
07/03/01 01:05:05
>>271
くだらないけどワロタww

277:デフォルトの名無しさん
07/03/01 02:58:43
最近RubyからPythonに移ってきました。
比較しながら勉強しているのですが、リストのflattenに
あたるメソッドはないのでしょうか?

たとえば、[[1,2,3],[4,5,6],[7,8,9]]

[1,2,3,4,5,6,7,8,9]
に変換するようなものです。
よろしくお願いします。

278:デフォルトの名無しさん
07/03/01 03:00:11
ちなみに、
Rubyのflattenだと、もっと深いリストでも
A = [[1,2,[3],[4,[5,6],[7,8],[9]]
B = A.flatten()
と書くと、[1,2,3,4,5,6,7,8,9]になります。

279:デフォルトの名無しさん
07/03/01 04:03:51
>>277-278
ないと思われ

280:デフォルトの名無しさん
07/03/01 04:09:56
早めに置いておきますね

Python厨とRuby厨が仲直りするスレッド
スレリンク(tech板)

281:デフォルトの名無しさん
07/03/01 04:16:10
欲しいと思ったことはないが、ないなら実装すれば良いと思われ。

import types

def flatten(a):
    ret = []
    for x in a:
        if type(x) == types.ListType:
            ret.extend(flatten(x))
        else:
            ret.append(x)
    return ret

print flatten([[1,2,[3],[4,[5,6],[7,8],[9]]]])


282:デフォルトの名無しさん
07/03/01 04:34:16
>>279
>>281
ありがとうございます。
A.flatten().collect().join()とかよく書くので
知りたかっただけのことです。

>>280
ケンカなんかしませんよw


283:デフォルトの名無しさん
07/03/01 08:10:39
>>281
types.ListType なんて初めて知った。。。
これってどのバージョンでも使えるの?

284:デフォルトの名無しさん
07/03/01 09:45:40
>>281
ListTypeはオッサンの書き方。
ヤングマンはisinstance()を使うべし。

URLリンク(www.python.jp)

285:デフォルトの名無しさん
07/03/01 11:07:18
type(x) == list でもいい

286:デフォルトの名無しさん
07/03/01 11:24:46
>>285
URLリンク(www.python.jp)

>オブジェクトの型のテストには、組み込み関数 isinstance() が推奨されています。

Perlでもやれば?(wwwwwwwwwwwwww

287:デフォルトの名無しさん
07/03/01 14:08:21
Ruby厨ってまぢしつこいね。

288:デフォルトの名無しさん
07/03/01 14:10:18
ジェネレータ使うならこんな感じか。

def iter_deep_array(a):
    for x in a:
        if isinstance(x, list):
            for y in iter_deep_array(x):
                yield y
        else:
            yield x

def flatten(a):
    return list(iter_deep_array(a))

print flatten([[1,2,[3],[4,[5,6],[7,8],[9]]]])


289:デフォルトの名無しさん
07/03/01 15:57:15
こういうの見ると引数型のパターンマッチがほしくなってくる・・・

290:デフォルトの名無しさん
07/03/01 23:04:08
lst = [1,2,3]
lst.append(lst)

print flatten(lst)


291:デフォルトの名無しさん
07/03/01 23:17:34
>>289
ん?どういうこと?

292:デフォルトの名無しさん
07/03/02 00:34:48
>>291
Haskellみたいなの、ってことじゃね?


293:デフォルトの名無しさん
07/03/02 01:48:44
[Python-ml-jp 3915] Guido氏サイン入り「みんなのPython」プレゼントのお知らせ

294:デフォルトの名無しさん
07/03/02 01:51:23
日本語でかかれたファイル(文字コード不明)があって、
その中の文字数をカウントしたいのですが、
どうすればいいですか?

echo あ >text

data = open( "./text" ).read();
print len( data );

で、4と表示されてしまいます、、、

295:デフォルトの名無しさん
07/03/02 01:52:28
URLリンク(www.python.jp)

これだな

296:デフォルトの名無しさん
07/03/02 01:56:23
>>295
1行目の「~にふられちゃいました」で一瞬ドキリとした。

297:デフォルトの名無しさん
07/03/02 01:59:33
>>294
1文字じゃ文字コードの判定できない。
エスパーで答えると、
print len(data.decode('utf-8'))

298:デフォルトの名無しさん
07/03/02 02:56:23
       。oO( import string っと・・・ )
  ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_
  \/    ./
     ̄ ̄ ̄

  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_
  \/    ./
     ̄ ̄ ̄

299:デフォルトの名無しさん
07/03/02 03:29:53
>>297
めっちゃありがとうございますx100
出来ました。エスパー凄杉

あと、1文字じゃ判定できないんですか
ちょっと勉強してみます

300:デフォルトの名無しさん
07/03/02 05:25:15
>>293
なんだか芸能人みたいなことをさせられてるGuidoワロス

301:デフォルトの名無しさん
07/03/02 05:45:11
俺は初めてのPythonと、みんなのPython買ったが
選択は間違いじゃないかな?

302:デフォルトの名無しさん
07/03/02 07:51:35
このスレの住人はほとんど本興味なし

303:デフォルトの名無しさん
07/03/02 08:51:22
アルヨ アルヨ

304:デフォルトの名無しさん
07/03/02 10:00:34
>>299

それは例えば、

a

と一文字だけ書いてあって、これが英文の一部か独文の一部か
仏文の一部か判定しろ、ってのと同じだと思われ。

305:デフォルトの名無しさん
07/03/02 11:31:55
自分のサイン入りをプレゼントするのならそうとうキモいな

306:デフォルトの名無しさん
07/03/02 11:44:38
>>295
ご本人は志賀高原か
俺らとは人種が違うようだ(w

307:デフォルトの名無しさん
07/03/02 14:22:31
やりたいことやるだけなら、ぶっちゃけ本とか要らなくね?

308:デフォルトの名無しさん
07/03/02 16:41:40
>>307
検索するのもおっくうなときに、
パラパラめくれるリファ本があると、便利じゃない?

309:デフォルトの名無しさん
07/03/02 16:45:20
>>308
本めくるよりは検索のが絶対速い

本のよさは、どこでも読めることと、大量の文章をさほど疲れずに読めることだろう

310:デフォルトの名無しさん
07/03/02 16:48:46
本に書いてあることがすべてネットに存在するわけじゃ無かろう
ネットで十分な人は本買わなきゃいいだけだよ

311:デフォルトの名無しさん
07/03/02 17:01:33
>>309
> 本めくるよりは検索のが絶対速い

いや~、そうじゃない事も多いよ。
検索しても、欲しかった情報がばっちり書いてあるのか、単語が書いてあるだけなのか、
実際見ないとわからないこともあるしね。

312:デフォルトの名無しさん
07/03/02 17:59:05
帰りの電車の中で読むなら本だな。

313:デフォルトの名無しさん
07/03/02 18:12:49
初めて扱う分野の基本を勉強するなら本をじっくり読む方がいい。
ファミレスでランチ食いながら読んだりするよ。

314:デフォルトの名無しさん
07/03/02 18:47:10
おまいらpythonをどんな場面に活用してる?
ファイル整理スクリプトとか?それとも何かアプリ作ったりとか?

315:デフォルトの名無しさん
07/03/02 19:16:24
ネイティブでなくてもいい場面なら何でも。

316:デフォルトの名無しさん
07/03/02 20:24:32
ネット系の実験とかが多いな

317:デフォルトの名無しさん
07/03/02 20:25:55
>>314
高級電卓

318:デフォルトの名無しさん
07/03/02 20:52:43
あー、そういえばこないだ、数板で覆面算きいてる奴がいて、
pythonでさっと検索関数書いて答えたりした・・w

319:デフォルトの名無しさん
07/03/03 02:20:56
Pythonだけで2chブラウザ作るのは、まあ無謀だよな

320:デフォルトの名無しさん
07/03/03 03:11:52
昔作ってる人いたな
モナークとキティーウォークだったかな

321:デフォルトの名無しさん
07/03/03 04:19:20
エンジン部が遅くなる気がする以上に、GUI作るので発狂しそうだw
VBのがまだ向いてるな。C系より遅いったって、Pyよりは速いの出来そうだし。

322:デフォルトの名無しさん
07/03/03 04:59:36
そこでpsycoですよ

323:デフォルトの名無しさん
07/03/03 07:59:14
流れよまずに
lambdaは廃止になるんだっけ?

324:デフォルトの名無しさん
07/03/03 08:27:23
scipyをintel macにインストールできた人いたらやり方おしえてくださいっす。
コンパイルはできたんですが、テストプログラム動かすとエラーになってしまう。。


325:デフォルトの名無しさん
07/03/03 12:48:38
>>323
ならない。拡張(複数行とか)もされない。

326:デフォルトの名無しさん
07/03/03 12:50:43
>>324
ちなみにどんなエラーが出るの?

327:デフォルトの名無しさん
07/03/03 14:00:44
>>295
本屋に行ったら下に書いてある「TurboGears×Python」ってやつがすでに平積みされてた
早売りにもほどがある

328:デフォルトの名無しさん
07/03/03 14:22:53
質問です。

ログファイルを監視するアプリ(unix の tail -f みたいなもの)をpythonで作りたいと思っています(wxPythonでGUIにするつもりです)。
pythonでファイルを監視して変更があったことを検知する手段はあるのでしょうか?

今のところ思いついた方法としては
・一定間隔でタイマーイベントを発行
・ファイルの更新時間を調べて前回の更新時間と比較
・更新されていたら表示
とすればいけると思うのですが、イマイチしっくりこないので…

環境は
WinXP SP2
Python2.4
です。

329:デフォルトの名無しさん
07/03/03 14:54:32
ない
Windows の API を使うこと

330:デフォルトの名無しさん
07/03/03 15:49:31
ねんちゃくねんちゃくぅ!

331:デフォルトの名無しさん
07/03/03 19:49:34
>>323
関数型言語としてのアイデンティティがwww

332:デフォルトの名無しさん
07/03/03 21:35:23
関数型言語じゃないのでへっちゃらです

333:デフォルトの名無しさん
07/03/03 22:12:50
URLリンク(cheeseshop.python.org)

334:デフォルトの名無しさん
07/03/03 22:44:01
↑これって並列化云々の技術と組み合わせられるのかなぁ・・・?

335:lambda
07/03/03 22:48:07
サンキュー
key 付きの sort, min, max 使ってるソース書いてから
lambda 廃止?書き直しかよーと狼狽してた。


336:デフォルトの名無しさん
07/03/03 23:04:58
>>328
スレッド使えばできるんじゃね?下のコードだとなんか時々終わる時に
エラー出るけど、スレッド詳しい人ならちゃんと書けるはず。

import thread
import time
import os

def change():
    open("a.txt", "w").write("a")

def watch():
    t1 = None
    while 1:
        t2 = os.path.getmtime("a.txt")
        if t1 is not None and t1 != t2:
            print "changed"
        t1 = t2
        time.sleep(1)

change()
thread.start_new_thread(watch, ())

for _ in xrange(5):
    change()
    time.sleep(2)


337:デフォルトの名無しさん
07/03/04 00:01:23
HTMLParserの使い方が全く理解できねえ・・・・
ググって見つかるサンプルも、呪文にしか見えない・・・・orz
やさしいサンプルとか、そのあたりを解説した書籍とか、HPとか・・・・なんでもいいからなんか教えて!!

338:328
07/03/04 00:35:57
>>329
FindFirstChangeNotificationやFindNextChangeNotificationあたりがそれっぽいですね。
pywin32モジュールから使えそうなので調べてみようと思います。

>>336
そういう方法もあるんですね。
スレッド周りは勉強不足なのでこれを期に勉強してみようと思います。


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

339:デフォルトの名無しさん
07/03/04 00:44:14
>>337
H2タグで囲まれた部分を取り出してリストにするサンプル

#!/usr/local/bin/python
# coding=shift_jis

import HTMLParser

class MyHTMLParser(HTMLParser.HTMLParser):
#俺カスタムなHTMLParserクラスを作る
H2List = []
TagID = '' #H2タグの場合のフラグの準備

def handle_starttag(self, tag, attrs): #何か開始タグに来た場合の処理
if tag == 'h2': #ページのソースに関係なく小文字!!
self.TagID = 'h2' #H2タグに来たときにフラグをたてる
elif tag == 'hoge':
self.TagID = 'hoge' #他のタグに来たときにフラグをたてる

def handle_endtag(self, tag): #何か終了タグに来た場合の処理
if tag == 'h2': #ここも小文字!!
self.TagID = '' #H2タグを抜けるときにフラグをはずす
elif tag == 'hoge':
self.TagID = ''

def handle_data(self, data): #開始・終了タグに囲まれた中身の処理
if self.TagID == 'h2':
self.H2List.append(data) #フラグがある場合に内容をリストに追加

340:デフォルトの名無しさん
07/03/04 00:45:45
(つづき。インデントは行頭に戻す)
URL = 'URLリンク(www.python.org)'

import urllib2
Website = urllib2.urlopen(URL)
HTML = Website.read()
Website.close()

MyParser = MyHTMLParser()
MyParser.feed(HTML)
MyList = MyParser.H2List
MyParser.close()

print MyList

341:デフォルトの名無しさん
07/03/04 00:51:04
>>339-340
ありがとう!!!
コメントがめちゃくちゃ有り難い。

342:339,340
07/03/04 00:55:32
>>341
俺も最初わからんかったから気持ちはよくわかる。
普段はオブジェクト指向プログラミングとかしないから、
クラスのメソッドをオーバーライトする、とかの意味がわからんかった。

343:デフォルトの名無しさん
07/03/04 01:35:17
>>337
PerlのHTML::Parserと違ってタグのオリジナルテキストをそのまま取得できないので
その点は注意だな。

たとえば、一部要素に関してだけ何らかの変換をして
他はそのまま通すような変換フィルタをこれで書こうとすると、

・コピーするためには、あらゆる要素のハンドラを書かざるを得ない。
 handle_charref()やhandle_entityref()なども忘れずに。
・タグはタグ名とアトリビュートに分解された形でしか取得できないので、
 自分で組み立てなおして出力するしかない。

344:デフォルトの名無しさん
07/03/04 01:49:37
>>337

的外れかもしれませんけど、BeautifulSoupがおすすめです。
URLリンク(www.crummy.com)

from BeautifulSoup import BeautifulSoup

test_html="""
<html>
<body>
<h2>hogehoge</h2>
<h2>hogehoge</h2>
</body>
</html>
"""

soup = BeautifulSoup(test_html)
for h2 in soup.findAll('h2'):
print h2.string

結果
hogehoge
hogehoge

345:デフォルトの名無しさん
07/03/04 02:48:33
>>281>>288
reduceを使ったらもうちょっとかわいく書けた。

def cup(n): return flatten(n) if isinstance(n, list) else [n]
def spoo(n, m): return cup(n) + cup(m)
def flatten(L): return [] if not L else cup(L[0]) if len(L) == 1 else reduce(spoo, L)

flatten([[1,2,[3],[[[[[[[]]]]]]],[4,[5,6],[7,8],[9]]]])
#=> [1,2,3,4,5,6,7,8,9]

346:デフォルトの名無しさん
07/03/04 04:03:55
[]がすげえな、目が痛い。自殺志向のPythonに思えるw

347:デフォルトの名無しさん
07/03/04 09:39:45
>>345
よくこんなコード思いつくなwww
これはすごい
理解するのに3分ぐらいかかったぜwww

348:デフォルトの名無しさん
07/03/04 22:47:15
>345 は言語マニヤ? ← 尊敬


349:デフォルトの名無しさん
07/03/05 00:34:22
サニタイジングが簡単に出来るモジュール化何かないでしょうか?

350:デフォルトの名無しさん
07/03/05 02:24:10
想像するに>>345はLISPERだな。

351:デフォルトの名無しさん
07/03/05 13:28:43
>>349
>>> import cgi
>>> cgi.escape('<>&"')
'<>&"'
>>> cgi.escape('<>&"', True)
'<>&"'

それはそうと、Pythonで変数が定義されているかどうかを調べるよい方法はありますか。
locals().has_key('foo') or globals().has_key('foo')
というのがダサくて仕方ありません。

352:デフォルトの名無しさん
07/03/05 13:39:09
そもそも変数が定義されているかどうか調べなきゃいけなないという状況がダサいの
だから我慢してください

353:デフォルトの名無しさん
07/03/05 13:53:45
try: except:

354:デフォルトの名無しさん
07/03/05 15:45:49
>>352
そういう状況、ふつうにあるけどな。メタプログラミングがからんできたら。
知らないなら知らないといえばいいのに、なにをわざわざ言い訳してるんだろ。

>>353
さんくす。そんな方法もあったか。
でもちょっと微妙

355:デフォルトの名無しさん
07/03/05 15:53:43
>>351
某ブラウザだとアンカーがないと何やってるか分からんw

356:デフォルトの名無しさん
07/03/05 15:56:01
>>351
普通に'foo' in locals()は?

357:デフォルトの名無しさん
07/03/05 16:16:07
>>354
メタプログラミングを使うとコードの変数参照スコープ?が動的に変わるの?

358:デフォルトの名無しさん
07/03/05 16:17:22
>>354
メタプログラミングが必要になる状況がそもそもダサいとは思わんかね?

359:デフォルトの名無しさん
07/03/05 16:31:03
オレはダサくないって事だけは鉄板なんだよきっと.

360:デフォルトの名無しさん
07/03/05 16:37:59
なにがダサイダサクナイって話はスレ違いじゃまいか?


361:デフォルトの名無しさん
07/03/05 16:50:55
351はPython使いとしてダサいと思います。

362:デフォルトの名無しさん
07/03/05 21:07:33
なんでassertしないんだ

363:デフォルトの名無しさん
07/03/05 23:14:48
PythonコードからPythonコードをインタプリタっぽく使う方法ってありませんかね?

parserライブラリのASTを有効活用すれば楽できるかと思うけど、どうやって良いか思いつかない。
今はしょうがなくスレッド化して、同期処理やってます。

364:デフォルトの名無しさん
07/03/05 23:39:56
eval(open(file).read())

365:363
07/03/05 23:50:51
>>364
それを使うと、fileのソースを一気に実行してしまうんですけど
そのfileのソースコードと本体のソースコードを同期させたいんです。

例えば、file内のソースに TextOut(r'あいうえお',50,'MSPゴシック')、とあったら
本体GUIに50msec間隔で'あいうえお'がMSPゴシックで表示される感じです。
もちろん、本体GUIも同時に動いています。

そして、今そのTextOutみたいな特殊な関数をスレッド関連で同期取っているんですけど
あまりの開発効率の悪さに、心が折れそうになってるんですよ。

366:デフォルトの名無しさん
07/03/06 00:03:58
code = open(file).read()

使いたいスコープ:
  eval(code)

367:デフォルトの名無しさん
07/03/06 00:06:47
> 50msec間隔で'あいうえお'がMSPゴシックで表示される感じです

「あ」「い」・・・って一文字表示される間隔なのか、
全体の文字列がチカチカ50msec間隔で表示・非表示を繰り返すのか、意味分からん。
どっちにしても、そういうのを同期っていうのか?

368:デフォルトの名無しさん
07/03/06 00:10:50
やりたいことがよくわからんが、スレッドでやるほうが百万倍簡単じゃね?

369:363
07/03/06 00:11:20
>>366
なんとなくそうなるんではないかと、予想はあったのですけど・・・。
ちょっとやってみます。

>>367
一文字ずつ表示される間隔です。
5文字だから250msecぐらいだとして、その250msecで表示が完了するまで
インタプリタ側の処理は先に進んで欲しくないわけです。
そこで、本体ソースはインタプリタ側のスレッドを一時停止して同期を取っていた訳です。

370:363
07/03/06 00:14:28
>>368
まあ、スレッド使ってやっているわけですけど。


まあ、ぶっちゃけると、プレゼンアプリっぽいのを作っているわけです。
当然アニメーション処理や、文字の時差表示などを組み込んでいるわけですけど。

今までxmlか何かでインポートしていたのを、ふと、「Pythonコードそのもの使ってできなくね?」
と思った次第で。

371:デフォルトの名無しさん
07/03/06 00:17:00
GUIでつくるんなら、GUI側にタイマーイベント処理とか作ればいいんじゃね?

372:363
07/03/06 00:19:24
>>371
ごめ、GUI側にタイマ処理は既にやっているぽ。

その間、インタプリタ側の処理を止めるのに、わざわざセッションを一々張っているので
何とか改善できないかなぁ、と思ってるんです。

373:363
07/03/06 00:24:25
貴重なスレを消化してすんません。
もうちょっと、先が見えてからまたきます。

374:デフォルトの名無しさん
07/03/06 00:30:29
>>370
なるほど、コルーチン的に動かしたいわけだね。
別インタプリタを起動するよりは、そのPythonソース中ではトップレベルではなく、何か
main的な関数を呼ぶ規則にしておくのが良いんじゃないかな。
あとは別スレッドでそこを呼び出す。さらにプレゼン用の便利同期プリミティブセット一式
を作って抽象化しておく。

375:デフォルトの名無しさん
07/03/06 00:38:21
普通に埋め込みコードをCで書けば?

376:363
07/03/06 00:43:53
>>374
な・・・なるほど。多分半分ぐらいは理解してないけど。
便利同期プリミティブセット一式、てのは必須ですね。

行き当たりばったりでPythonコード組めなかったのは初めてだ・・・。

>>375
PLY使ってLunaっぽくCもどきスクリプトを作り始めたのが最初なのは秘密だ。
微妙な完成度と、異常な遅さと不安定さで(全部自責)、このまま開発を継続
するのを断念したのも秘密だ。

377:デフォルトの名無しさん
07/03/06 01:38:44
URLリンク(www.python.jp)

378:デフォルトの名無しさん
07/03/06 11:27:40
Pythonで、オブジェクトの中身を再帰的にたどって表示してくれるようなライブラリはありますか。
Rubyのinspect()メソッドみたいなやつです。


379:デフォルトの名無しさん
07/03/06 11:30:29
別にRubyと比較している訳じゃないので、「だったらRuby使え」とかいう人間としてレベルが低い反応はご遠慮ください。

380:デフォルトの名無しさん
07/03/06 11:36:10
>378 と >379 の間にナニかレスあったの?

381:デフォルトの名無しさん
07/03/06 11:49:44
>>379
>人間としてレベルが低い反応

質問者としてレベルが低いですね.
オマエみたいなヤツはRuby使え.

382:デフォルトの名無しさん
07/03/06 13:31:36
>>363
目的は違うけど以前似たよーなことを考えて書いたコードがあったので
参考までに貼っとく。

[ext_runner.py]--------------------------------------------------------
from bdb import Bdb
import Tkinter, threading
trigger = threading.Event()
running = True
class Debugger(Bdb):
    def user_line(self, frame):
        trigger.wait()
        if not running:
            self.set_quit()
db = Debugger()
class DebuggerThread(threading.Thread):
    def run(self):
        db.run("import ext")
ui = Tkinter.Tk()
button = Tkinter.Button(ui, text="Run")
button.pack(fill="x")
def toggle():
    if trigger.isSet():
        button.config(text="Run")
        trigger.clear()
    else:
        button.config(text="Stop")
        trigger.set()
button.config(command=toggle)

383:382の続き
07/03/06 13:32:44
th = DebuggerThread()
def quit():
    global running; running = False
    print "terminating the external script..."
    trigger.set()
    th.join()
    print "done"
    ui.quit()
Tkinter.Button(ui, text="Quit", command=quit).pack(fill="x")
th.start()
ui.mainloop()
ui.destroy()

[ext.py]---------------------------------------------------------------
import time
c = 0
while True:
    c += 1
    print "count", c
    time.sleep(1)

384:デフォルトの名無しさん
07/03/06 14:09:49
>>378>>376は別人だろ
釣られるなよ

385:デフォルトの名無しさん
07/03/06 14:10:23
>>378>>379

386:デフォルトの名無しさん
07/03/06 14:31:08
今さら自己フォローですか。
そんなことより、すぐ興奮する癖と被害妄想とどうにかするほうが先だと思います。

387:デフォルトの名無しさん
07/03/06 14:34:45
おまえもな

388:デフォルトの名無しさん
07/03/06 14:42:03
>378

単純な質問だが、オブジェクトの「中身」って何だ?


389:デフォルトの名無しさん
07/03/06 14:45:09
Rubyのinspect()メソッドみたいなやつって書いただろ

390:デフォルトの名無しさん
07/03/06 15:03:36
Ruby使いが人間として劣っていることがよく分かる展開だな(wwww

391:デフォルトの名無しさん
07/03/06 15:05:06
頭の悪さをねちっこさでカバーして
偉そうにするから連中は始末に負えない。

392:デフォルトの名無しさん
07/03/06 15:06:43
おいおい、まつもとくんのことをそんな風に言うのはやめろよな!!

393:デフォルトの名無しさん
07/03/06 15:13:07
俺は>378じゃないが、Pythonで言うなら

class MyClass:
  def __init__(self):
    self.var1 = 'foo'
    self.var2 = 3

obj = MyClass()
print obj.inspect()

ってやったら

<MyClass: var1='foo' var2=3>

って感じで表示されるのが Ruby の inspect だな
再帰的っつーか、ルートクラスで定義されてる上に
inspect 内でフィールドに inspect 呼んでるから結果的に全て遡るだけ

ちなみに、リテラル形式のあるクラスでは inspect はリテラル自体を返す

>>378
リテラルに対しては repr() を使えばお望みの物が出るハズ
自作クラスなら、それらしいメソッド名で
中身の各オブジェクトに対して repr() 呼ぶぐらいしか俺は思いつかないが

394:デフォルトの名無しさん
07/03/06 15:16:58
リテラルに対しては、じゃないや
リテラルの形式で書けるクラスのインスタンスに対しては、が正確か

395:デフォルトの名無しさん
07/03/06 15:17:18
>>393
>自作クラスなら、それらしいメソッド名で

URLリンク(www.python.jp)

入門書くらい読もうな。

396:デフォルトの名無しさん
07/03/06 15:26:30
>395
__repr__() は知ってたけれど、何か違う気がしてやめた。
やっぱ、__repr__() が一番適切?
でも持ってる変数の中身まで見たり、
> 可能な場合には、この値は
> 同じ値を持ったオブジェクトを
> (適切な環境で) 再生成するために使えるような
> 有効な Python 式に 似せるべきです。
って辺りが気になってそうは言わなかったんだけど。

397:デフォルトの名無しさん
07/03/06 15:32:38
>396

自作クラスみたいに簡潔にリテラル表記できないオブジェクトについては
___repr__が再生成できなくてもいいんじゃね?

標準ライブラリのクラスもそうなってるし。

>>> import poplib
>>> s = poplib.POP3('hoge.hage.uge')
>>> s
<poplib.POP3 instance at 0x791fd0>

398:378
07/03/06 15:35:07
回答してくれた方、ありがとうございました。
pprintというのを見つけたんですが、repr()と同じで中身までは見てくれないようです。
なさそうなんで、頑張って自作してみます。

399:デフォルトの名無しさん
07/03/06 15:36:15
すまん,
397の例は単にクラスインスタンスの標準的なreprを使ってるだけだから
あまり参考にならないかも

setsのSetクラスなんかは、ちゃんと再生成できる表記を返すみたいだ

>>> import sets
>>> sets.Set([1,2,3])
Set([1, 2, 3])

結局のところ,mustじゃなくてshouldって言ってるんだから
厳密に従う必要はないと思うよ

400:デフォルトの名無しさん
07/03/06 19:51:00
つーかこの場合質問者が欲しいのはオブジェクトの内容のダンプでそ
__repr__() を厳密に実装するか否かの問題じゃないと思われ

401:107
07/03/06 19:56:26
URLリンク(subtech.g.hatena.ne.jp)

こんなの見付けたんだけどこれpythonに書き直すの
大変かな? perlみたいな雑多なitem(Nodokaとか)が探せばころがってる
rubyがすこし羨しい…orz

402:デフォルトの名無しさん
07/03/06 20:09:54
pythonスレはそういう関係に興味ある人少ないと思われ
だから君がやるんだ

403:デフォルトの名無しさん
07/03/06 20:16:32
「何か」ってまだやってたのか。
あれってHTTPに似たプロトコルだから既存の物を改造すればできるじゃね。
socket使ったほうが早いか。

404:363
07/03/06 20:33:45
ちょっと遅くなったけど、yield使えばコルーチンが「糞」簡単にできました。
Pythonとコルーチンでググったら出てきました・・・。
いままでジェネレータとしか見ていなかったけど、yield構文は強力過ぎですね・・・。

参考にしたサイト
URLリンク(www-06.ibm.com)

405:デフォルトの名無しさん
07/03/06 21:32:58
伺かか・・・・・何もかも皆懐かしい・・・・・。

406:デフォルトの名無しさん
07/03/06 21:55:14
ただのdumpならpickleでもしとけば(違


407:107
07/03/06 22:14:07
>>402-403
答えてくれてありが㌧。

URLリンク(d.hatena.ne.jp)
ここみてたら socket で簡単にできそうでした。
微妙にスレ違いっぽいのでsage。

408:デフォルトの名無しさん
07/03/06 23:24:13
>>401
人それぞれだねえ
俺はpythonにデフォでメール関係のライブラリ
があって完成度の高さに感動したよ。
簡単にマルチパートのメールが作れるし
rubyなんて外部のrmailですら中途半端なのに


409:デフォルトの名無しさん
07/03/06 23:33:37
>>401
ninixとかはガイシュツ?

410:デフォルトの名無しさん
07/03/06 23:45:14
ninixはPythonで書かれてるんだっけ?
昔使ってたわ

411:デフォルトの名無しさん
07/03/07 03:28:20
すいません、大学でPythonを勉強している者です。"&"と”>>”の意味がいまいちわからないんですけど、どなたか教えてもらえないでしょうか?
例えば、if x & (1<<i):
li.append("○")

よろしくお願いします。

412:デフォルトの名無しさん
07/03/07 03:34:58
同じ大学生といってもこれはないわ

413:デフォルトの名無しさん
07/03/07 03:35:21
せんせに聞こうぜ

414:デフォルトの名無しさん
07/03/07 03:37:25
>>412
すいません、プログラミングにおいて全くの初心者なんで。自分で勉強しています。どなたかできればよろしくお願いします。

415:デフォルトの名無しさん
07/03/07 03:44:45
2進法って知ってる?

416:デフォルトの名無しさん
07/03/07 03:47:32
はい。。。

417:デフォルトの名無しさん
07/03/07 03:50:31
ちなみに、ここで聞いちゃうと自分で勉強したことにならないよ。
でも二進法を知ってる君なら大丈夫、自分でなんとかできるよ。

418:デフォルトの名無しさん
07/03/07 03:54:44
>>417
どうもありがとうございます^^ でも長い間考えたんですけど全くわからなくて。。。もう少し自分で考えて見ます。”&”と”>>”って一体何をするのやら^^;

419:デフォルトの名無しさん
07/03/07 03:56:28
URLリンク(ja.wikipedia.org)

420:デフォルトの名無しさん
07/03/07 04:18:05
>>419
リンクどうもありがとうございます。やっと理解できました!

421:デフォルトの名無しさん
07/03/07 11:41:14
python ML で ぱいそん と名乗るのはどうなのよ

422:デフォルトの名無しさん
07/03/07 11:45:10
頭の程度がよくわかるから
応対の仕方を決めやすくていいんじゃない?

423:デフォルトの名無しさん
07/03/07 22:10:29
ぱいそんのためのメーリングリストだからいいんじゃね?

424:デフォルトの名無しさん
07/03/07 22:59:24
最新Pythonエクスプローラ買ったけど、誤植(サンプルリストの図番号とか)が多くて困惑

425:デフォルトの名無しさん
07/03/07 23:05:36
>>424
リスト9がなかったときはさすがにどうよと思ったね

426:デフォルトの名無しさん
07/03/07 23:20:15
クラス定義にdefを使う、とか?

427:デフォルトの名無しさん
07/03/08 00:14:41
質問です
import random

random.seed()
a = [[0]*4]*4
for i in range(4):
 for j in range(4):
  a[i][j] = random.randint(0,1)
print a
このようなのを実行すると
[[1, 0, 1, 0], [1, 0, 1, 0], [1, 0, 1, 0], [1, 0, 1, 0]]
のように同じのばかりが出てしまいます。
どうしてこうなってしまうのでしょうか

428:デフォルトの名無しさん
07/03/08 00:32:40
[[0]*4]*4で行われてるのは浅いコピーだからリストの中のリストは全部同じ一つのオブジェクトだよ。
かわりに、[[0]*4 for n in xrange(4)]と書けば望んだ結果になると思う。

429:デフォルトの名無しさん
07/03/08 00:37:53
ありがとうございます。
勉強不足でした。

430:デフォルトの名無しさん
07/03/08 00:39:35
てか、普通にライブラリリファレンスのシーケンス型のページで解説されてるよね。

431:デフォルトの名無しさん
07/03/08 08:44:16
つまりチュートリアルに書くべき内容なんだよな。

432:デフォルトの名無しさん
07/03/08 08:45:16
>>431
チュートリアルには書いてあるし、まともな入門書にも書いてある。

433:デフォルトの名無しさん
07/03/08 09:18:17
もっとも書いてあるって言うことと
分かりやすいか・理解できるかは
若干ベツモノ

python に限らず...

434:デフォルトの名無しさん
07/03/08 11:04:00
いろんな言語とのインターフェイスが充実してるから
pythonを触り程度に勉強した。

処理の本質的な部分はlispで書いて
lisp -> python -> c++
という流れでくっつけたいのだけど
どこかでつまづかないのだろうか

c++は自分がやりたい分野のライブラリーが充実してる


435:デフォルトの名無しさん
07/03/08 11:42:02
lisp->c++ じゃない理由はなんだろう。


436:デフォルトの名無しさん
07/03/08 11:51:33
pythonですでにいくつかスクリプトを作ってしまったことと、

lisp->python->c++
じゃなくて
場合によっては
haskell -> python -> c++
に変更される場合もあるからです

haskell- > c
はあるけど
haskell -> c++
はない

437:デフォルトの名無しさん
07/03/08 13:09:10
なるほど。boost::python とか使えば Python→C++ は超らくちんだからな。

438:デフォルトの名無しさん
07/03/08 16:11:25
pythonで、オブジェクトのインスタンス変数の一覧はどうやって取って来れますか。

439:デフォルトの名無しさん
07/03/08 16:48:47
dir(obj)

440:デフォルトの名無しさん
07/03/08 18:27:13
数値計算ライブラリの自動チューニングに関する講演会
URLリンク(www.hpcc.jp)

> A Python based infrastructure to the ACTS Collection

441:デフォルトの名無しさん
07/03/08 20:49:28
>>440の前日にも講演があるみたい。
URLリンク(www-solid.eps.s.u-tokyo.ac.jp)

> Two High-Level User Interfaces for Computational Scientists: PyACTS and DCT

442:デフォルトの名無しさん
07/03/08 22:30:42
Pycon a "hiring fest"
URLリンク(radar.oreilly.com)

   / ̄ ̄\
 /   _ノ  \
 |    ( ●)(●)
. |     (__人__)  Half the lightning talks ended (or started) with "We're hiring" って
  |     ` ⌒´ノ     求人多杉だろ、常識的に考えて…
.  |         }
.  ヽ        }
   ヽ     ノ        \
   /    く  \        \
   |     \   \         \
    |    |ヽ、二⌒)、          \

443:デフォルトの名無しさん
07/03/08 22:35:42
>>439
thank you

444:デフォルトの名無しさん
07/03/09 22:58:54
>>442
Pythonを使うヤツには能力の高いデキるヤツが多い。
できるヤツと出来ないヤツの間には
仕事の成果に何十倍もの開きがあるとかないとか。
つまりだ。
烏合の衆数十人の会社を
デキるヤツ一人が負かす可能性があるってことだ。
一人の力で競争原理が変わる可能性があるんだよ。
だからあっちの企業はPython使いを雇いたがる。
企業の中で腐ってたり
芽が出なくて逃げ込むようにPythonを使っているヤツではなく
自ら道を切り開く力を持っている、本当にデキるPython使いをな。

445:デフォルトの名無しさん
07/03/10 00:01:10
一から十まで脳内設定の垂れ流しってどうよ

446:デフォルトの名無しさん
07/03/10 00:25:32
小魚ばっかりですな

447:デフォルトの名無しさん
07/03/10 00:31:25
駄目だこりゃ。

448:デフォルトの名無しさん
07/03/10 00:46:42
>企業の中で腐ってたり
>芽が出なくて逃げ込むようにPythonを使っているヤツではなく
俺のことかな

449:デフォルトの名無しさん
07/03/10 00:52:42
おれおれ

450:デフォルトの名無しさん
07/03/10 00:53:28
行きたいけれど関西だ

圏論勉強会って研究会扱いで旅費申請できるのだろうか

451:デフォルトの名無しさん
07/03/10 08:44:36
「ぷろぐらむ書けるの?」って上司に聞かれて
「ぱいそんならおk」っていうと諦めて帰ってくれるんだよね

452:デフォルトの名無しさん
07/03/10 10:27:39
>>451
お前さんの普段の行動が香ばしいのが諦められる原因だろ.
Pythonのせいにするなよ(wwwwwwwwwwww

453:デフォルトの名無しさん
07/03/10 10:40:54
御前は世間をしらない。Visual Basic だけがプログラム言語だと思っている上司が珍しくない


454:デフォルトの名無しさん
07/03/10 11:55:56
何でも人のせいにするヤツって居るよな。
そういうヤツが歳だけ余計に食って老害垂れ流すんだろうな。

455:デフォルトの名無しさん
07/03/10 12:01:21
駄目な奴には駄目な上司.
これが世間の法則だが
駄目な奴だからってあまりいじめない方がいいと思うよ.

456:デフォルトの名無しさん
07/03/10 12:10:43
まぁ>>453は極端な例だろうけど、企業の場合遊びでやってるわけじゃないから
ソースのメンテナンスや引きつぎっつうもんがあるわけで。

その会社にPython使いが希少であるという状態なら、「Pythonにしたいです」
という提案は受理されないだろうな。

「PythonならC/C++やJavaやPerlやLispのような他の言語に無い
こんな素晴らしいことが出来ます」と滔々とプレゼンテーションできるなら
まだ別かも知れないが。



457:デフォルトの名無しさん
07/03/10 12:51:15
下流企業の実態なんて興味ないよ

458:デフォルトの名無しさん
07/03/10 14:02:10
>>457
超一流企業に勤めている>>457なら、下流企業のアフォ上司も
簡単に説得可能なんだろうな。
試しにここでプレゼンしてみ?

459:デフォルトの名無しさん
07/03/10 14:08:44
「下流企業ではない」が「超一流企業である」に飛躍してしまうのが
下流企業に勤める負け犬の思考の限界。

460:デフォルトの名無しさん
07/03/10 14:15:10
煽りはいいからお前さんのプレゼン能力を見せてみろよ。
聴いてやるから。

461:デフォルトの名無しさん
07/03/10 14:43:00
脳内の想像だけで他人を上司を説得できない負け犬、無能、下流企業呼ばわり
なんだから、さぞかし素晴らしい御託を述べてくれるんだろうて。
実に楽しみだな。


462:デフォルトの名無しさん
07/03/10 14:43:21
>>456
> こんな素晴らしいことが出来ます

素晴らしい結果を出すことは他の言語でも大差ないんだろうけど、
プログラミングそのものやソース書くときのストレスが少ない、
っていうのが一番のメリットだと思う。
でもそういうことは、他の人にアピールするの難しいんだよね。

463:デフォルトの名無しさん
07/03/10 14:48:48
>>462
そら、あんたが無能で下流企業の負け犬だから、
そういう非定量的で感覚的な内容しか出てこないんだろうな。
それじゃ、他人にはアピールできないわ。

464:デフォルトの名無しさん
07/03/10 14:55:21
>>458
アフォ上司の説得なんて時間の無駄。さっさと出世しておまえが上司になるか、
それが不可能なら転職するか、それも無理ならあきらめろ。w

465:デフォルトの名無しさん
07/03/10 14:56:08
>>463
そんなことしか言えないから、おまえはろくなプログラムが書けないんだよ。

466:デフォルトの名無しさん
07/03/10 14:57:08
>>464
社会のしがらみを知らないNEETのただの妄言か。
アフォくさ。

467:デフォルトの名無しさん
07/03/10 14:58:22
>>466
そんなことしか言えないからアフォ上司の下で働く羽目になったんじゃないのか?

468:デフォルトの名無しさん
07/03/10 15:00:09
>>465
あのな。
>>462を読み直してみろよ。
「~だろうけど」
「~と思う」
著しく感覚的で主観的であることを示す表現。
具体的で定量的なものは何も無い。
「なぜ」ストレスが少ないか、具体的な根拠が何も無い。
C++や、Rubyや、JavaScriptや、Lispに比べてどうか?

こんなんで「他人にアピール」出来ると思ったら、それこそお笑いだぞ。

469:デフォルトの名無しさん
07/03/10 15:01:00
> そんなことしか言えないから
その言葉、そっくりそのまま返してあげるよ。

470:デフォルトの名無しさん
07/03/10 15:01:43
勤めてるのが中小企業でも大企業でも
「上司が」とか「マイナー言語だから」と諦めるような奴は人間として「下流」だろ。
どんな状況でも
自分のやりたいことが出来るように道を切り開く人間こそ勝ち組なんだよ。

転職したって変わらないよ。
Python使ってる企業に移ったって
下流人間は別のことでフラストレーション感じるに決まってる

471:デフォルトの名無しさん
07/03/10 15:03:14
>>470
だから、勝ち組なら勝ち組らしいプレゼンをしてみせろよ。ここで。
聴いてやるからさ。
自分は「下流」じゃないんだろ?その言い草なら。

472:デフォルトの名無しさん
07/03/10 15:04:26
>>468
おまえ2chのレスに何を求めてるんだ?w
無料でそんな素晴らしいプレゼンが聞けるとでも思ってるの?

473:デフォルトの名無しさん
07/03/10 15:05:10
>>471
煽るだけなら来るなよ。いいかげんうざいぞ。

474:デフォルトの名無しさん
07/03/10 15:05:52
>>472
要はできないから逃げた、と。
そうだよなぁ。下流企業づとめどころかNEETだもんな。

475:デフォルトの名無しさん
07/03/10 15:05:57
>>471
>だから、勝ち組なら勝ち組らしいプレゼンをしてみせろよ。

ここで?
無理に決まってるだろ(www

下流の常識はすごいな(wwwww
Rubyでも使えば?

476:デフォルトの名無しさん
07/03/10 15:06:02
「下流」という言葉が彼のコンプレックスを刺激してしまったようですね

477:デフォルトの名無しさん
07/03/10 15:07:00
文句しか言う気の無いやつにプレゼンして意味あるの?

478:デフォルトの名無しさん
07/03/10 15:07:18
ないよ

479:デフォルトの名無しさん
07/03/10 15:07:41
>>475
> 下流の常識はすごいな(wwwww
> Rubyでも使えば?

なんでそこでRubyとか出てくんの?
もしかしてPython使ってる俺エライ、Rubyお子様、とか意味不明な
優越感でも持ってんのか?

たかが言語にそれほど拘ってる奴、はじめて見たよw

480:デフォルトの名無しさん
07/03/10 15:07:43
下流のくせにPythonを使えばハッカーになれると思ったのかな。
元々能力のある奴がPythonを使うから
常人離れしたスループットを出せるというのが現実だというのに。
お目出たい下流だな。

481:デフォルトの名無しさん
07/03/10 15:08:06
上司も大変だなw

482:デフォルトの名無しさん
07/03/10 15:08:46
>>479
>もしかしてPython使ってる俺エライ、Rubyお子様、とか意味不明な
>優越感でも持ってんのか?

この件に関して、ここで"プレゼン"してくれよ.
ぜひお願いするよ.

483:デフォルトの名無しさん
07/03/10 15:08:56
この流れなら言える
ZODBとzope.interfaceとtwistedがあれば大体おk

484:デフォルトの名無しさん
07/03/10 15:09:40
>>480
> 元々能力のある奴がPythonを使うから

アフォくさ。本物のハッカーなら言語なんか関係あるか。


485:デフォルトの名無しさん
07/03/10 15:09:46
>>462
Pythonの一番いいところは
コードスタイルが自然に統一されて、読みやすいことじゃね?

486:デフォルトの名無しさん
07/03/10 15:09:58
コーディングトラブルの約70%はif文などでの{}省略
スレリンク(tech板)l50

Pythonならこの70%のトラブルを0にできるんだぜ

487:デフォルトの名無しさん
07/03/10 15:10:01
>>483
いや、それはどうかな?
ちゃんとプレゼンしないと納得してもらえないらしいぞ。w

488:デフォルトの名無しさん
07/03/10 15:10:32
なにこの流れ。。。。

489:デフォルトの名無しさん
07/03/10 15:10:54
>>485,486
つまりフリーフォーマット言語は糞でありFORTRAN77に戻るべきなんだな俺たちはw

490:デフォルトの名無しさん
07/03/10 15:10:58
なんでプレゼン厨が湧いてるの?
他の言語の差し金?
つまんないことでケンカしないで
適材適所で使うのが賢いよ

491:デフォルトの名無しさん
07/03/10 15:11:16
>>484
>本物のハッカーなら言語なんか関係あるか。

あるよ。
ハッカーにとっても一日は24時間だからね。
真のハッカーは生産性の良い物を使う。

492:デフォルトの名無しさん
07/03/10 15:11:46
>>489
書きやすさと読みやすさのトレードオフだなw
もう固定フォーマット言語には戻れんな

493:デフォルトの名無しさん
07/03/10 15:12:16
>>491
そうだな。そしてそれがPythonであるとは限らないな。

494:デフォルトの名無しさん
07/03/10 15:12:21
楽しい土曜日ですよ

495:デフォルトの名無しさん
07/03/10 15:13:52
ようし、パパ月曜にプレゼンして
D言語を仕事で使えるように上司を説得するぞう!!!

496:デフォルトの名無しさん
07/03/10 15:13:57
>>492
初めて好意的なレスが返ってきたが……
>>489は皮肉含みのジョークでつよ。

俺って親切だなぁ。

497:デフォルトの名無しさん
07/03/10 15:14:25
俺は母国語がC++で、
大規模開発はC++ or C#
小規模ツールはPython or Perlかな。

Pythonだと人間の思考に近くて楽しいね。
C++は自分が計算機になったみたいに感じるw

498:デフォルトの名無しさん
07/03/10 15:14:31
>>495
DはPythonよりずっと駄目だろw

499:デフォルトの名無しさん
07/03/10 15:15:14
>>497
> C++は自分が計算機になったみたいに感じるw

それは凄いな。「C」なら判るが。
C++でどんな機械語に落ちるかイメージできるか?

500:デフォルトの名無しさん
07/03/10 15:15:20
逆にさ、発想を変えて、
Pythonのダメなところを上げていけば
いいところが浮かび上がるんじゃね?

501:デフォルトの名無しさん
07/03/10 15:15:48
>>497
所詮高級アセンブラだからね.

502:デフォルトの名無しさん
07/03/10 15:16:37
>>499
機械語うんぬんより、C++でやることの大半はメモリ管理だからねw

503:デフォルトの名無しさん
07/03/10 15:18:31
>>499
もしできないなら C++ は使わないほうがいいよ。思わぬ落とし穴に填るかも。
テンプレートパズルを駆使して神のようなコードを吐かせる快感こそが C++ の醍醐味だ。
いつもそんなんじゃ疲れるから、普段は C# や Python を使うが。

504:デフォルトの名無しさん
07/03/10 15:19:17
>>503
C++のテンプレートは不完全だから嫌いよw

505:デフォルトの名無しさん
07/03/10 15:19:25
>>502
C++ではobject の ownership を意識していなければならないのは確かだが
Cほどではないだろう。
コンストラクタ/デストラクタやboost::shared_ptrのようなものもあるし。

506:デフォルトの名無しさん
07/03/10 15:20:37
>>504
そこがまたパズルっぽくて(ry

507:デフォルトの名無しさん
07/03/10 15:21:40
>>503
悪いが俺は出来ない。
C++の「テンプレートパズル」と「機械語」では抽象レベルが違いすぎる。
C++で考える時は、メモリのことは考えるが、機械語レベルでは考えないな。

ついでに言うと、
> テンプレートパズルを駆使して神のようなコードを吐かせる快感こそが C++ の醍醐味
悪いがこういうオナニストと俺は一緒に仕事はしたくないな。

508:デフォルトの名無しさん
07/03/10 15:21:50
>>505
ガベージコレクション言語をやっちゃうと
デストラクタがあっても苦痛は苦痛なんだよね。

>>503
最近はコンパイラが、人間の思いも寄らないような最適化するから、
変な工夫を入れると悪化することもあるけど。

509:デフォルトの名無しさん
07/03/10 15:22:38
また隔離スレッドができる予感・・・・・・

510:デフォルトの名無しさん
07/03/10 15:23:33
>>507
それが正しいと思うよ。
一昔前とは変わってきてる。
いまのプログラマは高級言語で高い生産性が求められるから、
必ずしも機械語の知識は必要ないし。

511:デフォルトの名無しさん
07/03/10 15:23:57
>>508
C++でもGCは使える。が、明白にスコープでobjectがdestructされることに
慣れており、それを好むC++ユーザが多いように思う。

512:デフォルトの名無しさん
07/03/10 15:27:16
そうかな。俺だったら機械語の知識のない人と一緒に C++ の仕事なんて絶対に
やりたくないが。
意識する必要があるかどうかと知識が必要あるかどうかは別の問題だよ。
機械語の知識のない人が C++ を触るなんて、まさに気違いに刃物。
そういう人は Python, C#, Java などで仕事していてほしい。

513:デフォルトの名無しさん
07/03/10 15:29:43
>>512
Contextを読み取る能力に欠けているのか、意図的に誤読しているのか。

「機械語の知識の有無」を論じているのではないよ。

C++の抽象レベルで機械語と対応付けて一々頭の中で考えているかを
論じていただけだ。
無論、ケースバイケースでそうすることもあるだろうけどな。

514:デフォルトの名無しさん
07/03/10 15:31:36
C#でも外部ライブラリ呼ぶ時とか、ポインタをpinしてGCのリロケーションの
対象外にしないといけとか色々あるだろ。

515:デフォルトの名無しさん
07/03/10 15:32:59
>>512
>>513のいうように、今は変わってきてるかな。

子供が円周率を100桁暗記するより、英単語の1つでも覚えた方がいいと思うように、
機械語を覚えるより、データ構造やモジュールの使い方を覚えたがいい
というような感じかな。

確かに、PythonやC#を使った方がいいというのは同意。

516:デフォルトの名無しさん
07/03/10 15:36:17
>>513
>>512
>>510
>> 必ずしも機械語の知識は必要ないし。
に対する反論。つまりC++には「必ず機械語の知識が必要」だと思う。

>>513にも反論するとすれば、C++には思わぬ落とし穴が結構あるので、機械語レベル
の話を全く頭から払拭してプログラムを書くのは危険が伴うと思う。
強く意識するかどうかは別としても、そういう知識のない人が使う言語れはないと思う。

これ以上 C++ の話を続けるならば、他のスレへ移動しましょう。

517:デフォルトの名無しさん
07/03/10 15:37:49
>>500がいうように、Pythonの欠点を挙げてみない?

518:デフォルトの名無しさん
07/03/10 15:37:50
隔離スレッドができる悪寒

519:デフォルトの名無しさん
07/03/10 15:38:30
>>516
>これ以上 C++ の話を続けるならば、他のスレへ移動しましょう。

全くだ。C++の本スレなんか最近は閑古鳥が鳴いているってぇのに。
お前ら本スレに帰れ。

520:デフォルトの名無しさん
07/03/10 15:38:39
>>517
何が目的なんだよ(www

521:デフォルトの名無しさん
07/03/10 15:41:08
>>518
それは作れという意味ですか?
どういう名前にしたらいいかな。

522:デフォルトの名無しさん
07/03/10 15:41:08
敵国の情報工作だ。乗ってはならんぞ。w

523:デフォルトの名無しさん
07/03/10 15:43:58
>>516
何を持って「機械語レベル」と言っているかなんだが。

C++で書くときにいちいちレジスタやI/Oポートやニーモニックを意識するか?
むしろそうせねばならないとすれば、そっちの方が問題があると思うぞ。

ということなんだがな。

524:デフォルトの名無しさん
07/03/10 15:43:59
>>520
Pythonの欠点を盲目的に挙げてみれば、
実は他の言語にも共通した欠点を抱えており、
逆にPythonのいいところも分かるんじゃないかと

525:デフォルトの名無しさん
07/03/10 15:45:17
>>523-524
隔離スレの名前は「Pythonと多言語比較」でいいかい?

526:デフォルトの名無しさん
07/03/10 15:45:54
「他言語」では?

527:デフォルトの名無しさん
07/03/10 15:46:20
間違えちゃった・・・・・・

528:デフォルトの名無しさん
07/03/10 15:47:05
pythonの嫌いなところは
デザパタ話だしたり、C++の話しだすところ。
スレ違いだってことを"""自覚"""できない奴がいるところ。


529:デフォルトの名無しさん
07/03/10 15:47:42
>>528
それは「言語の」特性ではないな。
もっとプレゼン能力を磨け。

530:デフォルトの名無しさん
07/03/10 15:48:47
>>528
ちゃんとプレゼンしないと上司を説得できないところも欠点だよなw

531:デフォルトの名無しさん
07/03/10 15:49:54
スレ違いだってことを"""自覚"""できない奴がいる
>>529、君のことだよ
てか、隔離したデザパタ+pythonスレも全然伸びてないがな
ここで話してた奴、もっと向こうもりあげろよw

532:デフォルトの名無しさん
07/03/10 15:53:18
やだよめんどくさい

533:デフォルトの名無しさん
07/03/10 15:55:57
>>530
それは大いなる欠点だ。
もうPython使うのやめた。

534:デフォルトの名無しさん
07/03/10 15:59:26
中身のない話をするときに限ってスレがよく伸びる

535:デフォルトの名無しさん
07/03/10 16:00:08
そろそろメタクラ(ry

536:デフォルトの名無しさん
07/03/10 16:07:20
>>531
「プレゼン」とかいうキーワードにしか飛びつけない厨房乙。

537:483
07/03/10 16:29:27
Zope最高! Zope様々! Zope万歳!

538:デフォルトの名無しさん
07/03/10 16:37:16
かわいそうに。こうはなりたくない。

539:デフォルトの名無しさん
07/03/10 16:50:56
宗教くさい流れだな。もしやR(ry

540:デフォルトの名無しさん
07/03/10 16:55:50
ぱいそんwww

541:デフォルトの名無しさん
07/03/10 16:58:11
Zope3最高! Zope3様々! Zope3萌え!

542:デフォルトの名無しさん
07/03/10 17:01:33
PythonのきらいなところはR○○○厨をひきつけちゃうところです。

543:デフォルトの名無しさん
07/03/10 17:03:01
>>541
かわいそうに.完全に負け組下流だな.
同じPython使いでもこうはなりたくない.
あっちいけよ、悪霊退散、シッシッ!!

544:デフォルトの名無しさん
07/03/10 17:12:13
>>542
REXX厨?

545:デフォルトの名無しさん
07/03/10 17:25:34
RexじゃくてLexだろ

546:デフォルトの名無しさん
07/03/10 18:20:45
URLリンク(ja.wikipedia.org)
URLリンク(ja.wikipedia.org)

547:デフォルトの名無しさん
07/03/10 19:53:34
こんなマイナーな言語しってるなんて、相当の言語オタだね?
というわけであの人に違いない(www

548:デフォルトの名無しさん
07/03/10 20:29:50
>>535
終った技術の話をしてもなあ
それより関数型プログラミングの話をしようぜ

549:デフォルトの名無しさん
07/03/10 20:52:07
それよりも



  _  ∩
( ゚∀゚)彡 おっぱい!おっぱい!
 ⊂彡


550:デフォルトの名無しさん
07/03/11 02:29:39
>>530
説得しなければならない上司などいない

551:デフォルトの名無しさん
07/03/11 02:34:11
import Tkinter as Tk
canvas = Tk.Canvas(width=256*5-4+20, height=120)
x=10
for i in range(0, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (255,i,0))
    x += 1
for i in range(1, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (255-i,255,0))
    x += 1
for i in range(1, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (0,255,i))
    x += 1
for i in range(1, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (0,255-i,255))
    x += 1
for i in range(1, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (i,0,255))
    x += 1
canvas.pack()
canvas.mainloop()

552:デフォルトの名無しさん
07/03/11 03:21:29
>>551
wxPythonでまねして作ろうとしたら、
色の指定はwxPenオブジェクトで指定して、
wxDCのSetPenメソッドでwxPenを置き換えて、それで直線を描く、
って3段階になるから手間がかかる。

553:デフォルトの名無しさん
07/03/11 03:52:29
>>550
職が無いお前には当然いないよな。

554:デフォルトの名無しさん
07/03/11 04:18:11
>>552
全然知らないで効くんだけど、一つ関数を書けば良いだけじゃなくて?

555:550
07/03/11 04:19:25
>>553
断定口調は、それが外れたときに大恥をかく。
しかし、俺が職についていることを証明する手段は無い。

556:デフォルトの名無しさん
07/03/11 04:24:06
それ以前にまず本物の550だと証明する手段が無いだろう。

557:デフォルトの名無しさん
07/03/11 09:26:55
NumPyっていうモジュールのWindows版落としてインストールしたら.pyが
C:\Python25\Lib\site-packages\numpy
にインストールされたんですけどimportできません。

sys.path見ると
C:\Python25\Lib\site-packages\
は入ってるんですが、もしかしてサブディレクトリのnumpy内のモジュールはパスに入らないんでしょうか?

558:デフォルトの名無しさん
07/03/11 10:35:12
C:\Python25\Lib\site-packages\numpy\__init__.py が本当に存在しているか? あれば import numpy ができるはず。

また import numpy 一行がどんなエラーを返しているのか、エラー・コメントを全部出せ


559:デフォルトの名無しさん
07/03/11 10:54:52
import NumPy
ってやってない?

560:デフォルトの名無しさん
07/03/11 11:18:03
>>558
>>559
ありがとうございます。import numpyでできました。
numpy.pyというファイルがないのでnumpyでimportできるとは思いませんでした。
モジュールはファイル名と同じと思ってたのですが、違う場合もあるんですね・・・

561:デフォルトの名無しさん
07/03/11 11:26:39
自分で関数やクラスを設計しているときに「それは既出だよ」と忠告してくれるソフトはありませんか?
Pythonの全部のモジュールを把握するの無理っぽい。

562:デフォルトの名無しさん
07/03/11 11:30:30
>>561
grep とか

563:デフォルトの名無しさん
07/03/11 20:32:07
何のために名前空間があるんだ。

564:107
07/03/12 05:25:24
Monarcのバイナリzip版を動かして見ようと試行錯誤してみたり、、、
readmeないからソース嫁に従う

Monarc.pyから処理開始->app = Monarchore.MoApp(0)
Monarchore->locale設定 conf読み込み MainFrame生成
self._frame = MoMainFrame(None, id, MA_APPTITLE, owner=self, config=self._config)
def __init__にてcommunicatorを始動させるコードself.loadMenu('TF2', '2ch', None)
鮮やかにcommunicatorオブジェクトを取得する それをMoBoardMenuTreeに渡す。
self.AddRoot('Root')でトップノードにRootを追加。たぶんdef OnReload(self, evt)も
そのとき呼ばれる topics = self.communicator.getTopics() にてカテ一覧を取得する
最後に self.Expand(self.treeroot) でツリーを展開しとく。
「結果」
Root
- root

むぅ。起動までは出来たけど、カテ一覧の取得 or それの読み込み部分 でこけてる罠。
やっぱりバイナリzipをそのまま動かすのは難しいぽ。wxpython入れてsrcコンパイルしないと駄目ぽ

でもバイナリzip版って、py2exeでexe化してるから、python も wxpython もなくても
dll の呼び出しだけで起動できるもの、なような気がするし、となると
bbsmenuが移転したからカテ一覧の取得にこけてる??? でも運営とソフトウェアは
残ってるからその二つは今でも取得できそうだし。なんか意識が朦朧として来て
何言ってるか訳が分らなくなって来てる罠。もう寝るぽ。がっ。(もうグダグダ)

565:デフォルトの名無しさん
07/03/12 14:56:58
>>464
とんがり頭の上司で検索


566:デフォルトの名無しさん
07/03/12 15:01:01
下っ端でも何かを成し遂げる方法
URLリンク(local.joelonsoftware.com)

567:デフォルトの名無しさん
07/03/12 15:03:11
>>467
アホ上司の下で頻繁に変わる思いつきをコーディングさせられる2年は地獄だった
4月で脱出できるが

568:デフォルトの名無しさん
07/03/12 15:17:32
とんがり頭の上司
URLリンク(en.wikipedia.org)

569:デフォルトの名無しさん
07/03/12 15:20:11
URLリンク(www.shiro.dreamhost.com)
とんがり頭=髪のとんがった上司 の言動


570:デフォルトの名無しさん
07/03/12 15:23:20
よ~し パパ cgi を lisp で書いちゃうぞ~

571:デフォルトの名無しさん
07/03/12 15:58:16
>>567
おめ

572:デフォルトの名無しさん
07/03/12 16:03:43
頭のとんがりと髪のとんがりを混同すべきではないと思うが

573:デフォルトの名無しさん
07/03/12 16:14:20
上司=朝日山親方

574:デフォルトの名無しさん
07/03/12 16:17:22
とんがり頭って訳してる人がいて
そっちおぼえてしまった

575:567
07/03/12 16:24:57
>>571
あり
後任は中国人らしい
誰もやりたがらない仕事だしな

576:デフォルトの名無しさん
07/03/12 16:26:13
すげえな。本当に人間?
URLリンク(image.blog.livedoor.jp)
URLリンク(www.maritabi.com)

577:デフォルトの名無しさん
07/03/12 16:30:15
ナポレンフィッシュみてえ

578:デフォルトの名無しさん
07/03/12 16:36:33
身長が低かったため、新弟子検査をパスするためシリコンを埋め込んだ後遺症(?)らしい。
気の毒な気もするな。

579:デフォルトの名無しさん
07/03/12 17:45:10
>>570
URLリンク(www.kahua.org)


580:デフォルトの名無しさん
07/03/12 18:12:20
>>576
マゲ結ってる時期に引っ張りすぎたんじゃね?

581:デフォルトの名無しさん
07/03/12 18:25:44
>>576
?

URLリンク(www.supermilk-chan.com)

582:デフォルトの名無しさん
07/03/12 18:56:24
>>572
髪のことを頭って言うのは結構普通だとおもう。
散髪しに行くことを「頭きりに行く」って言うし(笑
URLリンク(sky.ap.teacup.com)

583:デフォルトの名無しさん
07/03/12 19:00:12
>>576
相撲板では常識的な事実
URLリンク(page.freett.com)

584:デフォルトの名無しさん
07/03/12 19:07:19
>>572
        _.. -‐ ' "     ヽ ̄ノ^7__         <              >
    `ー ''"--――-r⌒``~`゙゙`''ヘ/         <  異 議 あ り!! >
     `ー--―ー--->  ~-、_, ',          <             >
      `ー-- .._ へ/   くてi` 〈            ∨∨∨∨∨∨∨∨
       `ー-_   | ^i        , ノ                    _.. ‐ァ=r‐''⌒゙二ニ二つ
          ヽr''ヘ、_     ,.-=ァ/                _. -‐ '"´  l l    r} } }l
          /   !、   {__//    __      . -‐ ' "´        l ヽ  、 ヽ_ノノ
          ノ       、   ̄ /-‐ ' "´/`゙ ーァ' "´  ‐'"´         ヽ、`ーテヽJ
     _.. -‐''フ|フヽr-‐ ''''フ. ̄「´      /   /                __.. -'-'"
  . ‐ '7    く/|〉-rへ. /   l     l   /            . -‐ '"´

「とんがり頭」と聞いて真っ先にこれを思い出した

585:デフォルトの名無しさん
07/03/12 19:38:09
知合いも、相撲鳥になるために頭にシリコン埋め込んでたわ

586:デフォルトの名無しさん
07/03/12 19:40:35
相撲鳥って飛びにくそうだな

587:デフォルトの名無しさん
07/03/12 19:41:22
飛べない鳥です

588:デフォルトの名無しさん
07/03/12 19:54:26
ただの豚です

589:デフォルトの名無しさん
07/03/12 19:56:13
無料の豚か

590:デフォルトの名無しさん
07/03/12 21:41:19
シェア豚もいるんでしょうか?

591:デフォルトの名無しさん
07/03/13 00:22:09
オープンポーク

592:デフォルトの名無しさん
07/03/13 02:02:10
pyjamasを使ってる人居ませんかー

593:デフォルトの名無しさん
07/03/13 11:09:06
・趣味プロジェクトにしか見えない
・1.0が出そうにない

594:デフォルトの名無しさん
07/03/13 11:16:38
結論:
だからオレが使って作ってガンガンコミットする

595:デフォルトの名無しさん
07/03/13 11:33:50
StringIO.write()をつかうとUnicodeErrorが出るんですけど回避策あったら教えてください。

# -*- coding: utf-8 -*-
from StringIO import StringIO
io = StringIO()
io.write(u'あいうえお')
print io.getvalue(),
## UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

マニュアルにはstringもunicode stringも使えると書いてあるんだけどなあ。

596:デフォルトの名無しさん
07/03/13 11:41:24
print io.getvalue().encode('utf-8')

してみてどうなる?

597:595
07/03/13 11:42:31
>>595
エラーになってたのはStringIO.write()じゃなくてprint statementの方だったorz
output = io.getvalue()
print output.encode('utf-8')
で問題なく動いた。

598:デフォルトの名無しさん
07/03/13 14:09:46
入門書嫁。

599:デフォルトの名無しさん
07/03/13 15:00:31
ハゲワロス
>>>from __future__ import braces

600:デフォルトの名無しさん
07/03/13 17:53:32
>>599
最悪だ。(w


601:デフォルトの名無しさん
07/03/13 20:17:35
柴田淳の新譜と "TurboGearsxPython" 買ってきた

602:デフォルトの名無しさん
07/03/13 20:20:29
GWTいいなぁ

603:デフォルトの名無しさん
07/03/13 22:28:13
pyPgSQLでPostgreSQLと連携したプログラムを書いてるんだけど、
pyPgSQL.PySQL.connect()の host って何を代入すればいい?
apache 起動してないし、webと連携するわけでもないんだけど、localhost でいいのかな?

ここでは場違いかもしれないけど、教えてください。

604:デフォルトの名無しさん
07/03/13 22:29:01
PostgreSQLが稼働してるホストを指定すればいいんじゃね?

605:デフォルトの名無しさん
07/03/13 22:44:15
ああ、んじゃたぶん localhost でいいや。
端末のタイトルが --@localhost だし。たぶんこれでいいんだろう。

ありがとう。

606:デフォルトの名無しさん
07/03/14 00:27:13
URLリンク(talototo.blog48.fc2.com)



607:デフォルトの名無しさん
07/03/14 00:36:25
>>606
うむ。非常に恥ずかしいがそのままにしておこう。

608:デフォルトの名無しさん
07/03/14 00:38:25
>>603
apacheサーバは関係ない。SQLサーバのこと。
PostgreSQLはれっきとしたSQLデータベースサーバなので
ローカルマシン以外にも置けるのだよ。ってか普通。

609:デフォルトの名無しさん
07/03/14 00:42:25
608は何より人生が分かってないと思う。

610:デフォルトの名無しさん
07/03/14 00:58:06
coreduoマシーンでscipy 使って数値計算してるんだけど
計算速度を上げる為には,何をいじるべき?
(計算のボトルネックは粗行列の線形方程式みたい.)

デフォルトでインストールが最速なの?

611:デフォルトの名無しさん
07/03/14 01:21:33
> Updated Cygwin Package: python-2.5-1
キター

612:デフォルトの名無しさん
07/03/14 02:35:23
>>610
そういうアホな質問に「こうすれば速くなる」と答えられるような汎用の答えがあるのなら
それがデフォルトになっているとは思わないかね?

613:デフォルトの名無しさん
07/03/14 02:44:48
>>612
すまん,質問が悪かった.

200x200くらいの粗行列の線形方程式をscipy使ってpythonで解きたいんだけれど
デフォルトのバイナリをインストールするのが最適かどうか教えてくだされ.

614:613
07/03/14 02:52:48
os:windows
cpu:coreduo
です

615:デフォルトの名無しさん
07/03/14 03:47:41
>>613
一般に、最適な解法は問題依存(つまり行列依存)なので何とも言えない。

SciPy の疎行列ソルバは UMFPACK または SuperLU らしい(つまり直接法ということ)。
なので反復法を使うとパフォーマンスが改善するかも知れない。
SciPy にはネイティブコードの反復法ライブラリは含まれてないっぽいので
そもそも SciPy という選択自体、最適でない可能性がある。
別の選択肢としては PyTrilinos とかその辺になるのかな(使ったことないので不明)。
一口に反復法といってもCG法(対称用)やらBiCG法(非対称用)やら掃いて捨てるほど
たくさん選択肢があるし、前処理(preconditioner)にもスケーリングだのILU分解だのと
色々あって適用するのとしないのとでは大違いだったりする。組合せは膨大。

よーするにあれこれ試すしかない。

616:デフォルトの名無しさん
07/03/14 04:29:17
atlas呼べばいいじゃない

617:デフォルトの名無しさん
07/03/14 08:58:15
3年待てばCPUが早くなって4倍くらいになるよ.

618:デフォルトの名無しさん
07/03/14 12:53:08
python2.5でMSVCR8.dllをハンドルしてるバージョンってある?
extension作るのにVS2005使いたいんだけど

619:デフォルトの名無しさん
07/03/14 13:02:32
msvcr80.dllって、VS2005のSP1でモノが変わったんじゃなかったっけか。
自分でソースからコンパイルするのが一番無難だと思うけど。

620:デフォルトの名無しさん
07/03/14 14:29:06
「たった一度だけ動けばいいんだが実行に1時間かかるプログラムを30分に短縮しようとして3日悩む」ようなものだね。

621:デフォルトの名無しさん
07/03/14 14:56:09
>>620
俺のことだ。って思ったヤツ挙手。




622:デフォルトの名無しさん
07/03/14 15:45:41
プログラムの中で、64bitマシンで実行されているか32bitマシンで実行されているかの
条件分岐を行いたいのですが、どうやったらこのbit数を取得できるでしょうか?
環境はPython 2.4です。

623:デフォルトの名無しさん
07/03/14 19:46:13
「最適化の第一原則は“最適化するな”だ」

624:デフォルトの名無しさん
07/03/14 19:55:38
>>622
何のために区別したいのかにもよると思うが、Windowsなら
>>> import sys
>>> sys.platform
'win32'
で得られるような希ガス。Python2.5なら
>>> import ctypes
>>> ctypes.sizeof(ctypes.c_void_p)
4
ていう手もあるが、これも確実とは言いにくいな。

625:デフォルトの名無しさん
07/03/14 20:22:45
>>> import sys, math, platform, struct
>>> platform.architecture()
('32bit', 'WindowsPE')
>>> struct.calcsize("P")
4
>>> math.log(2*(sys.maxint+1),2)
32.0

これも確実じゃない・・・よな

626:デフォルトの名無しさん
07/03/14 20:45:55
64bitマシン上で32bitのpythonを動かす場合とかもあるし、
WindowsならGetNativeSystemInfo 呼ぶのが確実じゃね?
他のプラットフォームはわからん。

627:デフォルトの名無しさん
07/03/14 21:01:55
/proc みたらいいんじゃね

628:デフォルトの名無しさん
07/03/14 21:33:06
>620
べつに30分に短縮できなくてもいいから、
もうちょっとすっきり書きたいと思って
1週間悩むっていうのならいつもやってる

629:622
07/03/14 22:09:43
>>624
> 何のために区別したいのか
あるプログラムを64bitマシンで動かすと不具合があって、
struct.pack('L', l) を struct.pack('I', l) に直すとOKだったとのこと。
この辺りのことが自分もよく分かってないのだけど、どの環境でも
動くようにするには条件分岐させるのがいいのかなと。
自分のもとには32bitマシンしかないので確認できる環境もないのだけど。。

630:デフォルトの名無しさん
07/03/14 22:44:02
>>629
32bitか64bitかで分岐するんじゃなくて、不具合を起こすかどうかを実行時に調べて分岐するというのはどうですか。


631:デフォルトの名無しさん
07/03/14 22:46:49
符号なし32bit整数としてpackしないとダメってことかな。64bitマシンでも
intは32bitらしいから。もっといい方法がありそうな気もするが:

import struct

for format in ('B', 'H', 'I', 'L', 'Q'):
    if struct.calcsize(format) == 4:
        I4 = format
        break
else:
    raise "no 32bit integer"

print I4 # このフォーマットを使う


632:デフォルトの名無しさん
07/03/14 22:51:12
64bitマシンと言ってもいろいろあるからな。SPARCとかAlphaだとちょっと勝手が違うかも。

633:デフォルトの名無しさん
07/03/15 00:34:49
VMwareとかVirtualPCとかQEMUとかで
試すことはできへんの?

634:デフォルトの名無しさん
07/03/15 10:51:23
java2python
URLリンク(code.google.com)


635:デフォルトの名無しさん
07/03/15 13:06:59
googleの社員がつくってるのかな・

636:デフォルトの名無しさん
07/03/15 15:00:37
ちがうしょ。
google codeに登録してるだけでほ

637:デフォルトの名無しさん
07/03/16 22:17:08
2007.02.07に、Jython 2.2 beta1 がリリースされていた!
URLリンク(www.jython.org)

正直、もう次はないかと思ってますた。うれしい。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch