Pythonのお勉強 Part17at TECH
Pythonのお勉強 Part17 - 暇つぶし2ch271:デフォルトの名無しさん
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)

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

638:デフォルトの名無しさん
07/03/17 00:22:58
それはただの通過点。jython-devじゃみんな2.3とか2.5のことばっか妄想してる。

639:デフォルトの名無しさん
07/03/17 00:34:24
いまさら2.2ではちょっと安心できないわな

640:デフォルトの名無しさん
07/03/17 00:35:09
>>629
struct.unpack('Q', chr(0)*8) を試す.

641:デフォルトの名無しさん
07/03/17 00:40:23
#python-jpってチャンネルがあると聞いてIRC久々に立ち上げてみたら誰もおらん・・・さびしい

642:デフォルトの名無しさん
07/03/17 00:43:02
質問です。以下のプログラムで中国語のテキストをユニコードに変換してコピーしようとしているのですが、
短いテキストならば問題なくコピーされるのに、大きなファイルになるとエラーが発生して途中までしかコピーできませんでした。
何が原因なんでしょうか・・・

import codecs
fin = codecs.open(r"c:\data\itest.txt","r","GB2312")
fout = codecs.open(r"c:\data\outputfile.txt","w","utf-8")

for line in fin:
fout.write(line)

fin.close()
fout.close()

643:デフォルトの名無しさん
07/03/17 00:51:28
改行コードがおかしくて一行がメモリに載らないくらいでかいか、バイナリモードで開いてなくて嘘ヌル文字に到達するから。

644:デフォルトの名無しさん
07/03/17 00:54:44
URLリンク(products.locus.co.jp)
既出だっけ?また入門書出るのね

645:デフォルトの名無しさん
07/03/17 01:01:36
みんpyより136ページ薄くて同じ値段か・・・かなり微妙・・・

646:デフォルトの名無しさん
07/03/17 01:02:52
>>642
どのくらいのサイズなのか、どういうエラーが出るのかぐらい書いてほしい

647:デフォルトの名無しさん
07/03/17 01:05:08
>>644
同じ著者がノキアの携帯でPythonを使うって本だしてるけど
こいつPython知ってるのか、というような内容だったよ...orz...

648:デフォルトの名無しさん
07/03/17 01:07:38
>>637
2.2っていうのはpython2.2準拠っていういみなのね・・・

>>638
2.3や2.5の仕様が既に固定してる時点で妄想でもなんでもないような・・・

649:デフォルトの名無しさん
07/03/17 01:11:51
ああ、Nokia本のひとか、・・・我が道を行く人なんだね、・・きっとw
確かNokia本の前書きで、まだpythonはじめてから日が浅いですみたいなこと書いてたような・・・w

650:642
07/03/17 01:32:41
>>646
すみません、中国からのアクセスは不安定でなかなか書き込みできないみたいなんです。
元のテキストは54KBです。
モードをrb,wbにしてみるとヌル文字はスペースで変換する旨のエラーが出ました。
一番下のエラー見る限りコピーしようとしてる原文に問題があるんでしょうか。

Traceback (most recent call last):
File "C:\filecopy.py", line 6, in <module>
for line in fin:
File "C:\Python25\lib\codecs.py", line 619, in next
return self.reader.next()
File "C:\Python25\lib\codecs.py", line 556, in next
line = self.readline()
UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 83-84: illegal multibyte sequence

651:デフォルトの名無しさん
07/03/17 01:39:52
IronPythonの本のほうが気になるなぁ
たぶん買わないがw

652:デフォルトの名無しさん
07/03/17 04:33:09
fin = codecs.open(r"c:\data\itest.txt","r","GB2312", "replace")
とか
fin = codecs.open(r"c:\data\itest.txt","r","GB2312", "ignore")
にすればとりあえず変換できるとは思うが、それでいいのかは何ともいえないな。
日本語みたく中国語にも複数エンコーディングがある可能性も捨てきれんし。

653:デフォルトの名無しさん
07/03/17 05:01:47
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
   /  .`´  \
     ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (・∀・∩< 全部試せばいいんだ!!
    (つ  丿 \_________
    ⊂_ ノ
      (_)

URLリンク(www.python.jp)
gb2312, gbk, gb18030, hz とか中国語全部

URLリンク(ja.wikipedia.org)
派生・後継規格あたりが非常に怪しい

654:デフォルトの名無しさん
07/03/17 09:14:50
中国からwikipediaは見えません
URLリンク(slashdot.jp)

655:デフォルトの名無しさん
07/03/17 15:10:18
すげー国だなw、想像の範囲外w、

656:デフォルトの名無しさん
07/03/17 15:11:28
国丸ごと特定のページ見せないってのも一つの技術だとは思うが・・・w

657:642
07/03/17 16:35:17
Wikipediaは直接接続できませんが、プロキシを介すと閲覧はできます。
編集はできないけれど閲覧ならできるということで中国政府もバランスを取ってるんでしょうね。
一時期Googleが全面的にシャットアウトされて大学中が大混乱に陥ったこともあります。

みなさんありがとうございます。codecs.openにreplaceを追加すると問題なくコピーできました。
ですがこの場合エラーを無視しているということですよね・・・うーん歯痒い・・・

問題のある原文をうpろだにあげてみました。
URLリンク(aip.heteml.jp)

658:デフォルトの名無しさん
07/03/17 17:04:27
総当り:
rawin = file('data1.txt', 'rb').read()
for enc in ('gb2312', 'gbk', 'gb18030', 'hz'):
    print enc.ljust(10),
    try:
        rawin.decode(enc)
        print 'YES'
    except UnicodeDecodeError:
        print 'NO'

結果:
gb2312     NO
gbk        YES
gb18030    YES
hz         NO

改良:
import codecs
codecs.open('out.txt', 'w', 'utf-8').write( codecs.open('data1.txt', 'r', 'gbk').read() )

正しく変換できたかどうかは判断のしようがないので知らん。

659:デフォルトの名無しさん
07/03/18 00:28:25
>>644
python覚えて、ある程度使えるようになったから、
もっとハードコアなやつが欲しい。
入門書が一番需要があるんだろうけどさ。

660:デフォルトの名無しさん
07/03/18 00:59:43
TurboGears × Python」購入した。
本に掲載のサンプルコードが取れるかとおもって出版社のサイトには
ないし、作者の名前でググってみたらオフィシャルサイトがあったんで、
いってみたらびっくらこいた。

661:デフォルトの名無しさん
07/03/18 01:48:22
もう柴田淳ちゃんネタはいいよ

662:デフォルトの名無しさん
07/03/18 02:04:05
すみません、質問です。
pythonでゲームを作っています。
アドベンチャー形式で物語を進める場面があり、そこは簡単なスクリプト言語のようなもので書けるようにしたいのですが、
pythonで実装するにはどうすればいいのでしょうか?
自分でスクリプトを作るという感覚がどうもよくわからないのです。

663:デフォルトの名無しさん
07/03/18 02:15:45
幼稚園児にいきなり微分方程式の解き方を教えてくれと言われてもどこから
説明していいのか判らないようなもんだな。

664:デフォルトの名無しさん
07/03/18 02:24:00
知ったかぶり力を最大限に発揮して・・・。
じゃあ、とりあえず

[wait time=200]
*start|スタート
[cm]
これはてすとです。[l][r]
改ページします。[p]
[cm]
改ページしました。

みたいなのを要素ごとに切り出せばいいのね?
それで・・・どうすれば。
一個一個よみこんでそれに対応した動作をすればいいのかな?

665:デフォルトの名無しさん
07/03/18 02:27:00
URLリンク(www.dabeaz.com)
URLリンク(members.jcom.home.ne.jp)

URLリンク(www-06.ibm.com)

666:デフォルトの名無しさん
07/03/18 02:36:30
とりあえずあなたが寝ないうちにありがとうと言っておく。
参考にします。

667:デフォルトの名無しさん
07/03/18 03:04:44
アドベンチャーゲームのスクリプト程度なら馬鹿正直に自前で構文解析を
せずに、XMLを使ったほうが楽だと思うぞ。

668:デフォルトの名無しさん
07/03/18 03:05:19
てか Python でいいじゃんw

669:デフォルトの名無しさん
07/03/18 06:22:32
>>664
lex yaccとか使えないへたれな俺が良くやってるのは、
[{'wait time':200,(ry

みたいに、pythonリスト&辞書で表現したい内容を全部書いておいて、
それをread&evalして必要な情報を引っ張り出すみたいなのが相当楽。
まあ、アドベンチャーのスクリプトはやったことないのでうまくいくか知らんけど

670:デフォルトの名無しさん
07/03/18 11:46:41
普通にPythonの関数としてwaitだのなんだのを作っておいて、Pythonのプログラム
として実行するほうが100万倍融通が効くだろ。俺言語発明する理由が理解できん。

671:デフォルトの名無しさん
07/03/18 15:03:42
ActivePython 2.5 でたよー
URLリンク(www.activestate.com)

今回はやけに時間がかかったような?

672:デフォルトの名無しさん
07/03/18 15:15:55
pythonで簡単にFlashゲームの創れるライブラリとかありませんか?

673:デフォルトの名無しさん
07/03/18 15:43:06
Flashでゲーム作りたいならFlashの勉強したら?
ActionScriptってJavaScriptなんだし

674:デフォルトの名無しさん
07/03/18 17:35:34
そっか。
pygameの出力がswfになればいいのに。

675:デフォルトの名無しさん
07/03/18 19:34:36
swfをジェネレートするライブラリは需要ありそうだな。既にあるかもしれんが。

676:デフォルトの名無しさん
07/03/18 20:06:45
swf 作成

独自スクリプトでいいのなら、
swftools URLリンク(www.swftools.org)
というのがある。

Ming URLリンク(ming.sf.net) だと python にも対応しているらしい。


677:デフォルトの名無しさん
07/03/18 20:19:40
952 名前:デフォルトの名無しさん[sage] 投稿日:2007/02/15(木) 10:47:56
Flexは?

Hybridizing Java
URLリンク(www.artima.com)
> Thus, you can create an application in any language you prefer,
> even a dynamic language like Python or Ruby, and use Flex to build
> a beautiful UI.

985 名前:デフォルトの名無しさん[] 投稿日:2007/02/16(金) 05:18:12
実際にFlexとTurbogearsを使ってウェブアプリのGUIを作っているデモ:
URLリンク(www.adobe.com)

URLリンク(www.artima.com)
によると、Flex使ったら綺麗なGUIがウェブアプリとデスクトップアプリ両方
でできるみたいだね。一つのツールを勉強すれば環境を無視してどこでも使える
のは魅力。



前スレから転載
web program方向になるかもだけどだけど
Open Laszloでもできるのかな?

678:デフォルトの名無しさん
07/03/19 22:26:39
Python で Connection: keep-alive なブラウザ作ってる人っていませんか?
urllib, urllib2 にある機能では必要なオブジェクトが内部で完結されていたりして使えず、
httplib.HTTP をつかっても二度目のレスポンス取得(getreply)がうまくいかなかったりと期待する動作になりません。

import httplib
a = httplib.HTTP('127.0.0.1')
a.putrequest('GET', '/test1.html')
a.putheader('Connection', 'keep-alive')
a.endheaders()
errcode, errmsg, headers = a.getreply()
size = int(headers['content-length'])
page1 = a.getfile().read(size)

a.putrequest('GET', '/test2.html')
a.putheader('Connection', 'keep-alive')
a.endheaders()
errcode, errmsg, headers = a.getreply()
size = int(headers['content-length'])
page2 = a.getfile().read(size)
a.close()

print page1
print page2

上記を試すと、二度目の a.getreply() で例外が発生します。
httplib.ResponseNotReady
例外を無視して page2 = a.getfile().read(size) を実行すると、
2度目のリクエストに対するページの内容が取得できます。
(sizeが取得できていないため、test2.html が中途半端に取れたりします)

keep-alive について勘違いしてたりしますかね?
telnet で同じようにリクエストを送れば期待通りの結果になるので、間違ってはいないと思うんですが・・・

679:デフォルトの名無しさん
07/03/19 23:24:20
httplib.HTTPConnection のほうを使ってみては?

680:デフォルトの名無しさん
07/03/19 23:39:01
単純に
HTTP → HTTPConnection
にしてみましたが、
getreply → getresponse
のところで(2回目で)同じように ResponseNotReady が返ってきました。
も少し調べてみます。

681:デフォルトの名無しさん
07/03/20 00:33:04
>>678
httplib2 をつかえば、できるようだけど?(未確認です)


682:デフォルトの名無しさん
07/03/20 00:57:45
HTTPConnectionを使った新しい方法ならちゃんと取れる。
後方互換用のHTTPクラスで、しかも getfile を使った方法となると
なんか変なことを内部でやってるっぽいのでやり方がわからない。
HTTPクラス自体は HTTPConnection をラップして適当に昔のインターフェースに合わせてるだけっぽいので
ちゃんと呼び出しを律儀に見て行けばいつかはたどり着くと思う。

683:デフォルトの名無しさん
07/03/20 01:47:57
>>682
すみません、urllib2がsocket閉じれない問題に遭遇してからurllib→httplibと下がっていっていろいろ混乱してました。
まだ確認してませんが頑張ってみます。

684:デフォルトの名無しさん
07/03/20 02:12:24
import httplib2
headers = {
'Keep-Alive' : '300' ,
'Connection' : 'keep-alive' ,
}
h = httplib2.Http()

resp, content = h.request("URLリンク(python.org) , headers = headers)
con = h.connections['http:python.org']
print h.connections
print con.sock.getpeername() , "<=>" , con.sock.getsockname() , len(content)
print resp['keep-alive']

resp, content = h.request("URLリンク(python.org) headers = headers )
con = h.connections['http:python.org']
print h.connections
print con.sock.getpeername() , "<=>" , con.sock.getsockname() , len(content)
print resp['keep-alive']
----------
{'http:python.org': <httplib.HTTPConnection instance at 0xb7da288c>}
('82.94.237.218', 80) <=> ('192.168.10.5', 42058) 12375
timeout=15, max=100
{'http:python.org': <httplib.HTTPConnection instance at 0xb7da288c>}
('82.94.237.218', 80) <=> ('192.168.10.5', 42058) 2549
timeout=15, max=99


685:デフォルトの名無しさん
07/03/20 02:19:11
質問です。WindowsXPでPython2.5を使っているのですが、
リスト内の文字列などがエスケープされたまま出力されるのを抑える方法ありませんか?

対話環境でいうと
>>> print ["あ"]
['\x82\xa0']
となるところを

>>> print ["あ"]
["あ"]

としたいのです。

686:デフォルトの名無しさん
07/03/20 02:27:14
encodingについて学習すると良いね

687:デフォルトの名無しさん
07/03/20 02:51:32
>>685
> >>> print ["あ"]
> ['\x82\xa0']
> ↓
> >>> print ["あ"]
> ["あ"]

これは直せない、for文などでリストの内容を1つずつprintするしかない、
と「みんPy」には書いてあった。
URLリンク(www.amazon.co.jp)

688:デフォルトの名無しさん
07/03/20 03:28:49
>>685
標準の Python では無理。

ちょっと古いけど以下のバージョンだと可能らしい(俺は試したことない)。
URLリンク(www.python.jp)
> ShiftJIS文字列対応

689:デフォルトの名無しさん
07/03/20 04:09:58
>>678
一般論:
HTTP/1.1 では keep-alive がデフォルト。
Connection: ヘッダに close を指定しなければ永続コネクションが張られる。

Python 固有の話:
httplib.HTTPConnection は永続コネクションを張ってくれるっぽい。
URLリンク(docs.python.org)
の要領で単純にリクエスト送信とレスポンス受信を繰り返すと
ちゃんと同じコネクションが再利用される模様。

690:デフォルトの名無しさん
07/03/20 18:36:33
バイナリデータを覗きたい時にすごーく昔書いた
16進ダンプがこんななんですけど、もっとカッコイイ方法ってありますか?

def dumphex(s):
bytes = map(lambda x: '%.2x' % x, map(ord, s))
for i in xrange(0,len(bytes)/16):
print ' %s' % string.join(bytes[i*16:(i+1)*16],' ')
print ' %s' % string.join(bytes[(i+1)*16:],' ')


691:デフォルトの名無しさん
07/03/20 18:50:19
動けばイイんじゃねーの?と思いつつ。

def dumphex(s, format='%02x'): 
    for i in xrange(0, len(s), 16): 
        print ' '.join(format % ord(c) for c in s[i:i+16])

692:デフォルトの名無しさん
07/03/20 19:59:25
いきなり答えっぽいのが出てつまんねーな、と思いつつ。

def dumphex(s, format='%02X'):
  for n, c in enumerate(s):
    print format % ord(c), (n%16==15)*'\n',

693:691
07/03/20 20:08:36
短くしてやった。
動けば何でもよかった。
今は反省している。

694:デフォルトの名無しさん
07/03/20 23:02:52
def dumphex(s):
  l = list(s.encode("hex-codec"))
  m = map( lambda x: l[x]+l[x+1] , xrange(0,len(l),2))
  for x in map( lambda x: m[x:x+16] , xrange( 0, len(m) , 16 )):
    print string.join( x , " " )





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