Pythonのお勉強 Part6
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGhttp://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
前スレ
http://pc5.2ch.net/test/read.cgi/tech/1095684242/
0002デフォルトの名無しさん
NGNG2 http://pc3.2ch.net/test/read.cgi/tech/1020682294/
3 http://pc2.2ch.net/test/read.cgi/tech/1053955472/
6 http://pc5.2ch.net/test/read.cgi/tech/1104156256/
【たぷるタソ】Pythonのお勉強 5【ハァハァ】
http://pc5.2ch.net/test/read.cgi/tech/1081264387/
0003デフォルトの名無しさん
NGNGhttp://pc.2ch.net/tech/kako/965/965815778.html
http://pc3.2ch.net/test/read.cgi/tech/1020718991/
http://pc3.2ch.net/test/read.cgi/tech/1020718991/
http://pc5.2ch.net/test/read.cgi/tech/1068824510/
http://pc5.2ch.net/test/read.cgi/tech/1081312810/
http://pc5.2ch.net/test/read.cgi/tech/1081312810/
0004デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1103997158/
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1104156256/l50
とゆーことで。
************** 糸冬 了 **************
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG>6のようなPythonにコンプレックスを持っている人が目立つのはどうして?
0010535
NGNG0011デフォルトの名無しさん
NGNG紅玉
0012デフォルトの名無しさん
NGNGRuby より良いのか?
0013デフォルトの名無しさん
NGNG言語ってどうやって比較するのさ
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG正直に言えば便利ならそれで良い
何十何百とあるプログラミング言語を利用して結局Pythonにおちついただけ
001613
NGNGそれって比較になるの?
ならないからこれだけプログラミング言語があるのでは?
人間がそもそも多様なのだし、目的も多様なのだから目的に合せて利用しわければ良い
目的にそって利用できる「人」が優秀かどうかにつきる
言語はどうでもよい
0017デフォルトの名無しさん
NGNG> 何十何百とあるプログラミング言語
のうち実際に試したのはいくつなのやら。
0018デフォルトの名無しさん
NGNGどうでもいいなら、みんな違う言語を使ってるよね。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGahoge
0021デフォルトの名無しさん
NGNG↓こちらへ移動しましょう
http://pc5.2ch.net/test/read.cgi/tech/1104156256/
0022デフォルトの名無しさん
NGNGahoge
0023デフォルトの名無しさん
NGNGPhython
002413
NGNGだからみんな目的にそってちがう言語つかってるよね?
ふつうのプログラマって数種類のプログラミング言語使いこなせないと仕事にならん
>17
職務経歴書では41個
レガシーシステムだと言語がいろいろまざっているシステム(GUIにVBとDelphiとAppleScriptが同居とか)があり一企業で多数の言語でシステムが動作している物もあるから大変
全部さわらないと移行作業できない
バカヤローヽ(`Д´)ノ
なんでオレがやらんといかんのだ。今日も年末なのに午後から7つの別の言語でかかれたシステムの所に行く。害虫のやつらVBしかできんとかばっかだし( つД`)
ぐちだバカヤローヽ(`Д´)ノ
0025デフォルトの名無しさん
NGNG002613
NGNGちょうどグチが書きたかったときに見えた
今は反省している
仕事逝ってきます orz
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
05/03/20 19:05:19例外使うか、関数にするしかないの?
例外使う場合のコストってどんなもんなの?
0032デフォルトの名無しさん
05/03/20 23:33:490033デフォルトの名無しさん
05/03/20 23:41:03thx
他の言語を経験してると微妙に気持ち悪いかも
0034デフォルトの名無しさん
05/03/21 01:55:17初耳だ・・・
0035デフォルトの名無しさん
2005/03/21(月) 12:06:02他の言語ってC++とJavaくらい?
もっといろいろ他の言語を経験してると
例外処理とエラーは使いわけるので全然気持ち悪くない。
0036デフォルトの名無しさん
2005/03/22(火) 00:13:570037デフォルトの名無しさん
2005/03/27(日) 14:15:03コストは問題になるまいよ。
0038デフォルトの名無しさん
2005/03/27(日) 18:46:570039デフォルトの名無しさん
2005/03/28(月) 22:08:460040デフォルトの名無しさん
2005/03/28(月) 22:22:280041デフォルトの名無しさん
皇紀2665/04/01(金) 02:37:580042デフォルトの名無しさん
皇紀2665/04/01(金) 03:21:090043デフォルトの名無しさん
2005/04/03(日) 08:30:22ttp://japan.linux.com/enterprise/05/04/01/0245247.shtml
に、Pythonが、
>パフォーマンスはCに匹敵するか、それを上回ることさえあるが、
って書いてあるんだけど、本当?
ソース知ってる人、教えてちょ。
0044デフォルトの名無しさん
2005/04/03(日) 11:11:080045デフォルトの名無しさん
2005/04/03(日) 11:12:22psyco使ってもCには勝てないと思うし。
0046デフォルトの名無しさん
2005/04/03(日) 11:28:270047デフォルトの名無しさん
2005/04/03(日) 12:28:19恐らくベンチマーク的なパフォーマンスのことじゃなく
ライブラリとかアプリ全体とかそういうレベルの比較なんじゃないかなー。
いずれにせよ著者の経験に基づく主張だと思われ。
俺が敢えて書くなら「PythonがCより速いことは決して無い」と書くだろう。
0048デフォルトの名無しさん
2005/04/04(月) 00:39:32初心者です。
ちょっとずうずうしが聞いちゃおう
外人さんの作ったこういうプログラムなんです。
# Since the text areas in superkaramba 0.32 don't autowrap, I have to
def wrap(source, nrCols, nrLines):
out = ''
source = string.replace(source, '\n', '')
for i in range(0, nrLines):
out = out + string.strip(source[(i*nrCols):((i+1)*nrCols)]) + '\n'
return out
ユニコードの場合、途中で文字をぶった切ってしまいます。
誰かアドバイスをお願いしまつ。
0049デフォルトの名無しさん
2005/04/04(月) 00:40:180050デフォルトの名無しさん
2005/04/04(月) 05:48:130051デフォルトの名無しさん
2005/04/04(月) 12:26:12PythonをエクセルVBA替わりに使う事が多いんで、今だに2.3でがんばってます。
0052デフォルトの名無しさん
2005/04/04(月) 13:07:39ttp://prdownloads.sourceforge.net/pywin32/pywin32-203.win32-py2.4.exe
0053デフォルトの名無しさん
2005/04/04(月) 15:03:09おや、これわ。
ひょっとしてwin32all。。。
すんまへん。
http://www.python.jp/Zope/download/win32all
ここしか見てまへんでした。
What happened to the build numbers?
All new builds of the pywin32 (win32all) extensions are now released from SourceForge. The release mechanism has changed a little. The new features are:
The new distributions are all built using distutils - the WISE installer is no longer used.
The build numbering has changed. Any single build will be available for all supported versions. For example, build 200 is available for both Python 2.2 and Python 2.3 (whereas previously, one build number was used for Python 2.2, and other for 2.3)
To mark this change, the build numbers have jumped to 200, and will increment from there.
orz
0054デフォルトの名無しさん
2005/04/04(月) 21:02:42開発してる本家見たほうが正確かも
005543
2005/04/04(月) 22:19:29あははは、
>>47
コーディングのパフォーマンスみたいな意味かな、
Cに比べれば、一行で行う事の出来る作業が多い。みたいな。
lispが、一部、C++のベンチマークを上回っていることを少し前に知ったので、
post lisp 的な事を言われていたpythonのパフォーマンスも高いのかと、
linuxjounalの文章から期待したのですが、、、。
>>45,46
jythonといい、pythonて、実装が多数あるんですね。
そういう意味では、言語として(syntaxとか)好まれてるんですね。
0056デフォルトの名無しさん
2005/04/04(月) 22:53:14とんがってもいないけど、独りよがりでもない。
0057デフォルトの名無しさん
2005/04/05(火) 00:20:540058デフォルトの名無しさん
2005/04/05(火) 00:41:38Nine Language Performance Round-up: Benchmarking Math & File I/O
Christopher W. Cowell-Shah (2004)
www.osnews.com/story.php?news_id=5602&page=3
「I/O」のテスト項目において、VC++とPython+Psyco1.1.1が同値の10.5秒。
CPython 2.3.2(Psyco無し)の結果は11.9秒。
「I/O」のテストとは、"Write one million 80-character lines to a text file,
then read the lines back into memory."
ソースコード: www.cowell-shah.com/research/benchmark/code
0059デフォルトの名無しさん
2005/04/07(木) 07:37:31どんな内容がいいかな?
0060デフォルトの名無しさん
2005/04/07(木) 09:47:270061デフォルトの名無しさん
2005/04/07(木) 13:10:190062デフォルトの名無しさん
2005/04/08(金) 00:50:490063デフォルトの名無しさん
2005/04/08(金) 01:01:570064デフォルトの名無しさん
2005/04/08(金) 10:12:490065デフォルトの名無しさん
2005/04/09(土) 23:15:080066デフォルトの名無しさん
2005/04/10(日) 00:08:18>>58
TOTAL
Visual C++ 48.8
Visual C# 65.3
gcc C 73.0
Visual Basic 85.9
Visual J# 90.4
Java 1.3.1 97.6
Java 1.4.2 103.1
Python/Psyco 769.1
Python 1679.0
遅すぎ
>>43の記事は4/1とはいえ悪質すぎる
0067デフォルトの名無しさん
2005/04/10(日) 00:10:36おい、関数型の他の言語と比べるのが筋ってもんじゃないですかい?
0068デフォルトの名無しさん
2005/04/10(日) 00:13:22比べるならperlとかのスクリプトじゃないのか?
0069デフォルトの名無しさん
2005/04/10(日) 01:55:030070ニコちゃん ◆9COufv/UGU
2005/04/10(日) 04:32:40しかし、実際の複雑な処理は当然だが、インタープリタよりコンパイルする方が速い。
実際の使用感は、
Visual C++ > gcc >>> C#, Java, Visual Basic > Python
と言ったところか。。
0071デフォルトの名無しさん
2005/04/10(日) 12:59:16しかしschemeやMLと比べるよりは、
perlやawkと比べるべきかと
0072デフォルトの名無しさん
2005/04/10(日) 13:26:39いずれにせよコードを書く手間とパフォーマンスはトレードオフだろ。
Pythonのコードがネイティブコンパイラの速度で動いたら誰もC++なんか使わん。
0073デフォルトの名無しさん
2005/04/10(日) 13:37:56はい?なんていいましたか?もう一度お願いします。
0074デフォルトの名無しさん
2005/04/10(日) 14:51:48>VM系はプロセスや資源の生成・解放のコストを省略できるメリットがあるな。
VMをなんだと思ってるのか知らんが、これは72のただの思い込みなのでダウト
>いずれにせよコードを書く手間とパフォーマンスはトレードオフだろ。
MLとかの例外はいくつもあるのでダウト
007572
2005/04/10(日) 17:47:32perlなりC++なりで書いたCGIと、Java Servletの実行時に必要な処理を比較してくれよ。
プロセス作って初期化してDB接続して…なんてのを省略できるのは
VMの大きなメリットだろ?
0076デフォルトの名無しさん
2005/04/10(日) 18:21:560077デフォルトの名無しさん
2005/04/10(日) 18:22:100078デフォルトの名無しさん
2005/04/10(日) 19:10:03それはアプリケーションサーバのおかげであって
VM のおかげではないでしょ。
0079デフォルトの名無しさん
2005/04/10(日) 20:14:58ネタにマジレス
0080デフォルトの名無しさん
2005/04/10(日) 21:34:340081デフォルトの名無しさん
2005/04/10(日) 22:53:110082デフォルトの名無しさん
2005/04/10(日) 23:28:320083デフォルトの名無しさん
2005/04/11(月) 00:16:410084デフォルトの名無しさん
2005/04/11(月) 14:26:45言語自体のUIってことね。
0085デフォルトの名無しさん
2005/04/11(月) 16:19:430086デフォルトの名無しさん
2005/04/11(月) 16:27:130087デフォルトの名無しさん
2005/04/11(月) 19:19:540088デフォルトの名無しさん
2005/04/11(月) 20:18:030089デフォルトの名無しさん
2005/04/12(火) 00:10:580090デフォルトの名無しさん
2005/04/13(水) 17:36:260091デフォルトの名無しさん
2005/04/13(水) 23:16:51それなら jython に投資しろよ
0092デフォルトの名無しさん
2005/04/14(木) 00:21:560093デフォルトの名無しさん
2005/04/14(木) 19:33:020094デフォルトの名無しさん
2005/04/14(木) 20:03:38http://ar.aichi-u.ac.jp/python/
0095デフォルトの名無しさん
2005/04/15(金) 00:56:57これがお勧め
ttp://boa-constructor.sourceforge.net/
0096デフォルトの名無しさん
2005/04/15(金) 11:06:420097デフォルトの名無しさん
2005/04/15(金) 15:33:42AjaxをPythonで書けるようにならんかなあ。
0098デフォルトの名無しさん
2005/04/15(金) 16:01:01Zopeでやれよ
0099デフォルトの名無しさん
2005/04/15(金) 19:28:54ていうか、サーバでZope使ったってクライアント側はJavaScriptだし。
0100デフォルトの名無しさん
2005/04/15(金) 20:35:09Pythonが使えたらホントにうれしいですな。
いまのところJavaScript、Java Applet、Flashくらいしか
選択の余地がないもの。
0101デフォルトの名無しさん
2005/04/15(金) 20:35:19Ajaxの存在意義に思いっきり背を向けた話だな。
0102100
2005/04/15(金) 20:37:450103デフォルトの名無しさん
2005/04/15(金) 21:09:050104デフォルトの名無しさん
2005/04/18(月) 02:42:19過去にはこんな動きも一応あった。
http://internet.watch.impress.co.jp/www/article/2000/0525/asns.htm
> ActiveStateがNetscapeと提携。MozillaでPerl、Pythonを利用可能に
0105デフォルトの名無しさん
2005/04/18(月) 05:33:11ってそういう話じゃないか。
0106デフォルトの名無しさん
2005/04/18(月) 15:45:580107デフォルトの名無しさん
2005/04/18(月) 15:47:500108デフォルトの名無しさん
2005/04/18(月) 15:57:42bittorrentのフロントエンドプラグイン
0109デフォルトの名無しさん
2005/04/20(水) 16:33:480110デフォルトの名無しさん
2005/04/20(水) 21:23:470111デフォルトの名無しさん
2005/04/20(水) 22:30:310112デフォルトの名無しさん
2005/04/20(水) 22:34:09ググっても見つかりません。
0113デフォルトの名無しさん
2005/04/20(水) 23:26:23お前のぐぐっているGoogleは知能的欠陥の一種だ。鎮める方法はお前が知っている。お前に任せた。
0114デフォルトの名無しさん
2005/04/21(木) 01:44:230115デフォルトの名無しさん
2005/04/21(木) 01:45:04http://www.mems-exchange.org/software/quixote/
0116デフォルトの名無しさん
2005/04/21(木) 03:28:04どこどこ? あ、114さん自身か。なるほど。
0117デフォルトの名無しさん
2005/04/21(木) 12:58:140118デフォルトの名無しさん
2005/04/21(木) 13:25:59やりたいことは
>>onani = "str[1:3]"
>>str = "hello"
>>print onani
"el"
でも実際には"str[1:3]"が返ってきます。
このonaniに代入された文字列を後から変数として使用することは可能でしょうか?
0119デフォルトの名無しさん
2005/04/21(木) 13:29:050120デフォルトの名無しさん
2005/04/21(木) 13:41:450121118
2005/04/21(木) 13:47:30ごめんなさい。検索してみたけど、使い方が良くわからない。
よければ使用例を書いて頂いてもいいですか?
あともっと細かく説明すると
"onani"に代入する文字列はスクリプト実行時の引数で、
"str"に代入する文字列は外部テキストからです。
import sys
onani = sys.argv[1] #str[6:]+str[:6]
str = open("a.txt").readline() #"hello world"
print onani
とすると結果が"world hello"
みたいな感じで。
0123デフォルトの名無しさん
2005/04/21(木) 17:11:20evalで間に合ってるようだけど、目的に応じて使い分けるなら...
ビルトイン関数の vars, locals や globals が変数の辞書を返す。
オブジェクトのメンバ変数であれば getattr 等。
>>> foo = 10
>>> locals()["foo"]
10
0124118
2005/04/21(木) 17:44:40ありがとうございます。いろいろ勉強してみます。
ところで話しわかるんですけど、
100%pythonで作られた高機能なアプリってないですか?(Windows)
メディアプレーヤーとか画像ビューアは見つかったんですが、
デコード等の部分が、Cで書かれてて、純粋なpythonアプリじゃないんですよね。
せっかくwxPythonとかexe形式にするためのツールがあるのにそれを活用してるものがないのが残念。
0126デフォルトの名無しさん
2005/04/21(木) 18:15:150127デフォルトの名無しさん
2005/04/21(木) 18:22:43> 100%pythonで作られた高機能なアプリってないですか?(Windows)
何気に興味深い問いだな。
118さんは pure python であることにどういう意味(意義)があると考えてる?
Python の標準ライブラリの中にも pure Python のモジュールとCで書かれた
モジュールが混在してる。Cで書いた方が速度的なメリットがあるからだけど
Cで書いてあってもやっぱり Python のプログラムだと個人的には思う。
なぜならCで書くと言っても Python 独自の約束事がたくさんあって、
実質的には Python で書くのと大差ない部分が多いから。C API は Python の
言語機能と対応している部分が多い。実際にやってみると、多かれ少なかれ
「Cで Python プログラミングをやっている」という感じがすると思うよ。
0128デフォルトの名無しさん
2005/04/21(木) 19:15:18>> デコード等の部分が、Cで書かれてて、純粋なpythonアプリじゃないんですよね。
wxPythonもwxWindowsへのラッパー(C++)という事を考えると、100% pure pythonってないんじゃないかな?
どちらも同じ拡張モジュールという位置付けですよ。
高機能なアプリでは、Pythonは組み込み言語として使われる事の方が多そう。blenderとか。
>> 126
> Pythonの名前空間の仕様と動的メモリ管理の仕様が良く判るサイトを紹介して下さい
詳細はソースを読む事になるだろうけど、概要ならドキュメントに書いてます。
http://www.python.jp/pub/doc_jp/ref/naming.html
http://www.python.jp/pub/doc_jp/ext/refcounts.html
http://www.python.jp/pub/doc_jp/api/memoryOverview.html
0129デフォルトの名無しさん
2005/04/21(木) 22:43:420130デフォルトの名無しさん
2005/04/21(木) 23:08:47今は、
b.forms()[0].find_control(コントロール名).readonly = False
でやってるんだけど
b = mechanize.Browser()
b.open(URL)
b.select_form(フォーム名)
ってやった後に簡単に変える方法はないの?
上のでも十分簡単なんだけど見た目が嫌。
0131デフォルトの名無しさん
2005/04/21(木) 23:56:51今ダウソしてみたけど2.4.1だったが?
0132デフォルトの名無しさん
2005/04/22(金) 00:48:58スマソ。
保存先に2.4.1があったから、3.4.1に変えられたみたい。
もう一個落としたら4.41になった。
0133デフォルトの名無しさん
2005/04/22(金) 07:15:01いいなぁ。5.51ください。
0134デフォルトの名無しさん
2005/04/22(金) 12:54:320135デフォルトの名無しさん
2005/04/22(金) 16:12:330136デフォルトの名無しさん
2005/04/22(金) 17:15:270137デフォルトの名無しさん
2005/04/22(金) 18:22:45便利だね〜〜。
0138デフォルトの名無しさん
2005/04/23(土) 00:38:43それは、いい質問だね。
0139デフォルトの名無しさん
2005/04/23(土) 01:29:07Pythonだったら変換テーブル作るぐらいしか思いつかない…。
だれかトリッキーな変換できるかや?
0140デフォルトの名無しさん
2005/04/23(土) 01:33:08採択されてないけど。
あと、formatter.py のAbstractFormatterクラスにformat_roman()があるが、これはなんだろう。
0141デフォルトの名無しさん
2005/04/23(土) 07:27:49ttp://diveintopython.org/
ここのroman.pyをパッケージにしてあった。
0142デフォルトの名無しさん
2005/04/23(土) 09:47:47あとビルダ使ってたらそれも教えて下さい。
俺はwxpythonとboa constructorです。
Tkinterの利用を検討中ですが、何かお勧め等ございますか?
0143デフォルトの名無しさん
2005/04/23(土) 10:50:14その質問、どちらかと言うとFAQだと思うんだけど
あんまり選択肢がないような・・・。
俺はTkinter。前はUnix限定でPyGTKを使っていた。
ビルダは使ってない。
あとGUIで何作ってる?>ALL
考えてみると自作のGUIアプリって少ないんだよねー。
俺の場合、作るのが面倒だからCUIで済ませちゃう傾向にあるのかも。
0144デフォルトの名無しさん
2005/04/23(土) 15:05:210145デフォルトの名無しさん
2005/04/24(日) 00:37:42色々と検索してみたところpykfというモジュールが適しているように見えました。
http://www.gembook.jp/tsum/page.pys?wiki=PyKf
で、インストールしようとしたところVisutal Studio 7.1が必要だと怒られてしまいます。
どこかにバイナリか、それとも、その他にもっと適した方法ってないでしょか?
0146デフォルトの名無しさん
2005/04/24(日) 01:14:15つ http://www.python.jp/pipermail/python-ml-jp/2004-September/003034.html
0147145
2005/04/24(日) 02:39:322.3にダウングレードして何とか動きました。
ありがとうございました。
0148デフォルトの名無しさん
2005/04/24(日) 03:44:20Solarisのことかー
0149デフォルトの名無しさん
2005/04/24(日) 03:49:15残念。
0150デフォルトの名無しさん
2005/04/24(日) 07:59:50それがないとモジュールをコンパイルできない(っぽい)んだが。
0151142
2005/04/24(日) 12:02:48高機能ではないがすばらしい。
pythonの標準モジュールに追加すべきだと思った。
>>143
本当に簡単なものしか作らない。
おれはマウス派なんで、引数をチェックボックスで渡したりとか。
でもそのうち、もうちょいグラフィカルなものも作ってみたい。
今の所、ファイラーを検討中。
0152142
2005/04/24(日) 13:27:36from easygui import *
import os,sys,os.path
root = "D:/"
dir = root
def box(dir,files):
open_file = choicebox(dir,"Files in",files);return open_file
def get_files(dir):
files = os.listdir(dir)
if dir != root: files.insert(0,"<<")
return files
while 1:
print dir
files = get_files(dir)
open_file = box(dir,files)
if open_file == "<<":
dir = "/".join(dir.split("/")[:-2])+"/"
continue
if os.path.isdir(dir+open_file):
print "Dir"
dir += open_file+"/"
continue
else:
print "File"
os.startfile(dir+open_file)
continue
else:
sys.exit(0)
0153デフォルトの名無しさん
2005/04/25(月) 17:18:58try:
B
finally:
C
みたいなコードで、AとCが定型でBだけが変化するとき、
rubyだとyield使ってAとCを一つの関数にくくりだすんだけど、Pythonではどうする?
0154デフォルトの名無しさん
2005/04/25(月) 17:55:380155デフォルトの名無しさん
2005/04/25(月) 18:57:430156デフォルトの名無しさん
2005/04/26(火) 01:01:31>>python hoge.py
で、無事に実行されるんですが、hoge.pycファイルが生成されません。
バイトコードってヤツはどこのディレクトリに生成されるのでしょうか?
0157デフォルトの名無しさん
2005/04/26(火) 01:30:45python(引数なし) で実行して
>>> import hoge
をやると hoge.pyc ができるよ.
0158156
2005/04/26(火) 01:44:230159デフォルトの名無しさん
2005/04/26(火) 02:03:28python -m py_compile hoge.py
他には、compileallモジュールとか。
オプションでコンパイルするファイルの条件を細かく指定できる。
関係ないかも知れないが、
バイトコードは .pyc ファイルの 8バイト目以降にmarshal化されて格納されてる。
0160デフォルトの名無しさん
2005/04/26(火) 02:17:42+1
0161156
2005/04/26(火) 02:29:21「プログラミング初めてなら、pythonとかいいんじゃない?
分からいことあったら、俺教えてやれるし。」
と、友人に言われて始めたんですが、
その友人が「インドネシアでラーメン屋やる」とだけ言い残して音信不通になっとりまして、
ここで教えてもらえて助かりましたです。
0162デフォルトの名無しさん
2005/04/26(火) 03:10:04とりあえず恥パイ二夜買えば?
0163デフォルトの名無しさん
2005/04/26(火) 08:34:490164デフォルトの名無しさん
2005/04/26(火) 11:32:31新スタイルクラスの__new__メソッドすら書いてない。
0165デフォルトの名無しさん
2005/04/26(火) 18:21:13なんかPython嫌いになってきました・・・
Perl6でswitch分をgiven〜whenにすると聞いた時もハア?と思いましたが
それに近い気分です・・・。はあ・・・。
0166デフォルトの名無しさん
2005/04/26(火) 18:30:29エイプリルネタだよ。
まぁ緩和はされるかもしれないね。
0167デフォルトの名無しさん
2005/04/26(火) 19:55:37釣られてるYO
0168デフォルトの名無しさん
2005/04/26(火) 20:52:050169159
2005/04/26(火) 22:09:28僕も似たような事いい残して海外へいってしまった経験ありだったりして。# 耳が痛い
オンラインドキュメントだけでも十分、独習出来るだけのリソースがあるので、
自分がいなくてもなんとかなるだろうと打算してました。
marshalは、コンパイルされたPythonのデータ(codeオブジェクト)を
ファイルに保存したりする為に、バイナリデータへ変換する為のモジュールです。
バイトコードについて細かい事言えば、
>>159では説明不足/間違ってるので、>>160の為に詳細
> import dis, marshal
> pyc = open("hoge.pyc", "rb")
> pyc.seek(8)
> code = marshal.load(pyc) # <-- codeオブジェクト
> code.co_code # <-- これがバイトコード(文字列として格納されているがバイナリーデータ)で
> dis.dis(code) # <-- ここで表示されるのがバイトコードをdisassembleしたコード
> exec code # codeを実行
ついでに、先頭の8バイトはそれぞれ、
マジックナンバー(4byte) と タイムスタンプ(4byte unsigned int)
> import imc, time, struct
> pyc.seek(0, 0)
> pyc.read(4) # コンパイルした環境の img.get_magic() と同じ値。version毎/Unicodeサポートのon/offにより異なる
> time.ctime(struct.unpack("<i", pyc.read(4))[0]) # ソースファイルの最終更新日時
Pythonのソース(文字列)からcodeオブジェクトにコンパイルするには、
ビルトイン関数やcompiler モジュールのcompile関数が使えます。
0170デフォルトの名無しさん
2005/04/26(火) 23:00:15「python hoge.pyってやったときhoge.pycができなくても心配しなくていいんだよ。そういうもんだから」
でいいんじゃねぇの?
0171デフォルトの名無しさん
2005/04/26(火) 23:33:44俺「実は160は行方不明になった159の友人だったんだ!」
全員で「な、なんだってーーーっ!!!」
俺「と、とりあえずイニシャルを確認汁!」
160「○.○.ですが・・・」
159「あ、合ってるよーーーーーーーっ!!!」
全員で「な、なんだってーーーっ!!!」
という展開キボンヌ。
0172171
2005/04/26(火) 23:34:54逝ってくる
0173171
2005/04/26(火) 23:37:070174デフォルトの名無しさん
2005/04/27(水) 00:28:56-1
0175デフォルトの名無しさん
2005/04/27(水) 02:41:140176デフォルトの名無しさん
2005/04/27(水) 02:47:46PerlのOOなんて、関数もだけど、あまりに醜くて、見ててイライラする。
0177159
2005/04/27(水) 03:01:12状況が似てただけで。インドネシアでもラーメン屋でもないです。残念。
> インデント
タブインデントだと環境によって幅が代わるので、スペース推奨だったはず。
みんなTAB派?
0178デフォルトの名無しさん
2005/04/27(水) 03:07:200179デフォルトの名無しさん
2005/04/27(水) 03:07:31TABだとBSキー一発でいいけど
スペースだとBSキーを何回も押さないといけないでしょ
0180デフォルトの名無しさん
2005/04/27(水) 03:31:28> タブインデントだと環境によって幅が代わるので、スペース推奨だったはず。
> みんなTAB派?
君は python-mode.el を知らないのかね?
0181デフォルトの名無しさん
2005/04/27(水) 03:34:37> タブインデントだと環境によって幅が代わるので、スペース推奨だったはず。
> みんなTAB派?
スペース1個でインデントするといいよ
0182デフォルトの名無しさん
2005/04/27(水) 04:37:56Pythonのスタイルガイドに書かれてたのは、
TABインデントとSpaceインデントを混ぜるな でした。
>>179
vi だったら << >>, emacs なら C-c C-l/C-r でインデントの制御できます。
IDEでなくとも shift + TAB でdedentするエディタとか使ってない?
>>180
python-mode.el なら自動判別してくれるけど、みんなが使ってるわけではないでしょ。
0183デフォルトの名無しさん
2005/04/27(水) 05:14:36結構重い。
0184デフォルトの名無しさん
2005/04/27(水) 08:40:370185nanashi
2005/04/27(水) 10:45:39<分散グラフイメージ>
英語 100| ●久保
| ●佐々木
50|
| ●三瀬
0| ●岩瀬
-------------------
0 50 100
数学
<グラフの元となるデータ>
氏名 英語 数学
久保 100 80
佐々木 75 30
三瀬 30 60
岩瀬 10 30
0186デフォルトの名無しさん
2005/04/27(水) 11:08:010187デフォルトの名無しさん
2005/04/27(水) 17:24:54http://www.wxpython.org/
0188デフォルトの名無しさん
2005/04/27(水) 18:01:090189142
2005/04/27(水) 20:19:13今、頑張ってpythonでファイラーを作っております。
専門用語がわからないんですが、pythonでWindowsの標準のアイコン
(explorerで表示されるフォルダアイコンとかアプリの関連付けアイコン)
を取得する方法ってありますか?
いろんなpythonアプリを探しましたが、windowsのアイコンを使用しているものは見たことがありません。
可能なんでしょうか?
0190デフォルトの名無しさん
2005/04/27(水) 20:38:57といってもShell APIを呼ぶだけだけど。
0191189
2005/04/27(水) 21:14:24ありがとうございます。
なんとかアイコンの情報を取得する方法を(たぶん)見つけたんですが、
int = win32gui.ExtractIconEx("C:\Windows\NOTEPAD.exe", 0 , 1 )
これを実行すると([30411881], [101256283])が返ってきます。
wxpython等で表示するのに、この数字をどう使えばよいのでしょうか?
pythonとは関係のない内容かもしれませんが、もしご存知であれば、助けてください。お願い致します。
0192デフォルトの名無しさん
2005/04/27(水) 21:23:12> 君は python-mode.el を知らないのかね?
スペース推奨が最も嫌うタイプだな、君は。
Pythonの標準ライブラリのインデントはTABではなく、スペースで統一されていたはず。
0193デフォルトの名無しさん
2005/04/27(水) 21:59:22ソースいぢってるときはTabで
然るべき処に投げるときはreでspaces変換
0194デフォルトの名無しさん
2005/04/28(木) 00:20:13| インデントインデント!インデントー!をやっていいですか?
\____ ___________________________/
/||ミ V
/ ::::||
/:::::::::::||____
|:::::::::::::::|| ||
|:::::::::::::::||│ / ||
|:::::::::::::::|| ̄\ ガチャッ
|:::::::::::::::||゚ ∀゚)─ ||
|:::::::::::::::||_/ ||
|:::::::::::::::||│ \ ||
|:::::::::::::::||∧ ∧∩ ||
|:::::::::::::::|| ゚∀゚)/. ||
|:::::::::::::::||∧ ∧∩ ||
|:::::::::::::::|| ゚∀゚)/. ||
|:::::::::::::::|| 〈. ||
|:::::::::::::::||,,/\」. || …
\:::::::::::|| ̄ ̄ ̄ ̄ ∧_∧
\ ::::|| ___\(・∀・ ) < お前ら、誰ですか?
\|| \_/⊂ ⊂_ )
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
0195デフォルトの名無しさん
2005/04/28(木) 04:32:23ExtractIconはSHELL APIじゃなくて普通のAPIだよ。関連づけられてるアイコンだけ取得できたと思う。
返ってきてるのは多分アイコンリソースのハンドル。
ExporerみたいなことやりたいならSHGetFileInfoかな?
MSDNいってしっかり仕様見た方がいいぞ。
0196189
2005/04/30(土) 16:36:19wxpythonの質問もOKですか?
wxpythonのlistctrlにアイコンを表示させる方法がわかりません。
可能であればbmpファイルをアイコンとして表示することを希望しております。
ご存知の方おりますでしょうか?
0197デフォルトの名無しさん
2005/04/30(土) 18:26:58wxPythonのデモの中にサンプルソースがあるから
それを見ながら何とかやってくだちい.
デモは,プログラムメニューの
wxPython 2.4 for Python 2.3 -> Run the wxPython Demo から起動.
その中の [Core Windows/Controls] - [wxListCtrl] にサンプルがあるよ
0198デフォルトの名無しさん
2005/04/30(土) 23:45:02それをwxListCtrlにAssignImageListしておいてSetItemImage。
デモのMIMETypeManagerとwxListCtrlを参考に。
0199デフォルトの名無しさん
2005/05/01(日) 21:34:290200デフォルトの名無しさん
2005/05/01(日) 22:53:19COMが使えるからできるんじゃない。多分。
0201デフォルトの名無しさん
2005/05/02(月) 00:52:40PC内を検索するスクリプトを書きました。(GUI付き)
検索方法はwalkをパクって、不要な部分を削っただけですが、
インデックスを作成せずにこれ以上に早く検索する方法が思いつきません。
もし何かアイデアがあれば知恵を貸してください。
みなさまからすればレベルの低いものかと思いますが、是非一度使って見て下さい。お願いします。
あと自分は他の言語が扱えない為、pythonでしか作れません。使用してみて頂いて速度的に
他の言語と比較してどのようなものか感想を頂けるとありがたいです。
0202デフォルトの名無しさん
2005/05/02(月) 01:50:550203201
2005/05/02(月) 02:11:09しかも原因不明です。場所を変えました。
ttp://www.doraemon.instat.ne.jp/cgi-bin/upload/source/up2309.zip
ちなみにスクリプト(.py)の状態なので、変な動作をしていないというのはソースを見て頂ければ
確認できると思います。
またGUIにwxpythonを使用している為、モジュールのインストールが必要です。
冷やかしでも構いませんので、是非落としてみてください。
0204デフォルトの名無しさん
2005/05/02(月) 02:19:28% python PySearch.py ~
Traceback (most recent call last):
File "PySearch.py", line 3, in ?
from os import listdir,startfile
ImportError: cannot import name startfile
捨て決定
0205デフォルトの名無しさん
2005/05/02(月) 06:55:55使い方は、[ディレクトリ][空白][検索文字]でいいのかな。
>> os.startfile
Windows 以外の環境を考慮するなら wibbrowser.open
(winでは内部でstartfileが呼ばれるはず)
>> D:/pysearch/logo.jpg
アーカイブに含めて相対pathで指定する。
icon程度ならxpmを圧縮したデータをスクリプト内に埋め込む方法もある。
>> OnTextCtrl1KeyDown のイベント伝搬
searchBoxのstyleにwxTE_PROCESS_ENTER指定して、
wx.EVT_KEY_DOWN, OnTextCtrl1KeyDown の代わりに
wx.EVT_TEXT_ENTERイベントにOnSearchButtonButtonを登録。
>> pathの区切り文字
os.path.dirname, os.path.join, os.path.split を使う
>> searchが busy loop
スレッド内で処理するか、検索ループ内で適度に Sleep や Yield 系の関数呼ぶ。
具体的に言うと、search関数の中の最初のforブロック内にwx.YieldIfNeeded()
>> if str in name.lower():
strを正規表現にコンパイルしてmatchさせる。
>> for x in search(path,str):yield x
ディレクトリの深さに比例して遅くなるので、
再帰ないでyieldするより、callbackにした方が効率良い。
他には psyco モジュールを使ってpsyco.bind(search)とすると、早くなるかも。
ステータスバーにでも速度計って、比較してみてはどうでしょう。
0206203
2005/05/02(月) 18:43:26>>205
ありがとうございます。
これほどチェックして頂けるとは思っていませんでした。感激です。
参考にしてこれから色々弄ってみます。
ちなみに205さんは他の言語も利用されますか?
速度的な感想はどうでしょうか?やはりCとかと比べものになりませんか?
0207デフォルトの名無しさん
2005/05/03(火) 00:58:080208デフォルトの名無しさん
2005/05/03(火) 01:04:31> やはりCとかと比べものになりませんか?
なんだこりゃ?(笑
0209デフォルトの名無しさん
2005/05/03(火) 15:54:34中にはいるんだろうが、非常に少ないのではないかな。
0210デフォルトの名無しさん
2005/05/03(火) 22:50:13>>206
あまり、言語の違いによって差の出る性質のプログラムではないので
こういったユーティリティ的なものは、Pythonで十分だと思う。
試しに、C++/wxWIdgetsとTcl/Tkで似たようなもの作ってみたけど、
GUIの起動時間が若干気になるくらいで、実行速度の差は(時間は計ってないけど体感速度で)それほど気にならなかったよ。
0211デフォルトの名無しさん
2005/05/04(水) 22:11:33と思うのは俺だけ?
そういう話じゃない?
0212デフォルトの名無しさん
2005/05/05(木) 01:37:36とゆーか>>205や>>211の言うような効率化の努力なしに
速度を評価するのは(以下略
0213デフォルトの名無しさん
2005/05/05(木) 12:37:52拡張モジュールにしてもたいして速度改善期待できないよ。
0214デフォルトの名無しさん
2005/05/05(木) 13:01:080215デフォルトの名無しさん
2005/05/05(木) 13:18:56http://www.pythonchallenge.com/pc/index.htm
0216デフォルトの名無しさん
2005/05/05(木) 21:01:433問目でつまづいた。
One small letter, surrounded by EXACTLY three big bodyguards on each
of its sides.
って"[A-Z]{3}[a-z][A-Z]{3}"じゃだめなのれすか?
0217デフォルトの名無しさん
2005/05/05(木) 21:25:49"EXACTLY" に注意。
それだと4つ以上並ぶこともあるでしょ。
0218デフォルトの名無しさん
2005/05/05(木) 21:36:080219デフォルトの名無しさん
2005/05/05(木) 22:58:28ヒント読んでもさっぱり…。
0220デフォルトの名無しさん
2005/05/06(金) 00:02:50とりあえずForumにでてくる"[verb] the [nouns]"までは分かった。
そっから分かんない・・・orz
0221デフォルトの名無しさん
2005/05/06(金) 00:39:100222デフォルトの名無しさん
2005/05/06(金) 00:49:470223デフォルトの名無しさん
2005/05/06(金) 00:56:59一問目っていうのは、LEVEL0? LEVEL1?
0224デフォルトの名無しさん
2005/05/06(金) 01:14:230225デフォルトの名無しさん
2005/05/06(金) 01:20:07>>222
Hint: look at the URL address.
0226221
2005/05/06(金) 01:23:04基本的に、答えの文字列をURLにしたものが次の問題のページ。
例えば答えが「python」ならば
www.pythonchallenge.com/pc/def/python.html
に次の問題が書いてある。
Level0は中学レベルの計算問題だ
Level5はなんとかできた。Level6をこれからやってみる。
0227デフォルトの名無しさん
2005/05/06(金) 01:31:37左上の0はLevelの意味で問題とは特に関係なかったのね。
しかし、Level1わからん。
0228デフォルトの名無しさん
2005/05/06(金) 01:33:08それともシーザー暗号をPythonで解く方法がわからないのか?
0229デフォルトの名無しさん
2005/05/06(金) 01:33:20フォント名?モニタのメーカ名?背景の場所?
0230デフォルトの名無しさん
2005/05/06(金) 01:35:59>>226分かったらヒントおくれ
0231デフォルトの名無しさん
2005/05/06(金) 01:38:50>フォント名?モニタのメーカ名?背景の場所?
てことはLEVEL 0?
だったら、そこに書いてある数字。
0232デフォルトの名無しさん
2005/05/06(金) 01:41:39漏れには向いてないな・・・落ち
0234デフォルトの名無しさん
2005/05/06(金) 02:05:40でもpythonは関係ない気がする。
これからpython風になっていくのか?
眠いから寝る。
0235221
2005/05/06(金) 02:10:42Level5を解くにはPythonが必要。
そこまではperlとか他の言語を使ったり、手作業の力技でもできるかもしれない。
>>220さんとおそらく同じところで詰まったままだ・・・今日はもう寝る。
0236デフォルトの名無しさん
2005/05/06(金) 02:28:46別に優秀なプロブレムソルバーじゃなくてもいいよ。問題提起側になるから。
分かったことは詰めvi的要素は鴨寄せに効果的だということだ。
0237デフォルトの名無しさん
2005/05/06(金) 03:10:390238デフォルトの名無しさん
2005/05/06(金) 04:06:49狭いttyだとチョトきつい。
0239デフォルトの名無しさん
2005/05/06(金) 08:47:30とりあえず、Level6 "C" ではじまるものを集めるとこまで出来た。
0240デフォルトの名無しさん
2005/05/06(金) 09:26:34解.htmlには解.phpという文字列のみ。罠に嵌ったのかな。
0241デフォルトの名無しさん
2005/05/06(金) 09:36:340242デフォルトの名無しさん
2005/05/06(金) 09:53:430243デフォルトの名無しさん
2005/05/06(金) 11:06:56って言われてもさっぱり・・・
0244デフォルトの名無しさん
2005/05/06(金) 11:16:50ニホンジンの思考パターンは・・・・w
0245デフォルトの名無しさん
2005/05/06(金) 12:05:350246デフォルトの名無しさん
2005/05/06(金) 12:10:26プログラミングはアートなんだよ
もれは、Level6の最初のメッセージが得られない。
誰かヒント教えて。
0247デフォルトの名無しさん
2005/05/06(金) 13:24:170248221
2005/05/06(金) 13:57:29Level6は、html→zipに変更してダウンロードしたファイルを処理するとメッセージが書いてある。
そのメッセージが「○○を集めろ」なんだが、どこから集めてきたらいいのかがわからない。
ヒントくれ。
0249デフォルトの名無しさん
2005/05/06(金) 14:06:05Level7むずかしそう。
>>248
モジュールを使いこなすのだ。
0250デフォルトの名無しさん
2005/05/06(金) 14:35:00238がどうかしたの?
0251デフォルトの名無しさん
2005/05/06(金) 14:46:37>>250
読み方が違う。
0252デフォルトの名無しさん
2005/05/06(金) 15:32:090253デフォルトの名無しさん
2005/05/06(金) 16:02:24"banner.p"ってのの意味を考えもしたけど。
0254デフォルトの名無しさん
2005/05/06(金) 16:08:020255デフォルトの名無しさん
2005/05/06(金) 16:35:43後は結構簡単で、Lv9挑戦中。コーディング面倒っぽいな・・・
>>253
Pythonモジュール一覧を眺めながら、"peak hell"と唱えてみる。
0256デフォルトの名無しさん
2005/05/06(金) 17:31:302^38
0257デフォルトの名無しさん
2005/05/06(金) 18:37:270258デフォルトの名無しさん
2005/05/06(金) 18:38:470259デフォルトの名無しさん
2005/05/06(金) 18:57:48っうぇwwwwwwwwwwwwおkwwwっうぇっうぇ
おkwww
wっっっwwwwwwwwおkwww
wwwwwwwwwwwwっwwwwwwwww
0260デフォルトの名無しさん
2005/05/06(金) 19:01:190261デフォルトの名無しさん
2005/05/06(金) 19:15:440262デフォルトの名無しさん
2005/05/06(金) 19:16:240263デフォルトの名無しさん
2005/05/06(金) 19:35:05>>262
画像ビュアーで拡大すると何か分かるかも
0264デフォルトの名無しさん
2005/05/06(金) 19:56:51拡大したり一行おきに間引いたりしてんだけど解に結び付けられない・・・。
0265264
2005/05/06(金) 20:16:180266デフォルトの名無しさん
2005/05/06(金) 20:56:520267266
2005/05/06(金) 21:03:550268デフォルトの名無しさん
2005/05/06(金) 21:20:03これってLv4と関係ある?
どのモジュール使えばいいんだー
0269デフォルトの名無しさん
2005/05/06(金) 21:38:12ある規則で拾い読みするんだろうけど・・・一難さってまた一難、ぶっちゃけ(ry だ・・・
0270デフォルトの名無しさん
2005/05/06(金) 21:53:020272デフォルトの名無しさん
2005/05/06(金) 22:04:140273デフォルトの名無しさん
2005/05/06(金) 22:19:39URLにそのままいれてみたんだけどダメだったし。
もっとヒントありますか?
0274デフォルトの名無しさん
2005/05/06(金) 22:24:34>>216そのものじゃなくて、もう少し絞りこまないと。
0275デフォルトの名無しさん
2005/05/06(金) 23:38:47シャープの有無とか、よくわかんね。
0276デフォルトの名無しさん
2005/05/06(金) 23:45:04まぁお勉強スレだからな。
0277デフォルトの名無しさん
2005/05/07(土) 00:32:100278デフォルトの名無しさん
2005/05/07(土) 00:40:03「そんなページありません」だったら、トラップに引っ掛かってるからひとつ前に戻ってよく見る。
それともネットワーク的な問題で接続できないのか?
0279デフォルトの名無しさん
2005/05/07(土) 00:42:580280デフォルトの名無しさん
2005/05/07(土) 00:48:0830分ぐらいトップのページもアクセスできない状況だったんだけど、
さっき急に繋がるようになって、Lv5に進めました。
でも今度も難しそうだ・・・。
0281デフォルトの名無しさん
2005/05/07(土) 01:34:540282デフォルトの名無しさん
2005/05/07(土) 01:36:44"peak hell"ってドキュメントのどこにも見つからないんだけど。
chmファイルが見れない状況なんで、htmlダウンロードしてきたんだけど、
これじゃだめなのかなぁ?
0283デフォルトの名無しさん
2005/05/07(土) 01:55:31「answer is inside the XXX」ってあるだろ?つまりその中に「the XXXXXXXs」があるんだよ
>>282
それ、探すんじゃなくて「発音しろ」って書いてあるでしょ
で、俺はLevel10で意外に苦戦中。計算は合ってると思うんだが違うみたい。
長さを求めればいいんだよね?
0284282
2005/05/07(土) 02:19:16なるほどそういう意味か。でも、その部分は解決してて、
その後のデータがなにを意味するのかわからない。たして95のリストってのはわかったんだけど。
0285283
2005/05/07(土) 02:44:12ん〜・・・ほど良いヒントを出すのが難しい・・・
2ちゃんねらーだったら良く見るんじゃないのかなあ・・・。パズルですよ。
で、誰かおれにもヒントください。len(a[5])は何になります?
0286デフォルトの名無しさん
2005/05/07(土) 02:53:31>>284
man banner
>>285
6
0288263
2005/05/07(土) 03:51:49>>287
Level 6は結局のところ「Level 4+Level 5+α」みたいな。
ただ、正式な手順じゃなく力技でも解けそう。
0289デフォルトの名無しさん
2005/05/07(土) 04:30:31なるほど。やっとlv5クリアできた。
みんなよく気付くなぁ。
0290デフォルトの名無しさん
2005/05/07(土) 05:31:050291デフォルトの名無しさん
2005/05/07(土) 06:51:56逝ってきまつ。
0292291
2005/05/07(土) 07:28:450293デフォルトの名無しさん
2005/05/07(土) 09:47:260294デフォルトの名無しさん
2005/05/07(土) 13:45:540295デフォルトの名無しさん
2005/05/07(土) 14:18:32アーカイブのファイル一覧を見れば、なにやら普通のとはちょっと違う事に気付くと思う。
unixならunzip -lとか。
0296デフォルトの名無しさん
2005/05/07(土) 14:57:1395のリストってところまでわいけたんですが…。パズル…???
0297デフォルトの名無しさん
2005/05/07(土) 15:36:51文字になりません…。
0298デフォルトの名無しさん
2005/05/07(土) 16:19:26北チョソのマスゲーム
0299デフォルトの名無しさん
2005/05/07(土) 16:23:28zipにあんな機能があったなんて知らなかった・・・。ちょっと汚いな。
で、その後のページの意味がさっぱりで、未だにLv6。
誰か、HINTを。
0300デフォルトの名無しさん
2005/05/07(土) 16:25:37そこまでいったなら頭冷やせ。
0301デフォルトの名無しさん
2005/05/07(土) 16:25:51レベル7ってグレーのやつか。
ある処理でヒントが出てきたのなら、そのヒントに同じ処理すれば答えが出るよ。
0302デフォルトの名無しさん
2005/05/07(土) 17:55:25>>298
ありがとう。
解き方分かったからスクリプト書いて答えが出た時は感動しました。
0303デフォルトの名無しさん
2005/05/07(土) 19:08:51どういうこっちゃ...
0305デフォルトの名無しさん
2005/05/07(土) 22:38:12俺も文を読むところまでは出来たんだけど、そこからが全然。
0306デフォルトの名無しさん
2005/05/07(土) 22:45:460307デフォルトの名無しさん
2005/05/07(土) 23:24:39Python使いじゃないから厳しかった。
0308デフォルトの名無しさん
2005/05/07(土) 23:56:52いっそのこと答えを教えてくれ。
0309デフォルトの名無しさん
2005/05/08(日) 00:06:161024ってのは、2の何?
0310デフォルトの名無しさん
2005/05/08(日) 01:12:09>>308
いっそ、ずるして先進んじゃうとか。今、Lv0で0.htmlなんだから、先っていったら・・・。
0311デフォルトの名無しさん
2005/05/08(日) 01:15:37>>256に答え書いてある
0312デフォルトの名無しさん
2005/05/08(日) 03:18:010313デフォルトの名無しさん
2005/05/08(日) 03:59:470314263
2005/05/08(日) 04:01:37*********モジュールで電話帳につないで
《動詞》('《固有名詞》') で電話番号検索
Pythonならスクリプト書かなくても
コマンドラインモードでOK
0315デフォルトの名無しさん
2005/05/08(日) 04:12:07サンキュ。
あともうちょっとなんだよなぁ。番号の下7桁は分かった。
0316315
2005/05/08(日) 04:24:580317デフォルトの名無しさん
2005/05/08(日) 05:32:58Python以外で挑戦してる人って他にもいるかな?
0318デフォルトの名無しさん
2005/05/08(日) 05:54:35今回の問題のうち半数ぐらいはpythonで解いてるのではなかろうか。
0319307
2005/05/08(日) 06:12:32>>318
積極的にpython以外を使っているのではなくて、ただpythonを使えないだけ。
今のところ15まで解いて、pythonを使ったのは5、8、13だけ。
0320デフォルトの名無しさん
2005/05/08(日) 06:23:00さて、実際に自分でコーディングしたものかどうか。
0321デフォルトの名無しさん
2005/05/08(日) 06:26:55http://www.sabamiso.net/yoggy/hiki/hiki.cgi?Python+Challenge%A4%F2Ruby%A4%C7Challenge%A4%B7%A4%C6%A4%DF%A4%EB%A5%C6%A5%B9%A5%C8
0322デフォルトの名無しさん
2005/05/08(日) 06:37:140323デフォルトの名無しさん
2005/05/08(日) 06:46:47lv11の画像、俺の一^H二昔前の液晶だとすげーチラつくorz
こんなの初めて見た。
0324307
2005/05/08(日) 09:20:010325263
2005/05/08(日) 12:13:17キーワード分からん‥‥
>>324
あることをすると《変数名》が分かる
後は過去のLevelをいろいろとリサイクル
0326デフォルトの名無しさん
2005/05/08(日) 12:59:120327デフォルトの名無しさん
2005/05/08(日) 13:00:210328デフォルトの名無しさん
2005/05/08(日) 13:03:160329デフォルトの名無しさん
2005/05/08(日) 13:18:23decode messageってこのページ内に適応するの?
それとももっと後の方で使うhint?
0330デフォルトの名無しさん
2005/05/08(日) 17:02:27出現頻度で調べる?
0331デフォルトの名無しさん
2005/05/08(日) 17:31:28Lv.7は非標準ライブラリを使わないと解けない。
cygwin版pythonでも解けるのかな?
漏れはWindows版のpythonとライブラリをインストールした。
0332デフォルトの名無しさん
2005/05/08(日) 17:56:59おもひろいわ〜。
0333デフォルトの名無しさん
2005/05/08(日) 17:58:200334デフォルトの名無しさん
2005/05/08(日) 18:12:43http://d.hatena.ne.jp/shinichiro_h/20050507#1115402170
>結局 Python なんて微塵も使ってません。0 が bc 、1が手動、2,3が Perl のワンライナーで、後は全部 Ruby 。 Ruby/SDL 万歳。
0336デフォルトの名無しさん
2005/05/08(日) 18:24:120337デフォルトの名無しさん
2005/05/08(日) 18:53:14>ここから先はRubyだけではできないので,ここで中断.Python勉強しないとだめだなこりゃ(笑
>>334
0338デフォルトの名無しさん
2005/05/08(日) 18:53:320339デフォルトの名無しさん
2005/05/08(日) 19:01:02>結局ぼくには「やっぱりRuby信者はヤバイ」ということしかわからなかった。
0340デフォルトの名無しさん
2005/05/08(日) 23:14:51○○を分解して、文字は見えたのだけどそれをどう使うのか。。
ど〜しても解らない。
0341デフォルトの名無しさん
2005/05/08(日) 23:54:56わかった!
ちょっとだけFirefox(or Mozilla)と英語力がいるね。
0342デフォルトの名無しさん
2005/05/09(月) 00:19:37なんかずいぶんひっかけられたよ。
画像操作とかいろいろ。
0343デフォルトの名無しさん
2005/05/09(月) 03:12:220344デフォルトの名無しさん
2005/05/09(月) 03:13:160345314
2005/05/09(月) 03:29:35lv13はここまでの(とは言ってもlv7以降の)URL表記に似たURLを入力しないと
次に進めない。8桁全部入力する事にこだわらずいろいろ試してみて。
漏れは今はlv16...
砂の嵐。。
0346341
2005/05/09(月) 03:30:34名前間違えた。
×314
○341
0347デフォルトの名無しさん
2005/05/09(月) 06:14:160348デフォルトの名無しさん
2005/05/09(月) 18:52:14ある規則で塗りつぶすっていう方針は、あってますか?
「o** e***」 は関係ありますよね?
0349デフォルトの名無しさん
2005/05/09(月) 18:53:380351デフォルトの名無しさん
2005/05/10(火) 00:01:58残念でした的なページはいくつか見れたけど…
0352デフォルトの名無しさん
2005/05/10(火) 00:20:23最初の2文字に注目
0354デフォルトの名無しさん
2005/05/10(火) 08:45:261を手動でやったら怒られますが何か?
0355デフォルトの名無しさん
2005/05/10(火) 09:01:49winnyみたいなのつくりたいのですが。
0356デフォルトの名無しさん
2005/05/10(火) 09:19:41http://www.freedom-to-tinker.com/tinyp2p.html
これを参考にすればええんで内科医
0357デフォルトの名無しさん
2005/05/10(火) 10:14:08これは、これでおもしろいけど、GUIで使いやすいのがほしい。
0358デフォルトの名無しさん
2005/05/10(火) 20:46:18BitTorrentはPythonだよ。
0359デフォルトの名無しさん
2005/05/10(火) 21:46:20http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=14
を参考にやってみましたが、文字幅の取得がうまくいきません。
詳しく書くと、wglUseFontOutlines関数の最後の引数で、
GLYPHMETRICSFLOATのリストへのポインタを渡すようなのですが、
その渡し方がわかりません。
たぶんGLYPHMETRICSFLOATPtrというクラスを使うと思うのですが...
教えてください。お願いします。
0360デフォルトの名無しさん
2005/05/11(水) 08:00:560361デフォルトの名無しさん
2005/05/11(水) 08:13:41python.exeの代わりにpythonw.exeを使えばおk
0362デフォルトの名無しさん
2005/05/11(水) 14:37:030363デフォルトの名無しさん
2005/05/11(水) 15:04:12そんなことはないと思うけど、googleの助けが必要だと思う。
0364デフォルトの名無しさん
2005/05/11(水) 15:50:040365デフォルトの名無しさん
2005/05/12(木) 00:44:01自分の場合はbannerっていうのと' 'と'#'でピンと来てpython使わずに解いたのですが、
無理やりかなという感じで釈然としません。
どのへんがpythonなのでしょう?
0366デフォルトの名無しさん
2005/05/12(木) 01:05:52' ' と '#' からなるデータだと気付くためには?
0367デフォルトの名無しさん
2005/05/12(木) 01:10:540368デフォルトの名無しさん
2005/05/12(木) 13:40:210369デフォルトの名無しさん
2005/05/12(木) 19:25:56世界的には、perlの次くらいの人気らしいけど。
0370デフォルトの名無しさん
2005/05/12(木) 19:34:290371デフォルトの名無しさん
2005/05/12(木) 22:43:470372デフォルトの名無しさん
2005/05/12(木) 22:45:41pythonは厳しいよ。資料少なすぎ。(日本語の)
我ながらマゾだと思う。
0373デフォルトの名無しさん
2005/05/12(木) 22:58:01突き詰めれば「好きなもの使えばいいじゃん」(お仕事だとそうも言ってられないのは確かだが)なんで
このスレ住人はPythonを愛して行くってことでいいんジャマイカ。
とはじパイ1版を1/3で放置してる初心者以前が言ってみるテスト。
0374デフォルトの名無しさん
2005/05/12(木) 23:34:57資料は本家の完璧なドキュメント類の他は必要ない。
0375デフォルトの名無しさん
2005/05/13(金) 00:11:110376デフォルトの名無しさん
2005/05/13(金) 02:58:542109, 2965
0377デフォルトの名無しさん
2005/05/13(金) 10:12:380378デフォルトの名無しさん
2005/05/13(金) 11:19:50ソースも公開されてるし
0379デフォルトの名無しさん
2005/05/13(金) 17:22:390380デフォルトの名無しさん
2005/05/13(金) 17:37:420381デフォルトの名無しさん
2005/05/13(金) 18:20:08博士:何か疑問が生じたときは、とりあえずGoogleさんに聞いてみるといいよ。
太郎:ふーん。
博士:ウェブページの需要と供給はほぼ一致する、と仮定すれば
ページ数と言語使用者数には何らかの相関があると言える。
太郎:(嘘こけw)
博士:ここでは「○○ programming OR プログラミング」で検索してみることにしよう。
以下が○○の内容とオドロキの検索結果だ。
C OR C++、約 44,500,000 件
Basic、約 28,200,000 件
Java、約 26,200,000 件
PHP、約 19,900,000 件
Perl、約 11,300,000 件
Python、約 6,260,000 件
C#、約 3,460,000 件
Fortran、約 1,680,000 件
Pascal、約 1,670,000 件
Ruby、約 1,210,000 件
博士:Pythonは善戦しているね。
太郎:(ぴちょん弱ぇ〜w)
0382デフォルトの名無しさん
2005/05/13(金) 18:31:490383デフォルトの名無しさん
2005/05/13(金) 20:33:49自分の場合はライブラリの移植経験があったから、
Lv5をとりあえずrubyで。http://d.hatena.ne.jp/teamikl/20050508
出現頻度が低い ' ' と '#' が重要なデータだと気付くのって...?
よければ、どういう過程で解いたか教えて下さい >>365
0384デフォルトの名無しさん
2005/05/13(金) 20:54:250385デフォルトの名無しさん
2005/05/13(金) 22:48:01rubyって存在価値あるの?(反語)
0386デフォルトの名無しさん
2005/05/13(金) 23:14:530387デフォルトの名無しさん
2005/05/13(金) 23:19:18blenderで感動しろ
0388デフォルトの名無しさん
2005/05/13(金) 23:24:38本買った。Linux&OOSのアピールにちょっと使った。
でもパイパン使ってるとは知らなんだ
0389デフォルトの名無しさん
2005/05/13(金) 23:52:590390スーパー・スリーパー
2005/05/13(金) 23:59:55有名だけど使ってる奴が少ない言語が組み込まれてるの。
・WinCVSとTcl
・GIMPとSCM
・EmacsとLisp
ダメだ、自虐になってる orz
0391デフォルトの名無しさん
2005/05/14(土) 00:02:490392デフォルトの名無しさん
2005/05/14(土) 00:04:240393デフォルトの名無しさん
2005/05/14(土) 00:05:390394デフォルトの名無しさん
2005/05/14(土) 00:09:12http://fedora.redhat.com/projects/anaconda-installer/
0395デフォルトの名無しさん
2005/05/14(土) 00:17:11「ニシキヘビが丸呑みできなかった」とか。
0396デフォルトの名無しさん
2005/05/14(土) 01:53:12流行りのソフトだとiPodderとか。
0397デフォルトの名無しさん
2005/05/14(土) 02:02:00はじめてみるソフトだが流行っているのか?
0398デフォルトの名無しさん
2005/05/14(土) 02:55:23ベーシックっていまだに人気あるのか??
ちょっと裏がありそう。
0399デフォルトの名無しさん
2005/05/14(土) 03:12:36VB
0400デフォルトの名無しさん
2005/05/14(土) 04:19:320401デフォルトの名無しさん
2005/05/14(土) 04:55:24>>381
0402デフォルトの名無しさん
2005/05/14(土) 06:14:29basics Ruby programming とか basic GUI programming with wxPython
とかも山程引っ掛かるよなあ。
basicのヒット数の主要因が399が示唆する通りVBだとすると、
(vb OR "visual basic") programmingで出る6,370,000の方が
妥当な数字だと思うが。
0403デフォルトの名無しさん
2005/05/14(土) 08:18:47「basic skills needed to program Python are...」
とか
「In Python, it is basically a matter of...」
なんて書いてあっても検索に引っかかっちゃうんじゃないの?
0404デフォルトの名無しさん
2005/05/14(土) 11:07:040405デフォルトの名無しさん
2005/05/14(土) 12:34:150406デフォルトの名無しさん
2005/05/14(土) 17:17:38検討もつかない
0407デフォルトの名無しさん
2005/05/14(土) 20:03:480408デフォルトの名無しさん
2005/05/14(土) 22:08:07どなたかhintください
0409デフォルトの名無しさん
2005/05/14(土) 22:41:470410デフォルトの名無しさん
2005/05/14(土) 22:43:42http://dictionary.goo.ne.jp/
0411デフォルトの名無しさん
2005/05/14(土) 22:49:44ありがと。形にはなったんだけどどう答えたらいいのかわからなくて
0413デフォルトの名無しさん
2005/05/15(日) 02:09:47ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html
0414デフォルトの名無しさん
2005/05/15(日) 02:36:160415デフォルトの名無しさん
2005/05/15(日) 02:58:460416デフォルトの名無しさん
2005/05/15(日) 02:59:12配列にアクセスしないようにプログラムを組めばいいから、
配列へのアクセスが遅い問題は実用上解決しているよ。
実際、Pythonでは配列はあまり使われてない。
0417デフォルトの名無しさん
2005/05/15(日) 04:30:18そこのリンクにある比較サイト(今はnot foundなので,archive.org参照)のコードだけど、
配列のアクセスよりforループのコストの方が大きいので、そのような結果になってる。
ボトルネックになってる部分は、Iterator。
for k in xrange(1000):
for i in xrange(num-1,-1,-1):
y[i] += x[i]
...だけど、while文に書き直すだけで早くなるよ。psycoでの最適化も有効。
C++に較べると遅いのは確かだけど、そこに書かれてる程酷くはない。
Pythonのリストの実装見ればわかるけど、配列の各要素は
連結リストではなく、メモリ上に連続して並んでるので、
アクセス速度は配列サイズに関わらず一定になる。
0418デフォルトの名無しさん
2005/05/15(日) 05:08:06ぷぷぷぷはぷぷwぷwぷwぷぷwぷぷwぷwぷwっうぇ
おkぷぷぷおkぷぷぷwぷぇぷwぷぷぷぷぷ
ぷwみぷぷwぷw
wぷぷぷ
おkぷぷぷぷぇぷwぷっうぇ
0419うんこ
2005/05/15(日) 12:38:08if callable(fn):
def logfn(*args):
print "calling %s%s ..." % (fn.__name__, args)
r = fn(*args)
print "%s%s => %s" % (fn.__name__, args, r)
return r
return logfn
else:
raise TypeError, "callable object required, but got %s" % fn
fact = log(fact) ; print fact(2)
0420うんこ
2005/05/15(日) 12:56:34if callable(fn):
class Log:
def __init__(self):
self.indent = 0
def __call__(self, *args):
white = " " * self.indent
print white + "calling %s%s ..." % (fn.__name__, args)
self.indent += 1
r = fn(*args)
self.indent -= 1
print white + "%s%s => %s" % (fn.__name__, args, r)
return r
return Log()
else:
raise TypeError, "callable object required, but got %s" % fn
0421デフォルトの名無しさん
2005/05/15(日) 18:35:350422デフォルトの名無しさん
2005/05/16(月) 07:26:02で、そこのサイトのディレクトリにMod_pythonのマニュアルが置いてあった。
クラッカーが置いていったのかな?
【kakaku.com】データ改ざん、閲覧者ウイルスに感染
http://news19.2ch.net/test/read.cgi/news/1116186996/
0423デフォルトの名無しさん
2005/05/16(月) 10:16:26http://kakaku.com/manual/mod/
0424デフォルトの名無しさん
2005/05/16(月) 15:49:460425デフォルトの名無しさん
2005/05/16(月) 16:50:32エラーメッセージから、向うが何であるかを推測しよう。
0426デフォルトの名無しさん
2005/05/16(月) 20:59:07XML-RPC か php くらいしか思いつかん。
>>424
13で詰まり同士ハケーン
黄色くて悪いやつの名前まではわかったみたいなんだが、どうやって電話をかけるのかがサパーリ
0427デフォルトの名無しさん
2005/05/16(月) 21:55:17あと一息だ。想像力と和英辞書で乗り切れ。
0428デフォルトの名無しさん
2005/05/16(月) 23:24:28pythonでimport zipfile使って
"Collect the comments."まで出ましたが、
コメントがサッパリデス。
ヒント下さい。
0429デフォルトの名無しさん
2005/05/17(火) 00:22:12zipアーカイブのある機能に気づくかも。
0430デフォルトの名無しさん
2005/05/17(火) 06:17:00気づいても得た結果をどうしたらいいのか
分からない。ここらへんが俺の限界。
0431デフォルトの名無しさん
2005/05/17(火) 09:19:52もう一度似たような事をするんだ
0432デフォルトの名無しさん
2005/05/17(火) 15:24:080433426
2005/05/17(火) 16:33:36電話番号の使い方がわかんないデスよ(苦笑)。
旅行したことくらいはあるので数字になおすんだろう、まではわかるんだけど。
引き算してみたりもしたけど 404。
>> 430
コマンドラインのunzip ツールを使ってみましょう。
0434デフォルトの名無しさん
2005/05/17(火) 16:47:380435デフォルトの名無しさん
2005/05/17(火) 17:43:54それぞれの数を数えてみたり、zip(list1, list2)を使うのかな?とか、見当外れ?
0436デフォルトの名無しさん
2005/05/17(火) 18:30:25最初のコードにちょっと足すだけ
0437デフォルトの名無しさん
2005/05/17(火) 20:21:10http://mail.python.org/pipermail/python-list/2005-May/280070.html
大体2倍ぐらい速くなるらしい
0438デフォルトの名無しさん
2005/05/17(火) 21:03:50特定のベンチマークで?ではないのかな。
何らかのコンセプトに基づいた最適化をしてるわけではないみたい。
拡張性や柔軟性を犠牲にしてるだけのような印象を受ける。互換性もなくなってるし。
手元のコードで試してみたところ、psycoの方が早かった。
0439デフォルトの名無しさん
2005/05/17(火) 21:28:25言ってる事は間違ってないとは思うけど、随分保守的だな
0440デフォルトの名無しさん
2005/05/18(水) 00:00:34zipinfoでコメント集めてQ5のような
文字が出て、取りに行くと
it's in the air. look at the letters.
と言われその後、やっとこさQ7に行けましたが...
変なpngでまた頓挫。
けれどみんな色んなヒントありがとうございます。
ガンバリマス。
0441デフォルトの名無しさん
2005/05/18(水) 00:06:120442デフォルトの名無しさん
2005/05/18(水) 00:09:200443デフォルトの名無しさん
2005/05/18(水) 00:38:35gfxから画像を二枚取り出せたけど、結局その二つが意味するものが全然ワカラン。
0444デフォルトの名無しさん
2005/05/18(水) 02:28:01> 旅行したことくらいはあるので数字になおすんだろう、まではわかるんだけど。
余計なことは考えるな。
>>443
もっと沢山入ってるぞ。
0445デフォルトの名無しさん
2005/05/18(水) 08:39:27pyvm was not written to be a replacement for CPythonとREADMEにも書かれてた。
ソースが小さいとの事なので、組み込み分野向けに発展すれば期待できると思う。
0446デフォルトの名無しさん
2005/05/18(水) 17:17:11def write(self, s=""):
pass
import sys ; sys.stdout = sink()
print "hage!!!!!!!!!!!!1111111"
0447435
2005/05/18(水) 17:49:23ヒント貰っても、何故にこれほどまでに!?ってぐらい何も思いつかないのは、ひとえに私の知識不足だろうなぁ。。。
0448デフォルトの名無しさん
2005/05/18(水) 18:21:08副作用が気持ち悪いって意図かもしれないが、有効な利用方法を考えてみると
>>> import sys
>>> from StringIO import StringIO
>>> sys.stdout = StringIO()
>>> print "foo bar ..."
>>> log = sys.stdout
>>> sys.stdout = sys.__stdout__
>>> print log.getvalue()
同時に、weriteメソッド内でファイルへ出力すればteeみたいな事も出来る。
入力が必要なプログラムの自動化なども。(pipeやexpect使うべきなんだろうけど)
>>> sys.stdin = StringIO("hoge\n")
>>> raw_input("")
'hoge'
0449デフォルトの名無しさん
2005/05/18(水) 19:31:210450デフォルトの名無しさん
2005/05/18(水) 19:59:24何行ぐらいのコード?
0451449
2005/05/18(水) 20:01:270452443
2005/05/18(水) 22:46:16ありがとう…無駄なデータかと思ってたよ…
取り出せた〜( ´ー`)
けど、何を意味してるのかやっぱりワカランorz
まだ全部取り出せてないんだろうか…
オフセット内のは全部拾ったつもりなのだが
0453430
2005/05/19(木) 02:36:23ありがとう。お陰でやっと解けた。
0454デフォルトの名無しさん
2005/05/19(木) 04:29:080455デフォルトの名無しさん
2005/05/19(木) 23:14:240456デフォルトの名無しさん
2005/05/20(金) 00:00:340457デフォルトの名無しさん
2005/05/21(土) 08:57:01リンク辿ったり、フォームに特定の値書きこんで送信して、応答が期待通りかチェックするような。
0458デフォルトの名無しさん
2005/05/21(土) 10:45:540459デフォルトの名無しさん
2005/05/21(土) 11:12:52ライブラリパス直下にxxxディレクトリがあって、その中にyyy.pyがあるときに、
python -m xxx.yyy
とかやりたいのだけれど。
0460デフォルトの名無しさん
2005/05/21(土) 22:38:11mechanize
installがちょいめんどいけど。
0461デフォルトの名無しさん
2005/05/22(日) 01:18:11try:
#do something
except:
print "error"
エラーが発生してexceptに飛んだ時にエラーの種類、内容を取得する方法はありますか?
0462デフォルトの名無しさん
2005/05/22(日) 01:59:32____#do something
except Exception, e:
____print e
ttp://www.python.jp/doc/release/tut/node10.html
くわしくはここを見てください。
0463426
2005/05/22(日) 16:50:05>> 444
いじりすぎてただけか。ありが屯。とけたときがっくしした。
14は簡単だったが・・・.357 は、ほぼ 9mm だがどうしたものか
0464デフォルトの名無しさん
2005/05/22(日) 17:04:440465デフォルトの名無しさん
2005/05/22(日) 17:59:21try:
#do something
except:
print '%s: %s' % (sys.exc_type, sys.exc_value)
0466デフォルトの名無しさん
2005/05/22(日) 18:16:24参照渡しのイメージ映像・・・
def add(*a,b):
*a+=b
a = 1
add(&a,1)
print(a) #a=2
0467デフォルトの名無しさん
2005/05/22(日) 18:31:13ちょっとアクセスが面倒だけど。
0468デフォルトの名無しさん
2005/05/22(日) 19:07:580469デフォルトの名無しさん
2005/05/22(日) 19:43:05... def __init__(self,n): self.n = n
...
>>> def add(a,b):
... a.n += b
...
>>> a = Int(1)
>>> add(a,1)
None
>>> print a.n
2
0470デフォルトの名無しさん
2005/05/22(日) 19:44:13>>> def add(a,b):
... a[0] += b
...
>>> a = [1]
>>> add(a,1)
None
>>> print a
[2]
0471デフォルトの名無しさん
2005/05/22(日) 20:29:47昔のCygwinだとインストールしようとしたらエラーが出てゴミ取りが大変だったけど。
0472デフォルトの名無しさん
2005/05/22(日) 20:30:55色々とCと比較する簡単なコードを書いて、Pythonで何かをするときの
方法を整理して勉強いるだけなので、なぜと言われても困ります。。。
>>469
ありがとうございます。でもちょっとまだ何をやってるのかわかりません・・・
>>470
配列などのオブジェクトにするしかないんですかね・・・。オブジェクトは
ポインタを渡すことになるので、参照渡しになるのは理解できるんですが、
普通の変数のポインタを渡したりはできないんでしょうか・・・。
ありがとうございます。
0473デフォルトの名無しさん
2005/05/22(日) 20:35:10整数値,文字列,タプルなどのオブジェクトは不変オブジェクトなので変更できない。
変数が不変オブジェクトを参照する場合は、
a = 1
b = 1
としたとき、a と b は、同じアドレスに作られた値を参照していて。a = 2 と新たな値を代入する場合は、
変数 a が新たな値を参照するようになるだけで、変数 b の参照する値はそのまま。
こういった仕組みになっているので、仮に参照を渡せたとして、aの参照するアドレスの値を書き換えた時、bの値も代わってしまう事になる。
ということで、不変オブジェクト(定数)に対してそのような副作用のある操作は出来ないようになってる。
weakrefなど、参照を作るモジュールもあるが、上の理由からprimitive型に対しては使えない。
クロージャを提案したいとこだけど、Pythonのは
参照は出来るけど(不変オブジェクトの)変更は出来ないなんて制約があるんだよなぁ。
前置き長くなったけど、解決策としてとりあえず思いついたもの。
A) 設計を変更する。
B) aを配列やユーザー定義のオブジェクト等に入れて渡す。
C) frameオブジェクトを参照し、別スコープの変数へ代入。(debug目的以外お勧めしないが)
0474デフォルトの名無しさん
2005/05/22(日) 20:50:28http://www.panda3d.org/
おもしろいもん見つけてきたお
Pythonで本格的なゲームを作れる開発環境
ディズニー開発、ディズニーとカーネギーメロン大学が保守してる
オープンソースで無料で使えるのが(・∀・)イイ!!
もともとディズニーがゲームを作るために作ったものでオプソにありがちな絵に描いた餅じゃない
マニュアル、チュートリアルも英語ながら充実してるしどうよ?
0475デフォルトの名無しさん
2005/05/22(日) 21:03:17最近試したけどlibpython2.4が見つからないとかいってインストールできないみたい
libpython作るためにPythonの再構築からする必要があるかも
0476デフォルトの名無しさん
2005/05/22(日) 21:46:40ライセンス読むのめんどいから要約してw
0477デフォルトの名無しさん
2005/05/22(日) 22:51:05cygwinのdistutilsはちゃんとライブラリ名拡張してくれてるはずだから
きちんと対応していないnumpy側が悪いんじゃねーの?
0478おかしくね?
2005/05/23(月) 00:01:340479デフォルトの名無しさん
2005/05/23(月) 00:25:520480デフォルトの名無しさん
2005/05/23(月) 00:53:06これではまったことある。
0481おかしくね?
2005/05/23(月) 01:17:560482461
2005/05/23(月) 12:29:17お礼が遅れました。ごめんなさい。
どちらでも実現出来ました。ありがとうございます。
ドキュメント読みながらさらに理解を深めたいと思います。
0483デフォルトの名無しさん
2005/05/23(月) 12:32:51*.py プログラムって *.exe にコンパイルできるん?
0484デフォルトの名無しさん
2005/05/23(月) 12:55:320485デフォルトの名無しさん
2005/05/23(月) 20:04:32もうすこし具体的な便利さを語ってほすぃ
0486デフォルトの名無しさん
2005/05/23(月) 22:04:12たとえば2つの数値を足す関数 add() があるとする罠。
その関数の docstring にインタプリタでの実行例と実行結果を
こんな具合に書いておく。
def add(x, y):
"""Adds two numbers.
Example:
>>> add(1, 2)
3
>>> add(1+3j, 2-2j)
(3+1j)
"""
return x + y
さらにスクリプトの最後に以下のおまじないを追加。
if __name__ == "__main__":
import doctest
doctest.testmod()
するとこのスクリプトを実行するだけで、docstring の中の実行例が
実際に実行されて、docstring の中の実行結果と合っているかどうか
自動的にチェックしてくれるんだYO! マジすごくね?
0487デフォルトの名無しさん
2005/05/23(月) 22:05:45Winならpy2exe
Macならpy2app
0488デフォルトの名無しさん
2005/05/24(火) 00:53:16配布や販売は自由
あとはオプソ関連のこと書いてた
0489デフォルトの名無しさん
2005/05/24(火) 01:02:40GPLスタイルなのかBSDスタイルなのかそこが問題だ
0490デフォルトの名無しさん
2005/05/24(火) 08:38:240491デフォルトの名無しさん
2005/05/24(火) 09:08:17このソフトウェア自身のコードの改変についてはライセンスを
変更できないみたいだけど、
このソフトウェアをライブラリとして利用するソフトウェアについては
なにも言及がないように読める。(読み間違えでなければ)
なので実質は LGPL か?
あと、変更したら90日以内に [email protected] に
変更したもののソースを送れ、とも書いてあるな。
0492デフォルトの名無しさん
2005/05/24(火) 09:41:550493デフォルトの名無しさん
2005/05/24(火) 10:09:330494デフォルトの名無しさん
2005/05/24(火) 12:07:38うをー、これメッチャ凄いやん
ドキュメント生成とモジュールテストという面倒くさい二大作業が一発でできるなんて…
教えてくれてサンクス
0495デフォルトの名無しさん
2005/05/25(水) 07:16:21動画ファイルの長さ、ビットレートなど、各種メディアファイルの情報を取得できるようなモジュールはありますか?
用はWindows上のファイル右クリックのプロパティで表示されるような内容を取得できるもの。
0496デフォルトの名無しさん
2005/05/25(水) 11:05:27もしそうだったらイラネ。
0497デフォルトの名無しさん
2005/05/25(水) 11:38:31中置算術演算子が使える言語が、識別子にマイナス記号を使えないのは
当然だと思うがどうよ。
0498デフォルトの名無しさん
2005/05/25(水) 12:33:39(俺にとっては)別にー。マイナスする時はスペースを前に加えるようにすればええやん。
(まあ、いつもスペースいれる癖のないやつは痛いだろうがな)
やっぱ lisp 系かな。
0499デフォルトの名無しさん
2005/05/25(水) 12:59:180500デフォルトの名無しさん
2005/05/25(水) 13:16:22画像なら Python Imaging Library (PIL) が使える。
動画については知らん。
0501デフォルトの名無しさん
2005/05/25(水) 13:30:44lisp系で - を識別子に使うのは、名前空間に使う場合が多いはずだけど、
Pythonの場合は、クラスやモジュールにまとめる方がわかりやすい。
識別子にprefixで名前空間を与える方法に較べて、カプセル化で名前空間を識別する場合は、
string自体が可搬で、別名の変数に入れてアクセスしたりも出来る、などの利点あり。
ローカルな一時変数の名前に使いたいといったケースには合わないが。
lisp系に乗り換えるとしても、"-"が識別子に使えないからと言う理由はどうかと思うよ。
closure内でローカル変数に代入できないとか、もっと致命的な問題はたくさんあるのに。
0502デフォルトの名無しさん
2005/05/25(水) 14:04:230503デフォルトの名無しさん
2005/05/25(水) 14:15:42てか、全体的に lisp の方が自由度高くない? (まあこれが諸刃の剣にもなり得るのだけど。)
501 が common lisp とか lisp 系言語を知っていると仮定して、どう思うよ?
それと、どっちがプログラミングしてて楽しい?
俺にとってはこれが一番大事。
>>502
- があった方がプログラムが見やすい。それに - の方が _ より打ちやすい。
0504デフォルトの名無しさん
2005/05/25(水) 14:17:180505デフォルトの名無しさん
2005/05/25(水) 14:20:47煽りはいいから。
0506デフォルトの名無しさん
2005/05/25(水) 14:25:34自由度だけにこだわるんなら、それこそアセンブラや機械語だと何でもありだと思うけど。
楽しいか楽しくないかは、その人のバックグランドにも大きく依存するし。
今どきの計算機科学を基礎からきちんと専攻した人間なら、Pythonと比べて特
にLISPを好むはずもないし。
> 俺にとってはこれが一番大事。
たぶん旧式なのか叩き上げなんですね。
> - があった方がプログラムが見やすい。それに - の方が _ より打ちやすい。
なんか非常に低水準な話だなあ。Rubyの教祖みたいだよ、そんなんじゃ。
0507デフォルトの名無しさん
2005/05/25(水) 14:29:12似非Lisperは()の中へお帰り。
0508デフォルトの名無しさん
2005/05/25(水) 16:30:03「自由度」が何を意味しているのか分からないけど
Common Lisp と Python でそれぞれ何万行か書いた経験から言って
Python の方がプログラミングしていて楽しいよ。
便利なモジュールがたくさんあって楽ができるという点でも
Python の方に軍配が上がる。
昔話:俺が使っていた Lucid Common Lisp にはロクなモジュールがなくて
RDBMS と Tcl/Tk を各々 Lisp 側から利用するためにモジュールを自作したりして
なかなか大変だった。
でも Lisp も好きだよ。Emacs Lisp は今も常用しているしね。
インタプリタでボトムアップで開発できるところがいい。
Lisp が好きな人は Python も好きになれると思う。
好きになれないとしたら食わず嫌いだと思われ(笑)
0509デフォルトの名無しさん
2005/05/25(水) 16:38:06> 残念ながら、Pythonは式中のスペース等詰めて書く傾向がある。
これどういう意味?(素で分からん)
0510デフォルトの名無しさん
2005/05/25(水) 17:41:47> lisp系で - を識別子に使うのは、名前空間に使う場合が多いはずだけど、
それはパッケージ機構のないEmacsLispの命名慣習の話じゃないの?
それ以外にもLispでは複数の英単語をつなげるとき普通に "-" を使う。
Cだと my_cool_identifier
Javaだと myCoolIdentifier
Lispだと my-cool-identifier
0511デフォルトの名無しさん
2005/05/25(水) 18:01:370512501
2005/05/25(水) 20:32:51>>496, >>498 読み直しても、どういう意図なのかわからないのだけど...、構文の自由度って意味?
識別子については、[a-zA-Z_]しか使えないからと言って別に不自由に感じた事はないなぁ。
自分の場合、Iispでfoo-barと書いてるところは、Pythonでは大抵foo.barと書けるようにクラス設計する。
一時変数などの場合でも、メソッド内に処理書けば、スコープが自明な為、prefix外せる場合が殆んど。
ところで、"_"が打ち難いのであれば、Pythonは向いてないかも知れないよ。
__name__, __init__, __main__, __call__, __iter__, ... とか、pythonではたくさん_使う。
>>509
PEP8 (Style guide) 式や文の中のホワイトスペースの辺り。
算術演算子周りは各自の判断で一貫性を保つのが推奨されてるけど、
引数に式を書く時などは詰められる事が多いです。max(a + b, c - d) => max(a+b, c-d)
http://www.oldriver.org/python/pep-0008j.html
0513デフォルトの名無しさん
2005/05/25(水) 20:47:05もしそうだったらイラネ。
0514デフォルトの名無しさん
2005/05/25(水) 21:11:00括弧も打ちにくいのではないかと、ふとオモタ。
0515デフォルトの名無しさん
2005/05/25(水) 21:43:460516デフォルトの名無しさん
2005/05/25(水) 22:30:39>今どきの計算機科学を基礎からきちんと専攻した人間なら、Pythonと比べて特
>にLISPを好むはずもないし。
上で出てたクロージャの件とか
SICP で Scheme に目覚めたとか
コンパイラ方面の人とか(最近は ML かな)
0517デフォルトの名無しさん
2005/05/25(水) 22:36:12>今どきの計算機科学を基礎からきちんと専攻した人間なら、Pythonと比べて特
>にLISPを好むはずもないし。
それにしても すごい決め付け
0518デフォルトの名無しさん
2005/05/26(木) 00:43:26それを認めようとしない低能リスパはきっとまともオブジェクト指向
もできないに違いないWWWWWWWWW
0519デフォルトの名無しさん
2005/05/26(木) 00:44:03(define call/cc call-with-current-continuation)
call.with.current.continuation だと意味分かんない
しかし Lisp の話はスレチガイだな
>>512
__main__ とか __call__ とかってちょっと気持ち悪くない?
コードの中で浮いてる気がする
0520デフォルトの名無しさん
2005/05/26(木) 00:54:33>コードの中で浮いてる気がする
敢えて浮かしてる、ということもあるんじゃなかろうか。
気持ち悪い、ということについてはこりゃ好きずきかな。
俺は'_'どんとこい派? なのでキモイとまでは思わない。
0521デフォルトの名無しさん
2005/05/26(木) 00:58:120522デフォルトの名無しさん
2005/05/26(木) 05:13:390523デフォルトの名無しさん
2005/05/26(木) 05:59:300524デフォルトの名無しさん
2005/05/26(木) 10:15:090525デフォルトの名無しさん
2005/05/26(木) 10:17:54>lisp系で - を識別子に使うのは、名前空間に使う場合が多いはずだけど、
本筋とは関係ないが、名前空間というかモジュールの区切りにはコロンを使う。
FOO モジュールの BAR 関数は FOO:BAR とか FOO::BAR になる。
0526デフォルトの名無しさん
2005/05/26(木) 13:50:320527デフォルトの名無しさん
2005/05/26(木) 14:18:12話題があって、いろいろなコーディングスタイルを検討してたけど、最後にいっそのこと、
インデントを文法に組み込んでbegin,endはなくしたらいいみたいなことが書いてあった。
0528デフォルトの名無しさん
2005/05/26(木) 14:18:350529デフォルトの名無しさん
2005/05/26(木) 14:28:14rubyは日本限定のローカル言語だよ
0530デフォルトの名無しさん
2005/05/26(木) 14:44:390531デフォルトの名無しさん
2005/05/26(木) 15:48:290532デフォルトの名無しさん
2005/05/26(木) 15:56:26en.wikipedia.org で Python と Ruby の記事の大きさを比べてみな。
http://en.wikipedia.org/wiki/Python_programming_language
http://en.wikipedia.org/wiki/Ruby_programming_language
三、四倍は違うよね? それと記事更新の回数も数えてみな。
Python の方が人気があるって確実にわかるから。
Python の方が人気があるって事実は Google での世界全部を対象としたヒット
数でもわかると思うよ (2倍以上 Python が上)。
0533デフォルトの名無しさん
2005/05/26(木) 16:00:500534デフォルトの名無しさん
2005/05/26(木) 16:02:59君は英語が読めないようだね・・・
プログラマーには向いてないね。
0535デフォルトの名無しさん
2005/05/26(木) 16:23:130536デフォルトの名無しさん
2005/05/26(木) 16:25:410537デフォルトの名無しさん
2005/05/26(木) 17:13:050538デフォルトの名無しさん
2005/05/26(木) 19:09:10真の兵はMindを使います。
0539デフォルトの名無しさん
2005/05/26(木) 21:27:590540デフォルトの名無しさん
2005/05/26(木) 22:11:34インデントを文法に組みこむのは昔の bit の記事にあったような。
20年前といったら Occam が出たか出ないかの頃かな。
0541デフォルトの名無しさん
2005/05/26(木) 22:26:570542デフォルトの名無しさん
2005/05/26(木) 23:45:192chネラーには
むしろ向いてる気がする
0543デフォルトの名無しさん
2005/05/27(金) 00:19:480544デフォルトの名無しさん
2005/05/27(金) 01:07:410545デフォルトの名無しさん
2005/05/27(金) 04:16:04Haskell はインデントが意味をもつけれども ML は関係ないのでは?
実用言語としては Occam がインデントで構文を表わそうとした最初の言語だと思う。
ホアが関係していること、独特の並列処理構文をそなえていることで一時雑誌記事が
多かった。
0546デフォルトの名無しさん
2005/05/27(金) 12:01:21それらは全てシンタックスが汚すぎ。
おまえ、糞っぽいエディターしか使えないだろ?
0547デフォルトの名無しさん
2005/05/27(金) 14:02:26http://diveintopython.org/
コレの日本語翻訳版を作るっていう話が前にあったみたいだけど、いまどーなってんだ?
http://www.python.jp/pipermail/python-ml-jp/2001-November/000817.html
0548デフォルトの名無しさん
2005/05/27(金) 14:15:220549デフォルトの名無しさん
2005/05/27(金) 14:18:32perlが英語を母語にする人に浸透した理由を考えると、
「なでしこ」の将来は明るいような・・
0550デフォルトの名無しさん
2005/05/27(金) 14:37:250551デフォルトの名無しさん
2005/05/27(金) 14:37:46「○○○○」は、かなり使えるのでは・・?
△△△△が□□□□を母語にする人に浸透した理由を考えると、
「○○○○」の将来は明るいような・・
0552デフォルトの名無しさん
2005/05/27(金) 14:51:41gvimしか使えません。。。すいません・・・
0553デフォルトの名無しさん
2005/05/27(金) 14:57:20数えるほどしかない予約語すら覚えられない奴は、頭脳労働は辞めるべきだな。
0554デフォルトの名無しさん
2005/05/27(金) 15:00:13そんなに卑下しなくてもいいよ
0555デフォルトの名無しさん
2005/05/27(金) 15:01:310556デフォルトの名無しさん
2005/05/27(金) 15:12:320557デフォルトの名無しさん
2005/05/27(金) 15:23:270558デフォルトの名無しさん
2005/05/28(土) 00:48:52公開者側ソース(192.168.0.2で動かす)
class MyClass:
def f(self):
print "hello world"
mine=MyClass()
s=objectsocket(..., mine)
s.bind(...)
s.accept()
利用者側ソース
s = objectsocket(...)
mine = s.connect(('192.168.0.2', PORT))
mine.f() #公開者側のコンソールにhello worldが表示される
こんなかんじなのを可能にしてくれるライブラリはありますか?
0559デフォルトの名無しさん
2005/05/28(土) 01:07:06標準ライブラリないだとxmlrpcがそれに近いかな。
プロトコルについてはtwistedとかだとS式ベースのとか、他にもある。
0560デフォルトの名無しさん
2005/05/28(土) 01:17:00http://www.google.co.jp/search?q=CORBA+Python
0561デフォルトの名無しさん
2005/05/28(土) 05:50:44http://pyro.sourceforge.net/
0562デフォルトの名無しさん
2005/05/28(土) 21:59:38お手っ! お座りっ! ちんちんっ!
0563558
2005/05/29(日) 02:12:180564デフォルトの名無しさん
2005/05/29(日) 09:43:17http://effbot.org/zone/books.htm
http://effbot.org/zone/librarybook-index.htm
0565ボッキー谷村 ◆XovXppFfGM
2005/05/29(日) 11:10:09みんな応援しろ
0566デフォルトの名無しさん
2005/05/29(日) 11:15:500567ボッキー谷村 ◆XovXppFfGM
2005/05/29(日) 18:50:16あんがとな。
今日微妙にやってみたけど、 Python ほとんどわかってきたわ。
参考にしたウェブサイトは
ttp://rgruet.free.fr/PQR24/PQR2.4.html
ttp://docs.python.org/
ttp://www.byteofpython.info/
ttp://diveintopython.org/
とか。今度は
Python cookbook
ttp://aspn.activestate.com/ASPN/Python/Cookbook/
でも見てみることにしよう。
0568デフォルトの名無しさん
2005/05/30(月) 14:56:120569ボッキー谷村 ◆XovXppFfGM
2005/05/30(月) 18:30:59ところで、なんで↓
import commands
output = commands.getoutput( "ls" )
print map( lambda element : if element.endswith( ".rm" ) : element , output.split( "\n" ) )
がシンタックスエラーになるのかと思ってたら、
lambda_form ::=
"lambda" [parameter_list]: expression
なのね。 この lambda ってなんか偽物っぽい・・・
正直、
lambda_form ::=
"lambda" [parameter_list]: statement
にしてほしかったわ。(でもシンタックスの問題があってできなかったんだろうね。)
0570ボッキー谷村 ◆XovXppFfGM
2005/05/30(月) 18:34:37びっくりしたわ。
ttp://www.python.org/doc/current/index.html
に行けばほとんどが網羅されてるんじゃないか?
俺のお勧めは
ttp://www.python.org/doc/current/lib/lib.html
おい。みんななにしてるんだ?
0571デフォルトの名無しさん
2005/05/30(月) 19:08:33filter(lambda elt: elt.endswith(".rm"), output.split("\n"))
それか、これ。
[ elt for elt in output.split("\n") if elt.endswith(".rm")]
0572ボッキー谷村 ◆XovXppFfGM
2005/05/30(月) 19:36:57filter いいね。
でも、なんとか lambda でやってみたかったのよ。
print map( lambda element : element.endswith(".rm") and element or None , output.split( "\n" ) )
これとかは、微妙に結果が違くなるけど、なんとかうまくいけてるっぽいな。
ところで、 `ord' って関数は何の略?
0573デフォルトの名無しさん
2005/05/30(月) 19:39:26ordは、orzの車椅子版。
0574デフォルトの名無しさん
2005/05/30(月) 19:56:14print '\n'.join(glob.glob('*.rm'))
0575デフォルトの名無しさん
2005/05/30(月) 20:01:41>print map( lambda element : element.endswith(".rm") and element or None , output.split( "\n" ) )
これは、同じ事を考えた人が結構いると思うけどやっぱり分かりづらい。
>微妙に結果が違くなるけど
mapは要素数が変わらないからね。
>`ord' って関数は何の略?
help(ord)を参照すれば分かる。
0576デフォルトの名無しさん
2005/05/30(月) 20:38:01ハゲワラ
0577デフォルトの名無しさん
2005/05/30(月) 21:25:410578デフォルトの名無しさん
2005/05/30(月) 22:02:50しっぽだけ喧嘩売ってる
0579デフォルトの名無しさん
2005/05/31(火) 00:49:50サーバの言うことをよく聞いて,出し惜しみしないよう頼んでみ.
0580デフォルトの名無しさん
2005/05/31(火) 00:56:580581デフォルトの名無しさん
2005/05/31(火) 01:25:26ガッ
0582デフォルトの名無しさん
2005/05/31(火) 09:30:36AttributeError: 'NoneType' object has no attribute 'ぬるぽ'
とかじゃないかと小一時間。
0583デフォルトの名無しさん
2005/05/31(火) 12:15:32ヒント読んでやっと中に入れたよー、ありがとう
0584デフォルトの名無しさん
2005/06/01(水) 02:15:22どうにもVertexBufferのコンストラクタ部分でエラーになる。
元にしたC#側のソースは大丈夫なんだが(DirectX SDKのチュートリアル)
tmp = CustomVertex.TransformedColored() #typeofが使えないので迂回策
t = tmp.GetType()
v = VertexBuffer(t, 3, dev, 0, CustomVertex.TransformedColored.Format, Pool.Default)
bad args to this methd〜、と コンストラクタえ与える引数が駄目駄目だよというErrorのようなのだが。
…あってると思うんだがなぁ
0585デフォルトの名無しさん
2005/06/01(水) 20:35:11ttp://mail.python.org/pipermail/pythondotnet/2004-January/000091.html
を見ると,第一引数はGetType() の返す型ではなくコンストラクタ
(TransformedColored) のような気がするよ.
0586デフォルトの名無しさん
2005/06/02(木) 15:41:59みたいなのをうまく処理する方法はないでしょうか?
一部の引数を展開したいのです。
0587デフォルトの名無しさん
2005/06/02(木) 16:07:40とりあえず、%演算子にはtupleを渡せばいいんだから、
>>> a = ['huga', 'moge']
>>> "%s %s %s" % tuple(['hoge'] + a)
'hoge huga moge'
0588デフォルトの名無しさん
2005/06/02(木) 16:13:53>>> b = ['huga', 'moge']
のとき
>>> "%s %s %s" % ((a,) + tuple(b))
'hoge huga moge'
または
>>> "%s" % a + " %s %s" % tuple(b)
'hoge huga moge'
0589デフォルトの名無しさん
2005/06/02(木) 16:14:58>>> b1, b2 = b
>>> "%s %s %s" % (a, b1, b2)
'hoge huga moge'
0590デフォルトの名無しさん
2005/06/02(木) 16:50:180591デフォルトの名無しさん
2005/06/02(木) 17:37:10>>> _flatten([([0], [(1,2), 3], 4), [5, (6,)], ((7, [8]),)])
(0, 1, 2, 3, 4, 5, 6, 7, 8)
0592デフォルトの名無しさん
2005/06/02(木) 17:46:010593デフォルトの名無しさん
2005/06/02(木) 19:18:02formulatorのリストにDBからとってきた値を入れたいんだけど
どうすればいいの?
DBは、gadflyです。
0594デフォルトの名無しさん
2005/06/02(木) 19:20:420595デフォルトの名無しさん
2005/06/03(金) 19:02:110596デフォルトの名無しさん
2005/06/03(金) 19:38:110597デフォルトの名無しさん
2005/06/05(日) 09:58:33↑から音声ファイルを再生するスクリプトを発見したんですが、
『AttributeError: WMPlayer.OCX.newMedia』と表示され再生できません。
誰か原因はわかりますか?というか『AttributeError』ってなんですか?
from win32com.client import Dispatch
mp = Dispatch("WMPlayer.OCX")
tune = mp.newMedia("C:/WINDOWS/system32/oobe/images/title.wma") #ここでエラー発生
mp.currentPlaylist.appendItem(tune)
mp.controls.play()
raw_input("Press Enter to stop playing")
mp.controls.stop()
0598デフォルトの名無しさん
2005/06/05(日) 13:23:56自分のところだと問題無く再生できたよん。
WindowsMediaPlayerを最新にしてみたらどうかな?
Python側の問題では無い気がする。
0599597
2005/06/05(日) 14:50:30WindowsMediaPlayerのバージョンアップをしても駄目。
win32モジュールを最新版にしてエラーは出なくなったが、音が出ない。
また検索してもドキュメント等が見当たらないので、今後の事も考えて違う方法を使用することにします。
道のりは遠い...orz
0600デフォルトの名無しさん
2005/06/06(月) 01:22:06他の言語で同じことを試してみれば?
たぶん環境の問題だから同じようにエラーが起きると思う
0601599
2005/06/06(月) 10:13:39VBSで出来ちゃいました。
Set mp = CreateObject("WMPlayer.OCX.7")
Set tune = mp.newMedia("H:/radio/Breathe.mp3")
mp.currentPlaylist.appendItem(tune)
mp.controls.play()
WScript.Sleep(tune.getItemInfo("Duration")*1000)
mp.controls.stop()
mp.close()
もうわからん。
0602ぴちょんちゃれんぢ
2005/06/08(水) 20:12:411□2□3□4□5□6□7□8□9□10=2741
0603デフォルトの名無しさん
2005/06/08(水) 20:33:16よくわからんが、Prolog向きのネタなのかな
学生時代一回授業取っただけなので思いだせんが‥‥‥
0604デフォルトの名無しさん
2005/06/08(水) 22:57:000605デフォルトの名無しさん
2005/06/09(木) 15:39:08x = operators
buffer = []
for operand in range(1, 10):
x, op = divmod(x, 5)
buffer.append(str(operand))
buffer.append({0: "", 1: ".0+", 2: ".0-", 3: ".0*", 4: ".0/"}[op])
buffer.append("10.0")
expr = "".join(buffer)
if eval(expr) == 2741.0:
print expr
0606デフォルトの名無しさん
2005/06/09(木) 15:41:23試行錯誤の跡ってことで。
0607デフォルトの名無しさん
2005/06/09(木) 17:57:34s = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
def formgen(seq, i):
for sep in ['.0+', '.0-', '.0*', '.0/', '']:
if i==len(seq)-2:
yield seq[i]+sep+seq[i+1]+'.0'
else:
for tail in formgen(seq, i+1):
yield seq[i]+sep+tail
print 'Hmm, there are %d possibilities...' %(5**len(s))
for count, formula in enumerate(formgen(s, 0)):
if eval(formula)==2741.0:
print '%dth iteration, %s=%f' \
%(count, formula.replace('.0', ''), eval(formula))
0608デフォルトの名無しさん
2005/06/09(木) 18:14:25s = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
def formgen(seq, i):
for sep in ['.0+', '.0-', '.0*', '.0/', '']:
if i==len(seq)-2:
yield seq[i]+sep+seq[i+1]+'.0'
else:
for tail in formgen(seq, i+1):
yield seq[i]+sep+tail
print 'Hmm, there are %d possibilities...' %(5**len(s))
for count, formula in enumerate(formgen(s, 0)):
if eval(formula)==2741.0:
print '%dth iteration, %s=%f' \
%(count, formula.replace('.0', ''), eval(formula))
0609デフォルトの名無しさん
2005/06/09(木) 18:49:040610デフォルトの名無しさん
2005/06/09(木) 18:52:190611デフォルトの名無しさん
2005/06/09(木) 19:18:17試してないけどこんな感じ?
dataList = [1,2,3,3,4,5,6,6,3,2]
hist = {}
for data in dataList:
if not hist.has_key(data):
hist[data] = 1
else:
hist[data] += 1
def _cmpv(a, b):
return cmp(hist[a], hist[b])
k = hist.keys()
k.sort(_cmpv)
print k[-1]
とか?
もっといい方法あったら教えてね。
0612デフォルトの名無しさん
2005/06/09(木) 19:27:16> hist[data] = 1
> else:
> hist[data] += 1
hist[data] = hist.get(data, 0) + 1
とすると1行になるが、さらにすっきり重複なしで書く方法はない?
0613デフォルトの名無しさん
2005/06/09(木) 20:21:23uniq = Set(dataList)
print dict( (x, dataList.count(x)) for x in uniq)
遅そう・・
0614デフォルトの名無しさん
2005/06/09(木) 23:26:29dataList=[1,2,3,3,4,5,6,6,3,2]
print [ (k,len(list(g))) for k,g in groupby(sorted(dataList)) ]
0615デフォルトの名無しさん
2005/06/09(木) 23:53:33Py厨の諸氏はもう2.4に移行してるの?
0616デフォルトの名無しさん
2005/06/10(金) 00:12:55「カッコも好きなだけ入れていい」を追加
0617デフォルトの名無しさん
2005/06/10(金) 11:29:31ttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/259174
0618デフォルトの名無しさん
2005/06/10(金) 12:03:490619デフォルトの名無しさん
2005/06/10(金) 12:09:260620デフォルトの名無しさん
2005/06/10(金) 12:26:31print codecs.open('bar.txt','r','utf-8').read(-1).encode('sjis')
0621デフォルトの名無しさん
2005/06/10(金) 17:28:44sys.stdout = codecs.getwriter("sjis")(sys.__stdout__)
0622デフォルトの名無しさん
2005/06/10(金) 22:01:570623デフォルトの名無しさん
2005/06/10(金) 22:34:140624デフォルトの名無しさん
2005/06/10(金) 23:28:11まぁ、hoge.jpもあるし。(関係ないが)
0625デフォルトの名無しさん
2005/06/11(土) 17:56:06やりたいことはさー、一時ファイルを作成して、それにデータを書き込んで、
正常に書き込み終わったら、(一時ファイルではない) 別の名前に名前変更したいんだけどー、
この要求にベストマッチする関数ってある?
NamedTemporaryFile だったら、一時ファイルの名前を取得できるけどー、
オープン中は名前変更ができないじゃん。いったんクローズしてしまうと、
その一時ファイル名は無効になっちゃうしねー
tempfile 関数だとできそうだけど、いったんオープンされたハンドルを
クローズしないといけないって、なんだか無駄な気がするんだよねー。
ハンドルじゃなくてファイル オブジェクトを返してくれればいいんだけどさ。
なんかいいのないー?
0626デフォルトの名無しさん
2005/06/11(土) 19:32:370627デフォルトの名無しさん
2005/06/11(土) 19:56:250628625
2005/06/11(土) 22:36:49ごめーん、tempfile じゃなくって tempfile.mkstemp のことね。
0629デフォルトの名無しさん
2005/06/11(土) 22:51:150630デフォルトの名無しさん
2005/06/11(土) 23:07:460631デフォルトの名無しさん
2005/06/12(日) 00:39:500632デフォルトの名無しさん
2005/06/12(日) 09:27:310633デフォルトの名無しさん
2005/06/12(日) 10:39:29ttp://lowlife.jp/nobonobo/stories/11.html
0634デフォルトの名無しさん
2005/06/12(日) 12:33:46>>484-486(>>494は中の人か?)
0635デフォルトの名無しさん
2005/06/12(日) 13:53:43そもそもPythonがださい
0636デフォルトの名無しさん
2005/06/12(日) 13:55:16釣れますか?
0637デフォルトの名無しさん
2005/06/12(日) 14:33:310638デフォルトの名無しさん
2005/06/12(日) 14:41:13プロトタイピングプロセスだってさ・・・何を今更なネタだなぁ
0639デフォルトの名無しさん
2005/06/12(日) 20:28:27同一ファイルシステム内の話じゃないかもしれんよ。
ま、真にダサイのはファイルに書き出した時点で
ファイル名が決まっていない事だがな。
0640デフォルトの名無しさん
2005/06/13(月) 13:34:520641デフォルトの名無しさん
2005/06/13(月) 21:26:07Level12教えてくれたらな
0642デフォルトの名無しさん
2005/06/13(月) 22:38:38import os,os.path
def dele(dir):
for i in os.listdir(dir):
hoge = os.path.join(dir,i)
if os.path.isdir(hoge):
try:
os.rmdir(hoge)
except:
dele(hoge)
elif os.path.isfile(hoge):
os.remove(hoge)
これだと2回delを実行しないと目的が果たせないのですが、
一回で済ませるにはどう書けばいいのでしょうか。
0643デフォルトの名無しさん
2005/06/13(月) 22:45:38件の現象の原因は、ディレクトリの中身にファイル残っている状態で
ディレクトリ消せないからだと思うよ。だから2回で消せるとも限らない
(深さによる)
0644デフォルトの名無しさん
2005/06/13(月) 22:47:25破壊力が強いので引数の妥当性チェックには気をつけてくれ。
移植性? シラネ。
0645デフォルトの名無しさん
2005/06/13(月) 23:01:42ありがとう。おかげで最後までたどり着いたよ。
0646デフォルトの名無しさん
2005/06/13(月) 23:35:23ディレクトリ深く掘ったら確かに2回じゃ消せませんでした。まだまだだなぁ。
それにしてもshutilなんて知りませんでしたよ…orz
ありがとうございました。
>>644
確かにやりたかったのはこれですが…(;´д`)
0647デフォルトの名無しさん
2005/06/14(火) 01:26:48ヤリスギ
0648デフォルトの名無しさん
2005/06/14(火) 21:42:16perlのApache::Htpasswdのようなやつです。
python apache htpasswdをキーワードにぐぐってみた結果とPyPI見てみた結果ではそれらしきものが見付けられませんでした。
0649デフォルトの名無しさん
2005/06/14(火) 22:20:57import zope
0650デフォルトの名無しさん
2005/06/14(火) 22:31:380651648
2005/06/14(火) 22:53:30>>649 ゲトして中身を軽くさらってみたですが、簡単にパクれるとゆーものではなさそげですた。ターゲットマシンがパワーなさすぎなので、Zopeそのものを使うのは残念ながら却下。
>>650 それだと生パスワードが一瞬プロセステーブルにのるのがちと微妙(それを気にするまえにもっと注意すべきところがあるだろう、という話がないわけではないけど^^;)。
あと、コマンドラインのエスケープで頭ひねる必要があるような気が。popen2でhtpasswdさんとお話ししたほうがいいかも、と思ったり。
0652デフォルトの名無しさん
2005/06/15(水) 01:20:51うろ覚えだけどhtpasswdってUnixのcrypt(3)を呼ぶだけの単純な
パスワードじゃなかったっけ。Pythonからcrypt(3)を呼ぶためだけに
ゴニョゴニョとC拡張モジュールを書いた記憶がある。
・・・ってこれじゃ単なる思い出話だな。スマソ
0653デフォルトの名無しさん
2005/06/15(水) 03:56:24cryptだったら標準モジュールにあるけど..
標準モジュールのgetpass, base64, sha, md5, crypt, tempfile, のみでcloneつくれそう。
0654ポッキー谷村 ◆XovXppFfGM
2005/06/15(水) 04:41:34":" の使用の仕方は Matlab と違うし、直観的じゃない故に気にくわないけどな。
0655デフォルトの名無しさん
2005/06/15(水) 08:44:090656デフォルトの名無しさん
2005/06/15(水) 09:48:35plaintextとCRYPTはわかると思うので、SHA1とMD5エンコーディングのみ。
import sha, base64
def sha1_base64_encode(password):
return "{SHA}" + base64.encodestring(sha.new(password).digest()).strip()
MD5のエンコードは、(ここに張り付けるには)ちょっと長くなるので外部ライブラリで、
http://www.twistedmatrix.com/users/z3p/files/pyshadow-0.1.tar.gz
# 必要なのはmd5_crypt.pyのみでshadowはコンパイルする必要ない。
# 注意点はMD5_MAGICの部分を
'$apr1$' に変更。
def md5_encode(password, salt):
import md5_crypt
md5_crypt.MD5_MAGIC = '$apr1$'
return md5_crypt.md5_crypt(password, salt[:8])
twistedも pyshadowのmd5_cryptを使ってる。zopeもtwisted使ってるので同じ。
0658デフォルトの名無しさん
2005/06/15(水) 18:08:40はじぱい第2版
0659デフォルトの名無しさん
2005/06/16(木) 01:15:53初めてのPython 第2版 ← 持っといて損無し
Python Programming on Win 32 ← Windows使いなら
他の本はマニュアルに書いてあることの焼き直しだったり、
訳された時期が古かったりで、内容的にもイマイチな印象。
ぶっちゃけ日本語訳のマニュアルで大体事足りると思う。
0660デフォルトの名無しさん
2005/06/16(木) 07:05:490661デフォルトの名無しさん
2005/06/16(木) 07:31:050662デフォルトの名無しさん
2005/06/16(木) 09:20:24オススメの本を聞いて来るレベルの人には別にいいんじゃねぇの
0663デフォルトの名無しさん
2005/06/16(木) 13:18:23親クラスのメソッドはSuper(Foo, self).bar()で呼び出せとか、
そういうOOの基礎レベルの事はどこかにまとめて書いてあってよいと思うのだ。
別に恥パイでなくてもよいが。
0664デフォルトの名無しさん
2005/06/16(木) 15:04:01これ知らない。どゆこと?
0665デフォルトの名無しさん
2005/06/16(木) 20:09:57def bar(self):
print "親"
class Ko(Oya):
def bar(self):
print "子"
Oya.bar(self)
神経質な人は Oya.bar(self) と書かずに
super(Oya, self).bar() のように呼び出す
Oya.bar(self) だとどんな実害があるのかは知らんとです
0666デフォルトの名無しさん
2005/06/16(木) 20:25:44superを使った方が多重継承のときに良い事がある。
いずれにせよ具体的なクラス名が入るのが冗長でうっとおしいんだが、
関数bar()は自分の定義されているクラスを知らんのだろうか。
0667デフォルトの名無しさん
2005/06/16(木) 20:26:57Traceback (most recent call last):
File "<pyshell#34>", line 1, in -toplevel-
Ko().bar()
File "<pyshell#33>", line 4, in bar
super(Oya, self).bar()
TypeError: super() argument 1 must be type, not classobj
0668デフォルトの名無しさん
2005/06/16(木) 20:29:240669デフォルトの名無しさん
2005/06/16(木) 22:30:060670デフォルトの名無しさん
2005/06/16(木) 22:39:550671デフォルトの名無しさん
2005/06/17(金) 07:24:12協調メソッドといったNew style classにおける菱形構造の多重継承を解決するもので、
通常は、MROなどを利用しなければ利点も害もないはずです。
0672デフォルトの名無しさん
2005/06/17(金) 12:33:06new style classのその辺をすぱっとまとめて解説した
Effective Pythonみたいな本をきぼんぬ。
0673デフォルトの名無しさん
2005/06/17(金) 15:46:100674デフォルトの名無しさん
2005/06/17(金) 21:45:25みたいな逆継承機能ってないの?
おっぱいソンなら実装できそうな気がするんだけどな。
0675デフォルトの名無しさん
2005/06/17(金) 21:50:02逆継承と一行目のたとえのつながりがわからん
0676デフォルトの名無しさん
2005/06/17(金) 21:56:22だから継承可能
0677デフォルトの名無しさん
2005/06/17(金) 23:40:05apacheが使ってるSHA1の方式はsaltが固定なので、気をつけて。
BSDライセンスコード使うのに問題がなければ、MD5推奨。
>>672
英語だと http://www.python.org/doc/newstyle.html だけど
日本語訳されてないのかな...
0678デフォルトの名無しさん
2005/06/18(土) 00:17:45インデントにハードtabを使用してはいけない理由がよくわからんのですが・・・
エディタや端末の都合によってtab幅を変えたりできるので個人的にはなんで?
という感じなんですが
0679デフォルトの名無しさん
2005/06/18(土) 00:24:16>エディタや端末の都合によってtab幅を変えたりできるので
だからこそ、ハードtab使うと、ソースの見た目が「エディタや端末の都合で」バラバラに変わってしまって
見やすくないからジャマイカ。
0680678
2005/06/18(土) 00:28:49利点と感じる人間もいれば欠点と感じる人間もいるわけなんですね
特にこだわりがあるわけでもないので礼儀正しくスペースでいきます
将来のバージョンでは「お勧めしない」から「エラーとなる」
とどこかに書いてあったもので気になってたずねてみました
ありがとうございました
0681デフォルトの名無しさん
2005/06/18(土) 01:45:18あらためてコードを見直してるときに気付きました(鈍い^^;) 確かにこれではMD5推奨ですねぇ。
ところで、BSDライセンスって、自分のコードと同一ファイルに改変を加えながら混ぜ込んだ場合はどうなるんだろう……。
>>678
python歴1週間なんですけど、ハードTABは内部で最大8コのスペースに変換される(ハードTAB幅=8)というのは見たのですが、使うなっていうのはどこに書いてます?
# perl歴10年以上、ruby歴ちょっとだけ、のところからやってきますた。
# とりあえずわかったことは、カッコだろーがbegin〜endだろーがインデントだろーが
# たいして変わらん(Emacsがよきにはからってくれるし:-)、とゆーことでつね。
0682678
2005/06/18(土) 01:53:56http://www.python.jp/Zope/
>Guido van Rossum 氏は Python プログラマのさらなる飛躍のため、新たな「型」の導入を決心したようです。
>それはホワイトスペースの使い方を構文レベルで強制することです。次のような案が出ています。
>タブによるインデントは廃止。インデントにはスペースを使う。
ここに書いてありますた
0684682
2005/06/18(土) 02:03:54じゃtabでもエラーにはならないみたいすね
ただtabはオススメしないと別のサイトにあった記憶が
・・・それも4/1じゃないよな・・・
0685681
2005/06/18(土) 02:19:11UNIXから来た場合はタブ幅が8なので、問題なかったりするのですが。
0686デフォルトの名無しさん
2005/06/18(土) 05:09:52実際に使用するライブラリがあればそっちのライセンスを適用すべきだけど、
参考までに、apr-util(Apache Portable Runtime utility)のmd5 encodeでは、
アルゴリズムはFreeBSDのcryptから借りてきたよ。とだけコメントに書かれてます。
緩いライセンスなので、それほど気にする必要はなかったかな。改変も商用利用も問題ないです。
>>684
PEP8 Style Guide for Python Codeですね。
April oneのは、構文解析時にスタイルを強制するかも、って話で、
そこに書かれてる作法自体は、PEP8スタイルガイドで昔から推奨されてます。
0687デフォルトの名無しさん
2005/06/18(土) 06:20:300688デフォルトの名無しさん
2005/06/18(土) 15:39:26おいおい
viでもset tabstop=4とかすりゃ……
0689デフォルトの名無しさん
2005/06/19(日) 00:54:25現在WindowsXP + VC++.NET + DirectX + Python2.4で、ゲームを作っています。
ネイティブコードより、Pythonを呼び出してPythonからネイティブコードをCallできる
仕組みを利用しているのですが、Pythonモジュールの呼び出しのオーバヘッドや動作速度が気になります。
0690689
2005/06/19(日) 00:56:130691デフォルトの名無しさん
2005/06/19(日) 02:58:10質問は具体的に。
0692デフォルトの名無しさん
2005/06/19(日) 10:02:510693689
2005/06/19(日) 13:46:11組み込み用途としてPythonを採用しているソフトって、メタセコイアぐらいしか知らないんで
他にどういった使われ方をされているか知りたい。
0694デフォルトの名無しさん
2005/06/19(日) 14:08:25メタセコよりBlenderの方が色々な使い方をしてるな。
ソースも公開されてるし。
一応、PS2・PCゲーなどで組み込まれた実績あり。
検索すれば出てくる。
ただ、組み込み系はメモリ的にキツいだろうね。
メモリが足りない=ストップだから。
0695デフォルトの名無しさん
2005/06/19(日) 14:12:18その方面だと Shade、trueSpace、Blender あたりが有名かな。
いずれも Python による scripting が可能だそーだ。
0696689
2005/06/19(日) 14:24:55結構採用実績がありますね…。PS2で組み込まれたのはすごいな。
BlenderもPythonだったのかぁ、知らなかった。使いにくくて辞めたけど…。
気になったのは、メモリの関連。Pythonってメモリ使用量多いですか…?
すごく気になる。
>>695
trueSpaceみたいなゲームフレームワークも採用しているのか。
自分が思いついた事はもう既に誰かが実践しているのね。ちょっと悲しい。
Shadeは使っているんだけど、Pythonスクリプティング可能だったのかー!
知らなかったー…。
0697デフォルトの名無しさん
2005/06/19(日) 14:45:570698689
2005/06/19(日) 14:47:26Pythonドキュメントで10.1 Allocating Objects on the Heapの項である
関数以外でPythonがヒープに大きく影響する?
PyMethod_Functionを呼んだ先でヒープ確保とかしているということ?
Pythonのメモリマネジメントってどうなっているのか分からない…。
0699デフォルトの名無しさん
2005/06/19(日) 14:52:0310 年は若い方
>>698
前に調べた時は GC は参照カウント + ループ回避だったみたい
0700689
2005/06/19(日) 14:58:16CからPythonの関数を呼んだ時に、Pythonが確保するヒープ容量って
どのように制御されているか分かりますか?
Pythonが勝手にメモリを食っていくようだと、かなり厳しいのですけど…。
できれば呼び出し側のC側で使用メモリ容量を制限したいんですが。
0701デフォルトの名無しさん
2005/06/19(日) 19:57:07> 気になったのは、メモリの関連。Pythonってメモリ使用量多いですか…?
組み込み用途として考えると多い、と言えるだろうね。Pythonに限らず
RubyもLuaも基本的な作りは同じだと思うよ。便利モジュールをインポート
して使用メモリの増加を見るといい。
基本的に処理の呼び出しが名前ベースで解決されるから、
インスタンスが増えれば増えるほどその分文字列のデータが
増えてくわけだ。名前で解決するからこそ便利な一面も
あるわけだけど。
適当にしか見てないからウソ言ってるかも。
自分アプリに組み込むか、ソースをコンパイルするなりして、
デバッガでmallocしているところを追うのが手っ取り早い。
マニュアル見れば結構簡単にできる。
スクリプティング可能にして、ユーザに拡張させることを考えると
どれだけのメモリを使うか予想が付かないから組み込みでは
キツい、という自分なりの結論。後、Pythonは基本的に保護
機能みたいなのが無いから、行儀の悪いことされると困る。
性善説に基づいているような言語って感じ。
0702デフォルトの名無しさん
2005/06/19(日) 20:55:230703デフォルトの名無しさん
2005/06/19(日) 22:47:41> Pythonのメモリマネジメントってどうなっているのか分からない…。
つpython/dist/src/Python/memmove.c
0704689
2005/06/19(日) 23:08:47Python側で変なコード書かないかチェックしなきゃいけないって事ですね・・・。
参考になりました。もうちっと追っていきます。
(自分はPy_InitModule呼んだ段階でヒープは全て確保済みだと思っていた・・・)
>>702
ゲームとかゲームとかゲームとか・・・
>>703
眺めておきます(ぉ
0705デフォルトの名無しさん
2005/06/19(日) 23:25:520706デフォルトの名無しさん
2005/06/19(日) 23:36:13> ゲームとかゲームとかゲームとか・・・
だったらBlenderが一番の参考資料になるかもね。
Pythonでゲーム向けのAPIが用意されてるよ。
色々なデモがあったはず。
個人的な考えだけど、まずはデバッグ環境用としてのみPythonを組み込んでおいて、
実行時にオブジェクトのステータスを変えたり、振る舞いを変えたり、といった
作業効率を向上させるための道具として使う。で、メモリ、動作速度面での
目処が立てば次のプロジェクトで実用へ、って感じかな。
まぁ、ゲームに組み込みを考えるならLuaの方がコンパクトだから
そっちの方が無難かも。
0707689
2005/06/19(日) 23:49:06イロイロ参考になります(汗
今はゲームで画面遷移、パラメータ設定、セーブの為のシリアライズのみ使ってます。
Blenderソースは知らなかった・・・。探してみますね。
Luaはコンパクトな反面、標準モジュールがPythonに劣るので・・・。
時流に乗ってPythonでいきます。
0708デフォルトの名無しさん
2005/06/20(月) 02:44:38自分でPythonの処理系をコンパイルするなら、オプションで上限を設定できます。
> 基本的に処理の呼び出しが名前ベースで解決されるから、
> インスタンスが増えれば増えるほどその分文字列のデータが
> 増えてくわけだ。
Pythonの文字列は(関数呼出の際の関数名など内部で使われる文字列も)
重複する文字はinternとして扱われるので、メモリの面では単純に比例して増えるわけではありません。
あと、Pythonのソースで気をつける事。# とりあえず思いついただけなので、突っ込み・追加歓迎
- 事前処理以外にevalを使わない。
- (stacklessでなければ、)再帰呼出やデータの循環構造
- リストを固定長で扱う。リサイズ時に拡張されるので、appendを直接使わない。
初期化時に長さだけ確保しておく方が良い。Cの配列ようにまとまった領域が取られる為。
- クラスで抽象データ構造を表現せずに、list,dictを使い、長さ、要素の長さを制限する事で
実行時に使うデータ領域が大体予測可能になるはず。
> Luaはコンパクトな反面、標準モジュールがPythonに劣るので・・・。
組み込み向けでは、調査しなければならないライブラリが増えるというデメリットもありますね。
>>703
memmove.cってメモリマネージメントとは関係ないですよ。
アロケーターとかは、src/Objects/obmalloc.c
0710689
2005/06/21(火) 01:26:22>>708
組み込み向けPython Scriptingも奥が深い…。気をつけることが満載ですね。
>自分でPythonの処理系をコンパイルするなら、オプションで上限を設定できます。
自分も該当コードを見つけて喜んでいました。
>組み込み向けでは、調査しなければならないライブラリが増えるというデメリットもありますね。
Python使う理由が、C/C++のライブラリ探すの面倒くさいというのもあったりしてなかなか難しいです…。
通信関係は全てPythonに依存しています…。
0711デフォルトの名無しさん
2005/06/21(火) 01:54:42そして徐々に C++ → C → asm で*変換*していくストラテジーは
組み込み系*でも*有用だと思いますよ。
ブランチコード全体に於ける Python コード行のパーセンテージの表示で
進捗状況をアナウンスするとおもろいかもね。
0712648
2005/06/22(水) 00:07:16http://iwa.ath.cx/software/python/ApacheAuthFile.tar.bz2
python歴10日足らずなので、命名規則等も含めて「よりpythonらしい」書き方の添削キボンヌ。
ファイルの更新がatomicでないので、壊れたファイルをApacheに読まれる可能性がありますが、一時ファイル作ってリネームというのをやり始めてみたら、排他制御が面倒だったので……(^^;
0713デフォルトの名無しさん
2005/06/22(水) 10:15:19- appendの他にも配列型のオブジェクト全般で(文字列、タプル、リスト, ...)の 連結・反復 + * += *= や スライス。
- リストの場合、可能なら遅延リスト(GeneratorやIterator)で表現するとメモリを節約になる。
通信だと、marshalを通信プロトコルでオブジェクトのシリアライズに使わないとか。
組み込みに限った話ではありませんが、セキュリティ面での注意も幾つかありますね。
メモリに関していえば、数バイトの不正なデータで大量のメモリを占領されたりする等、問題になります。
ところで、ライブラリ込での組み込みとなると、ライブラリがすでに富豪的に書かれてるので、
これらの省メモリ・テクニックってあまり効果がないかも知れないなぁ。予め余裕をもってヒープ確保する方が有効だと思う。
0714デフォルトの名無しさん
2005/06/22(水) 10:18:52実行はしてないけど、見た感じだけレビュー
Pythonでのmain関数。(rubyでいう if $0 == __FILE__)
http://www.artima.com/weblogs/viewpost.jsp?thread=4829
def main(*argv):
nbsp;nbsp;# do something
nbsp;nbsp;return 0
def __name__ == '__main__':
nbsp;nbsp;sys.exit(main(*sys.argv))
モジュールの末尾に書いておくと、単体で呼ばれた時のみmainを実行される。
モジュールとして他のファイルからimportされた時にはmainは呼ばれない。
to_str -> __str__ str(obj) で __str__ が呼ばれる。
printなどで表示する時の為にも、__repr__ も実装しておくと良い。
rubyのinspect相当,オブジェクトのシリアライズにも使われるが、printデバッグ時にも使える。
set, type, int, str, list, dict, tuple, file, object などはビルトイン型の名前と重なるので、避けた方がいい。
TABとSpaceの混在 -> _match メソッド内
python -t や -tt オプション付きで実行すると確認できます。
import * でインポートする関数/クラスは __all__ で指定できるので、
モジュール内で使うローカルクラスの名前のprefixは、はずすこともできる。
0715648=712
2005/06/22(水) 13:35:42> 見た感じだけレビュー
どっちかと言うとその方面での突っ込みを期待していたので、感謝です。
> main
pythonではこう書くんですね。今回のものは、テストコードを分離したいのでこのまま行くと思いますが。
> str
obj.str()ではなくて、str(obj)なんですね。んー、rubyに毒されてるせいかもしれないけど、いまいち気に入らない……。
> ビルトイン型の名前と重なる
ライブラリリファレンス等を見てると、これって結構注意しないといけなさそう。(fileとlistはやってました^^;)
> TAB
使わないのが推奨? 気付いてなかったんですが、Emacsのpython-modeは全部スペースに展開してますね。
> __all__
どっちを使うかは好みでしょうか。ローカルスコープのものに"_"を付けるのもそれはそれでわかり易いように思うし。
# こーゆー部分で選択肢をあたえるのはびみょーにpythonらしくないよーな気するのは偏見?(^^;
0716デフォルトの名無しさん
2005/06/23(木) 14:07:390717デフォルトの名無しさん
2005/06/23(木) 15:53:540718デフォルトの名無しさん
2005/06/23(木) 17:27:39obj.str()
obj.len()
とかじゃなくて
str(obj)
len(obj)
なの?
0719デフォルトの名無しさん
2005/06/23(木) 17:32:190720デフォルトの名無しさん
2005/06/23(木) 17:57:41おかげでしょっちゅう間違えるよorz
あとperlのjoin()相当が、array.join(separator)じゃなくて、separator.join(array)だったのに愕然とした。
0721デフォルトの名無しさん
2005/06/23(木) 18:48:210722デフォルトの名無しさん
2005/06/23(木) 18:53:070723デフォルトの名無しさん
2005/06/23(木) 19:04:58pythonという言語仕様自体は(もうperlには戻りたくないなと思う程度には)悪くないと思うんだけど、組み込み関数/クラスのデザインについてはちと、いや、かなり納得がいかない部分が……。
0724デフォルトの名無しさん
2005/06/23(木) 19:10:55無名関数/メソッドにしたいのにいちいち名前付けにゃならんのはウザいぞー。
0725デフォルトの名無しさん
2005/06/23(木) 21:07:40動けばいいやー、みたいな。
0726デフォルトの名無しさん
2005/06/23(木) 21:18:04使い始めの頃 x.dir(), x.len(), x.str() て書いて怒られてたし
今も x.dir() のほうがいいと思ってる.
"".join(array) はキモイから
str.join("", array) にしてる.
あと sort() もリストを直で変える点が気に入らない.
新しいリスト作って欲しい.これは
def sort(L): L2 = L[:] ; L2.sort() ; return L2
1回書いとけば問題なし.
0727デフォルトの名無しさん
2005/06/23(木) 21:20:25len(obj)はlen()の実装がオブジェクト中立だから。
__len__のかわりにlen()を定義すればよい、という意見はあるだろうが、
あらゆるclassに引き継がれる大元の基底クラスで、いたずらに公開属性は定義しないというポリシーの意義は
それはそれで理解できるのではないか。
たとえばRubyはObject classにメソッドを定義しすぎで、見通しを悪くしている。
(トップレベルでユーザが定義したメソッドまで放り込まれてしまうのはもはや笑うしかない)
0728デフォルトの名無しさん
2005/06/23(木) 22:27:140729723
2005/06/23(木) 23:56:04ふむ、そういうポリシーなわけですか。組み込み関数群を眺めてると、オブジェクトに対する基本的な操作については頑なにobject.method()になるのを避けてるよーに見えたのですが、それなら理解できなくもないです。
個人的にはruby的アプローチの方が使い勝手が良さそうには感じますけど、このあたりは個人の感性の問題かなぁ。ルートクラスがfatだと美しくないのは確かだし。
もっとも、このあたりの議論なんて、本家ではとっくに決着がついてて今さらな話のよーな気がひしひしと。
0730デフォルトの名無しさん
2005/06/24(金) 00:01:472.4からは組み込み関数 sorted() が実装されたよ。
これは新しいリストを返してくれる。
iterableクラスのメソッドじゃないから、キモイって言われそうだけど。
0731デフォルトの名無しさん
2005/06/24(金) 09:39:49> The major reason is history.
(snip)
> One can quibble about individual cases but it's a part of Python,
> and it's too late to make such fundamental changes now. The functions
> have to remain to avoid massive code breakage.
0732デフォルトの名無しさん
2005/06/24(金) 11:17:180733デフォルトの名無しさん
2005/06/24(金) 16:26:06一応、オンラインのリファレンスマニュアルやライブラリマニュアルを眺めてるんですが、どこからたぐればよいのかさっぱり……。
def func1(): ...
func = "func1"
# eval(func + "()")相当をevalを使わず実現したい
class Class1:
def method1(self): ...
obj = Class1()
method = "method1"
# eval("obj." + method + "()")相当をevalを使わず実現したい
0734デフォルトの名無しさん
2005/06/24(金) 16:43:07m1 = getattr(obj, "method1")
m1()
mymodule = sys.modules['__main__'] (これはもっと簡単に書けるかも)
f1 = getattr(mymodule, "func1")
f1()
0735デフォルトの名無しさん
2005/06/24(金) 18:07:26感謝!! モジュール内の関数だとsys.modules[__name__]になるのかな。……これでいけるよーだ。(もっと簡単な方法もありそーな気も)
ところで、moduleオブジェクトとか関数オブジェクトとか、処理系自身が持つクラスやオブジェクトに関して体系的に解説した本とかオンラインドキュメントってあります?
0736デフォルトの名無しさん
2005/06/24(金) 21:31:350737デフォルトの名無しさん
2005/06/24(金) 22:11:410738736
2005/06/24(金) 22:21:570739デフォルトの名無しさん
2005/06/24(金) 22:47:080740デフォルトの名無しさん
2005/06/24(金) 22:53:310741デフォルトの名無しさん
2005/06/25(土) 00:50:441 <- 定数
2 <- これも定数
0742デフォルトの名無しさん
2005/06/25(土) 01:29:570743デフォルトの名無しさん
2005/06/25(土) 02:52:39ttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/414140
0744デフォルトの名無しさん
2005/06/25(土) 09:54:33Pythonの世界ではプログラマはみんな仲間であり同士。
0745デフォルトの名無しさん
2005/06/25(土) 11:04:49Pythonの世界ではプログラマはみんなケダモノであり穴兄弟。
ナンチャッテ
0746デフォルトの名無しさん
2005/06/25(土) 11:18:160747デフォルトの名無しさん
2005/06/25(土) 11:29:01Zap! Zap! Zap!
0749デフォルトの名無しさん
2005/06/25(土) 15:02:240750デフォルトの名無しさん
2005/06/25(土) 20:05:160751デフォルトの名無しさん
2005/06/25(土) 20:12:48標準モジュールでもどちらにするか統率が取れていない様なので、好みの問題でしょうね。
この場合は、test_スクリプト側でモジュールをimportする際に、
名前を指定してimportする。と指摘すべきでした。でも、どちらか片方を選択と言わず、両方併用しても問題なしです。
import * する場合は、名前空間汚染の心配があるので __all__ の定義を推奨します。(個人的に)
>>735
func1がスコープ内(func1()で呼び出せる場所)にあるなら、locals()["func1"]()
>>736
> ところで、moduleオブジェクトとか関数オブジェクトとか、
> 処理系自身が持つクラスやオブジェクトに関して体系的に解説した本とかオンラインドキュメントってあります?
>>> import new
>>> help(new.module)
>>> help(new.function)
処理系の内部的な事だとC/APIドキュメント、ソースコード。
書き掛けですが、http://rupy.rubyforge.org/wiki/wiki.pl 辺りの内容に興味あります?
>>749
大袈裟な例を挙げると、True, False = False, True みたいな事が原因でプログラムが破綻するケースで、
プログラムの動作を保証する為に用いる。const(この場合は、read-only variable)で未然に防げるbugもあります。
# constの役割は、コンパイル時評価/最適化等、他にもあるけど
> const
実行時チェックは、インタプリタだとパフォーマンスに影響する事もあるので,
ソースコードの静的チェックするのは、どうでしょ?
evalやcompile,execを使わない保守的なコードを書いていれば、ある程度チェック出来るはず、
0752デフォルトの名無しさん
2005/06/25(土) 20:34:55全然テストしてないけど、叩き台に どぉぞ。
import re, sys, token, tokenize
reConstName = re.compile('^[A-Z][A-Za-z0-9_]+$')
isConstName = reConstName.match
def check_const(filename, defined=[]):
name = None
for tok in tokenize.generate_tokens(open(filename).readline):
if tok[0] == token.NAME and isConstName(tok[1]):
name = tok[1]
if tok[0] == token.OP and tok[1] == '=' and name and isConstName(name):
if name in defined:
print "%s at line %d: constant '%s' already defined." % (filename, tok[2][0], name)
else:
defined.append(name)
name = None
return defined
if __name__ == '__main__':
defined = []
for filename in sys.argv[1:]:
check_const(filename, defined)
0754デフォルトの名無しさん
2005/06/26(日) 23:36:540755デフォルトの名無しさん
2005/06/27(月) 10:15:08書き替える時は意図的なんだから、書換えられないようにするのはまずくないか。
C++のような、コンパイル時にエラーがチェックできる世界が望みなら、
わざわざ動的型言語を使わんでも、と思う。
0756デフォルトの名無しさん
2005/06/27(月) 12:19:24> 書き掛けですが、http://rupy.rubyforge.org/wiki/wiki.pl 辺りの内容に興味あります?
うーん、読むだけなら(^^; Perl, Ruby, Pythonのそれぞれで、こっちの場合はこう書く、という情報には興味があります。(件のページはRubyとPythonがターゲットですが)
0757デフォルトの名無しさん
2005/06/27(月) 14:59:48うっかりミスを防ぐって意味では有効だよ。
変更されないことを前提としてコーディングしたのに、そのことを忘れて書き換えたりとかね。
0758デフォルトの名無しさん
2005/06/27(月) 16:03:55で、要素が足りないときには足りないやつにNoneを、多いときには単に残りを無視したいのですが、何か簡潔な書き方はないですか?
0759デフォルトの名無しさん
2005/06/27(月) 16:11:01a,b,c=(str.split(":") + [None] * 3)[:3]
0760デフォルトの名無しさん
2005/06/27(月) 17:01:27どうしても要素数を明示する必要があるよね。
そういうgeneratorでラップしたらいくらか格好はましになるけど、
unpackがもうちょい融通の利くものになってくれるといいよなぁ。
0761デフォルトの名無しさん
2005/06/27(月) 17:50:32> 多いときには単に残りを無視したい
その要求を逐語訳して if 文で書くのがいいんじゃないか?
>>759のようなコードを書くと後で読み返したとき意図不明になる希ガス。
0762デフォルトの名無しさん
2005/06/27(月) 18:26:33感謝。やっぱり、配列にn個足して前からn個切り出すしかないんですねぇ。
>>761
最初はそう書き直そうと考えたんですが、「Heavyweight Languageじゃあるまいし、こんなんいちいち書いてられっかー!!」と思わず切れたのどした。
なので、759をほぼそのまま採用する私(^^;
0763デフォルトの名無しさん
2005/06/27(月) 18:51:470764デフォルトの名無しさん
2005/06/27(月) 18:58:13def fitseq(seq, n):
return (seq + [None] * n)[:n]
たぶん同ネタがPython Cookbookにあると思うんで、誰か探してくれ。
0765デフォルトの名無しさん
2005/06/27(月) 19:30:51strが空文字列だと a="", b=c=None になるけどいいのかな?
0766758
2005/06/27(月) 19:47:46空文字列も文字列だし、他の言語でも同じ結果になるはずなので、問題ないです。
……ということは、split()の結果に追加する配列は[None] * (n - 1)の方がいいのかな。
0767デフォルトの名無しさん
2005/06/27(月) 20:06:36abuse というか何というか。
0768デフォルトの名無しさん
2005/06/27(月) 20:11:210769758
2005/06/27(月) 20:46:57たーげっとは、各行が
USER_ID:ENCRYPTED_PASSWORD
もしくは
USER_ID:ENCRYPTED_PASSWORD:COMMENT
となってるファイルなんです。(要はApacheのpasswdファイル。ちなみに後者のフォーマットでもOKなのはApache2のソースで確認済み)
COMMENTが無ければNoneになってほしいわけで……。
0770オレ ◆oReSiGNpIo
2005/06/27(月) 20:49:04そういう変なワガママを叶えるのがPerlです。
許されてないのがPythonです。たぶん。
たぶん、オレなら>>758のような問題はiteratorあたりかなぁ。
yield3回してStopIterationとか。
多少コードの量が犠牲になるけど、
読むときそれなりにわかりやすいからイインデネーノ。
0771デフォルトの名無しさん
2005/06/27(月) 21:29:06俺だったら素直に条件分けするところだなあ。
fields = line.split(":")
if len(fields) == 3:
username, password, comment = fields
elif len(fields) == 2:
username, password = fields
comment = None
else:
raise ValueError, "illegal input"
0772オレ ◆oReSiGNpIo
2005/06/27(月) 21:48:054つ以上のときはシカトされるから気をつけてねw
tokens = line.split(':')
while len(tokens) < 3:
tokens.extend([None])
0773オレ ◆oReSiGNpIo
2005/06/27(月) 21:53:36ついでに、extendでなくて、単純に
tokens.append(None)でいいんだった。
0774c
2005/06/27(月) 22:40:47tokens = line.split(':')
username, password, comment = islice(chain(tokens, repeat(None)), 3)
0775758
2005/06/27(月) 23:06:18う゛、読めない、マニュアル、マニュアル……えーっと、>>759をイテレータで書き直した、と考えればいーんでしょーか。
こちらの方が速度/メモリ効率は良さそうな感じ。(大した差ではないだろうけど)
でも可読性を考えると>>771が正論のよーな気がしないではない(^^;
0776オレ ◆oReSiGNpIo
2005/06/27(月) 23:14:12つ http://www.python.jp/doc/release/lib/itertools-functions.html
0777758
2005/06/27(月) 23:21:18えーっと、repeat(None)で[None, None, ...]の無限列を生成、
chain(tokens, repeat(None))でtokens + [None, None, ...]、
islice(..., 3)で[:3]、
でもこいつらはイテレータなので実体は作らない、でOK?
0778オレ ◆oReSiGNpIo
2005/06/27(月) 23:23:27repeat(None)
こいつはNoneを延々と返すイテレータ
無限のNoneリストとでも考えてくれ
chain(tokens, repeat(None))
chainはそのまま、つなげるって意味で、
例えばchain([1,2,3], [4,5], repeat(None)) だと
1,2,3,4,5,None,None...(ずっとNone) が返る。
つまり、ここは、tokensの値を順番にかえしてから、
Noneをひたすら返す。
islice(chain(tokens, repeat(None)), 3)
単純に最初の3つを返す。感覚的にはlistobj[:3]。
>>772みたいに値がかわっちゃうのを嫌うときとかにも使えるしなかなか便利そう。
リストの機能じゃ不満な人はぜひ修得すべしってところだのう。
0779デフォルトの名無しさん
2005/06/27(月) 23:50:250780デフォルトの名無しさん
2005/06/27(月) 23:56:420781デフォルトの名無しさん
2005/06/28(火) 11:33:540782デフォルトの名無しさん
2005/06/29(水) 18:40:37大文字とアンダースコアのみの変数を、定数としてコンパイルするスクリプト書いてみました。
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/435694
>>756
言語の比較の部分ではなくて、
Pythonの内部的な所に興味があると思ったのだけど、違ったかな...
0783デフォルトの名無しさん
2005/06/29(水) 21:47:250784756
2005/06/29(水) 23:42:47基本的には使う側の人なので、内部そのものよりは、
その応用編に興味があるというか。
例えば、文字列から関数やメソッドのオブジェクトをひっぱってきて
間接的に呼び出す場合だと、シンボルテーブルや関数オブジェクトの知識が
いるわけですが、そういった処理系自身のクラスやオブジェクトがどのように
関連しあっているか、というのがリファレンスマニュアルを見るだけでは
よくわからんのです。
で、そのあたりの解説が欲しいな、と。
他言語との比較については、まぁ、今までperlどっぷりだったので、
perlではこー書くんだけど、pythonではどー書くの?というのが頻発してて、
しかもそーゆー部分に限って上記のような微妙な部分だったりするので、
そういうのがまとまっていればなぁ、と。
perlでは「&{"func"}(@args)」と書くんだけど
pythonでは「locals()["func"](*args)」と書く、
ということはリファレンス見てるだけではたどり着けませんでした。
教えてもらってからあらためて読むと、なるほど、となるんですけど……。
0785デフォルトの名無しさん
2005/07/01(金) 00:56:39前IBMのdwで紹介されていた気がするけど見失ってしまった…。
0786デフォルトの名無しさん
2005/07/01(金) 01:34:42dWの記事ならこれかな
http://www-6.ibm.com/jp/developerworks/linux/021025/j_l-spark.html
0787デフォルトの名無しさん
2005/07/01(金) 13:00:59Python to Perl Conversions
http://mail.python.org/pipermail/python-list/1999-August/009692.html
これ見る限りでは、Perlにlocals()に相当する機能はないみたい。globals()の項目が該当するのかな。
perlでも no strict refs しないで書くと、$main::{"func"}->(@argv); と、パッケージ名付きで書く事になるので、同じですよね。
ところで、ここで言う応用というのは、
# 辞書に格納されてる関数を呼び出す
dict[key](*args)
# メソッド呼出
getattr(obj, key)(*args)
こういった事例の事でしょうか。
具体的な応用例だったら http://activestate.com/Python/Cookbook
基本的な事なら、http://pleac.sourceforge.net/
言語の比較なら http://merd.sourceforge.net/pixel/language-study/ に、それぞれ詳しく載ってます。
余談ですが、locals()[key](*args)みたいなのは、可能ではあるけど、
実際にスクリプト書く時は、コードの可搬性や安全性を考えると、
一旦、辞書等に呼び出せる関数郡をまとめた方が良さそうです。
0788デフォルトの名無しさん
2005/07/01(金) 13:11:02unpackは本来、タプルの要素を展開をするものだったので、
ドキュメントにも書かれてる通り、両辺の要素数が同じというのが前提です。
要素数が不定のリストに適応する場合は、固定数の要素を返すwrapperを間に置いた方が良いです。
この場合は、parser関数を作り、その中で要素数の数合わせ、書式のチェック、例外処理などをする。
遅延リストを使って要素数合わせるのは、なかなか面白いアイデアだとは思うけど。
より簡単な方法だと、関数のデフォルト引数を使う方法もありますね。
def reader(username, password, comment=""):
...
for line in (x.rstrip() for x in file(FILENAME) if x.strip()):
reader(*line.split(":"))
この方法で、reader自体をclosureとして渡す様な設計にすると、
パスワードの照会やレコードの削除などで、共通の繰返し処理を括りだす事が出来、
うまく設計すれば(SQLみたいに)関数の組合せのみで、それらの処理をする関数が作れる様になります。
>>785
dWにあったかどうかわからないけど、他には ...
PyGgy (http://www.lava.net/~newsham/pyggy/)
0789デフォルトの名無しさん
2005/07/01(金) 13:39:20> こういった事例の事でしょうか。
ですです。各種ポインタ感謝。ぼちぼち読んでみます。
とりあえずこんなん(↓)やってみたかったので、いろいろ調べてますた。
class CGIDispatcher:
def dispatch(self, post):
cmd = 'default'
if 'cmd' in post:
cmd = post['cmd']
m = getattr(self, 'cmd_' + cmd)
if m:
m(self, post)
raise RuntimeError, "Invalid parameter"
def cmd_default(self, post):
pass
class MyCGI(CGIDispatcher):
def cmd_confirm(self, post):
...
def cmd_register(self, post):
...
# 車輪の再発明?(^^;
0790デフォルトの名無しさん
2005/07/01(金) 13:43:52あ、それ面白い。なるほど。デフォルト引数は有効かも。
0791789
2005/07/01(金) 13:55:240792デフォルトの名無しさん
2005/07/02(土) 10:57:45PerlのCGI::Applicationみたいなframeworkですね。
少しだけPythonっぽくリファクタリングすると...
try:
cmd = 'cmd_' + post.get('cmd', 'default')
getattr(self, cmd)(**post)
except TypeError: # 関数のパラメータの数が合わない場合
raise "Invalid query"
except AttributeError: # getattrで値が見つからない場合
raise "Invalid cmd parameter '%s'" % cmd
辞書をキーワード引数に展開出来るので、
post = {'username': 'foo', 'password': '***', 'cmd': 'confirm'}
だとすると、呼び出されるメソッドの引数は以下のように書けます。
def cmd_confirm(self, username, password, **post):
...
0793デフォルトの名無しさん
2005/07/02(土) 19:31:01http://wiki.python.org/moin/WebProgramming
とりあえず私はQuixoteを使っている。
0794デフォルトの名無しさん
2005/07/02(土) 21:47:12情報感謝。tracは何か自前で処理してるっぽかったんで、一般的なやつって無いのかなーと思ってました(^^;
ま、今作ってるのって、tracと組み合わせて使うやつなんで、結局自前で処理する必要が……。
0795デフォルトの名無しさん
2005/07/03(日) 00:04:33Quixote、公式のドキュメントでわかりますか?
読解力なくて諦め気味…
0796デフォルトの名無しさん
2005/07/03(日) 00:40:06たとえば、ウェブブラウザ、メディアプレーヤー、ファイラー等。
もし可能であれば、サンプル等を見せて頂けると非常にありがたい。
実用的な物を作る為のドキュメントが少なくて…。
ちなみに一番作りたいものはスキンに対応したメディアプレーヤー。
0797デフォルトの名無しさん
2005/07/03(日) 03:13:420798デフォルトの名無しさん
2005/07/03(日) 03:45:410799796
2005/07/03(日) 04:22:10実現可能ならなんでも良い。最悪GUI部分はDelphiでって考えてます。
>>798
wxframeにwxFRAME_SHAPED ってのがあるけど、複数組み合わせる方法等、高度な使用方法がわからない。
ちなみに専門用語とかあんまりわからないから説明が下手になるけど、
スキン対応=ユーザーがスキン作成可能ではなくて、
アプリ製作の時点で通常のウィンドウ(タイトルバーなど)ではなく、ビットマップを使用して組み立てることを意味しています。
Python以外でもスキンに対応したアプリの作成方法を解説したサイトをご存知の方いますか?
検索方法が下手なのか、みつかりません...orz
0800デフォルトの名無しさん
2005/07/03(日) 04:36:37よーわからんがこういう↑やつか?
0801デフォルトの名無しさん
2005/07/03(日) 09:39:59ドキュメントに加えて、demoディレクトリのサンプルとQuixote自身のソースでなんとかなっている。
いくつかTIPSはあるが、まだまとめていない。
0802デフォルトの名無しさん
2005/07/05(火) 03:34:20行頭に*がある場合、<h1>*を除いた行の残りの文字</h1>に変換する
場合どういう風に書いたらいいの?
0803デフォルトの名無しさん
2005/07/05(火) 04:50:400804デフォルトの名無しさん
2005/07/05(火) 11:47:260805デフォルトの名無しさん
2005/07/05(火) 12:01:35手順を細かくわけて考えてみれ。
1. 行頭に*がある場合に、*を除いた行の残りの文字をとりだす。
2. とりだした文字列の前後に<h1></h1>を追加する
3. 変換後の文字列に置き換える
0806デフォルトの名無しさん
2005/07/05(火) 14:02:39が、やっとオブジェクトなんだ!ということを理解して
正解にたどり着きました。スマンカッタ。
0807デフォルトの名無しさん
2005/07/05(火) 17:48:14標準で入ってるパッケージでも先頭大文字のcamel case(?)と全部小文字というのが入り交じってるよーで、どーゆーポリシーで命名するのが「普通」なのか……。
tracなんか、単一アプリなのに両方あるし。
0808デフォルトの名無しさん
2005/07/05(火) 18:45:22「そんなこと自分で考えろよ。子供ジャナインだから」
ってポリシー。
0809デフォルトの名無しさん
2005/07/05(火) 21:07:06package == モジュール名という事なら、Pythonではモジュール名 == ファイル名なので、
通常、lowercaseでアンダースコアなしでなるべく短い名前が推奨されてる。
ライブラリやフレームワークを使う場合は、既存のものに併せて内部で一貫性を保つのが推奨されているので、
例えば、wxPythonでの開発なら、wxWidegtsの命名規則を適用する事等もある。
アプリの名前は自由に付けてもいいと思う。
0810デフォルトの名無しさん
2005/07/05(火) 21:10:35よーするに、俺の決まりが絶対、他の世界は知らないってことですか?w
0811デフォルトの名無しさん
2005/07/05(火) 21:35:000812807
2005/07/05(火) 22:51:27なるほど。〆(.. ) 基本的には1単語になるのかな。
複数単語をくっつけたいときはディレクトリを掘れということなんでしょうか。
でもディレクトリを掘ると__init__.pyを用意しないといけないようなんですが、ディレクトリが他のパッケージと衝突したらどーするんでしょー?
そもそも何か勘違いしてるような気もしないではないですが……。
0813デフォルトの名無しさん
2005/07/06(水) 06:23:35標準モジュールでも名前の区切りに"_"使ってるのもあるので、駄目って訳ではない。
でも、package名でアャ塔_ースコア使bチてるのは見た試魔ェないなぁ。�皷栫A推奨されbトいるという根給窒ヘPEP8 style guideより。
privateなモジュールを現す為に、例えば、拡張モジュール等でアンダースコアを名前の先頭に使う場合はある。
>>812
top levelのパッケージ(ディレクトリ)名さえ気を付ければ、大丈夫だとは思うけど?
Perlみたいに Net:: とかの名前空間を共有する事はないので、ユニークな名前を付ける。
パッケージ名よりはむしろ、モジュール(ファイル)名が標準モジュールと名前が衝突した場合に、
困った事になるんだけど。
CPythonではあまりみかけないが、JythonなんかだとJAVAの様に、
org.python.core ってURIをパッケージ名として使ってるところもある。
0814デフォルトの名無しさん
2005/07/06(水) 19:56:36cx_Oracleは?
0815デフォルトの名無しさん
2005/07/06(水) 20:45:31なんで参照なのに引数の値を変えられないんだよわけわからん!!
0816デフォルトの名無しさん
2005/07/06(水) 21:00:50その変数はプリミティブな型?
0817デフォルトの名無しさん
2005/07/06(水) 21:32:57Because of immutability.
0818デフォルトの名無しさん
2005/07/06(水) 22:10:17・ しかしポインタの指す先に代入する方法 *p = 123 がPythonにはない
ということで勘弁してくれないか。
0819デフォルトの名無しさん
2005/07/06(水) 23:54:41いいよね?
0820デフォルトの名無しさん
2005/07/07(木) 00:01:20文字列も変更できないから"値渡し"扱い。
0821デフォルトの名無しさん
2005/07/07(木) 00:04:160822デフォルトの名無しさん
2005/07/07(木) 00:50:37言ってる意味がわかんね。
0823デフォルトの名無しさん
2005/07/07(木) 01:30:15ふつーわかるぞ
0824デフォルトの名無しさん
2005/07/07(木) 02:38:020825デフォルトの名無しさん
2005/07/07(木) 03:11:39一般的な定義は知らんが。
python では単に参照を値渡ししてるだけだと桃割れ
0826デフォルトの名無しさん
2005/07/07(木) 06:33:15参照と言ってるのがC++の参照渡しだとすると、オブジェクトの内部状態は変える事が出来ても、
その変数が示していたオブジェクト自体を別のオブジェクトに変える事は出来ない。
ポインタによる参照の事を言ってるのだとしたら、数値も他のオブジェクトもPyObject型へのポインタなので。
Cレベルでの解釈では >>818が正しいと思う。
呼出先のスコープで呼出元のスコープの変数に影響を与えられるかどうかで判断してる様だけど、
これは引数の渡され方は関係なく、オブジェクトがmutableかimmutableかどうかの問題。
呼出元のスコープの変数を変更する等は、出来ないわけではないけど、
普通は(pythonでは)、オブジェクトのメンバにするとか、関数は値を返して呼出元で代入するようなスタイルで関数を設計する。
0827デフォルトの名無しさん
2005/07/07(木) 13:53:260828デフォルトの名無しさん
2005/07/07(木) 14:05:080829デフォルトの名無しさん
2005/07/07(木) 16:33:31こういう名前の付け方しちゃいかんと先輩にいわれました・・・
0830デフォルトの名無しさん
2005/07/07(木) 17:00:28# いや,俺もその名前の付け方はどうかと思うけどな...
0831デフォルトの名無しさん
2005/07/07(木) 17:28:30# 女の先輩いないけどな...
0832デフォルトの名無しさん
2005/07/07(木) 17:30:44本来ならclosure使いたいところなんだけど、
Pythonでは、syntaxの制限の為 f(lambda x:m = x) って書けない。
0833デフォルトの名無しさん
2005/07/07(木) 17:32:460834デフォルトの名無しさん
2005/07/07(木) 17:35:33x,y,z = f(x,y,z)
0835デフォルトの名無しさん
2005/07/07(木) 18:22:48そういうわけなので、2.4以降は subprocess.Popen を使おう。
# あと、どうして駄目なのか根拠も聞いておいた方がいいよ。
0836デフォルトの名無しさん
2005/07/07(木) 22:28:590837デフォルトの名無しさん
2005/07/07(木) 22:59:43よくわかんないけど、これのことかも
http://www.konami.co.jp/am/popn/image/popn14.gif
0838デフォルトの名無しさん
2005/07/07(木) 23:16:34あ、そういうモジュールもあるん?まだそこまで進んでないから気がつかなかった
0839デフォルトの名無しさん
2005/07/08(金) 00:36:32print t
ってすると変なんだけど・・・。
print t[0]とかするとちゃんとなるので、壊れたのかと思い
再インストールしたんですが直りませんでした。助けてください
0840デフォルトの名無しさん
2005/07/08(金) 00:54:420841デフォルトの名無しさん
2005/07/08(金) 00:55:070842デフォルトの名無しさん
2005/07/08(金) 02:13:31「場所はわかりませんが遭難しました。助けて下さい」
と言ってる様なもんだ
0843デフォルトの名無しさん
2005/07/08(金) 02:30:350844デフォルトの名無しさん
2005/07/08(金) 02:33:12>>> t = ["トマト"]
>>> t
['\xe3\x83\x88\xe3\x83\x9e\xe3\x83\x88']
>>> repr("トマト")
"'\\xe3\\x83\\x88\\xe3\\x83\\x9e\\xe3\\x83\\x88'"
>>>
というわけだ。
0845デフォルトの名無しさん
2005/07/08(金) 04:45:210846デフォルトの名無しさん
2005/07/08(金) 10:57:410847デフォルトの名無しさん
2005/07/08(金) 13:23:20マルチバイト文字等はそういう風に表示される。
>>> t = ["トマト", "メロン", "バナナ"]
>>> print r
["トマト", "メロン", "バナナ"]
>>> print repr(t)
['\xa5\xc8\xa5\xde\xa5\xc8', '\xa5\xe1\xa5\xed\xa5\xf3', '\xa5\xd0\xa5\xca\xa5\xca']
>>> class MyString(str):
... def __repr__(self): return self
>>> t = ["トマト", "メロン", "バナナ"]
>>> map(MyString, t)
["トマト", "メロン", "バナナ"]
0848デフォルトの名無しさん
2005/07/08(金) 21:30:160849デフォルトの名無しさん
2005/07/08(金) 23:32:500850デフォルトの名無しさん
2005/07/09(土) 00:54:050851デフォルトの名無しさん
2005/07/09(土) 01:02:090852デフォルトの名無しさん
2005/07/10(日) 00:22:58typeだと組み込みの型はわかるのですが、自分でクラスを定義した
ものは全部'instance'というのになってしまいます。
0853デフォルトの名無しさん
2005/07/10(日) 01:00:000854デフォルトの名無しさん
2005/07/10(日) 01:45:06... pass
...
>>> type(OldStyle())
<type 'instance'>
>>> class NewStyle(object):
... pass
...
>>> type(NewStyle())
<class '__main__.NewStyle'>
0855デフォルトの名無しさん
2005/07/10(日) 01:49:470856デフォルトの名無しさん
2005/07/10(日) 01:50:460857デフォルトの名無しさん
2005/07/10(日) 05:18:26ありがとうございます。できました。なるほどです
0858デフォルトの名無しさん
2005/07/10(日) 12:35:540859デフォルトの名無しさん
2005/07/10(日) 13:52:05共通の処理でクラス名を取り出すとかなら...
>>> class OldStyle: pass
...
>>> class NewStyle: pass
...
>>> OldStyle().__class__.__name__
'OldStyle'
>>> NewStyle().__class__.__name__
'NewStyle'
0860デフォルトの名無しさん
2005/07/10(日) 14:12:13(C++みたいな言語もありますが)
……ところで、objectクラス(?)の説明って、これだけ?
http://www.python.jp/doc/release/lib/built-in-funcs.html#l2h-49
0861デフォルトの名無しさん
2005/07/10(日) 15:04:43最初は全クラス共通の基底クラスというものは中田。
0862デフォルトの名無しさん
2005/07/10(日) 16:51:51確かに、PyObjectは実態が無い内部的なものだけど。すべてのオブジェクトに共通する、
マジックメソッドやプロパティに関する規約の部分がないわけではないです。
実際>>859の方法ですべてのオブジェクトのクラス名がわかるわけだし。
階層構造のクラス図を想定してるなら、'type'がその基底と言えるかな。
ここでのtypeは、組み込み関数のオブジェクトの型を知る為のtypeではなく、
3つの引数を取る'型'のコンストラクタとしてのtypeです.
# クラシックな古い方のクラスでは、classobjがクラスの型
>>> class Foo: pass
...
>>> type(Foo)
<type 'classobj'>
>>> import new
>>> type(new.classobj) # or type(type(Foo))
<type 'type'>
# 組み込み型の型もtype
>>> type(str), type(object), type(type)
type 'type'>, <type 'type'>, <type 'type'>]
0863デフォルトの名無しさん
2005/07/10(日) 16:52:13type
+-- classobj
+-- ユーザー定義クラス(classic style)
+-- instance (classic style classのインスタンス)
+-- object
+-- ユーザー定義クラス(new style)
+-- new style classのインスタンス
+-- その他の組み込み型(str, int, list, dict ...)
> Pythonでは暗黙の共通の祖先て無い
2つのクラスシステムが混在してる為の誤解かと。
"クラス"自体が"型"のインスタンスの一種なので、typeを継承したクラスを作る事で、
独自のスタイルのクラスシステム(>>869の文脈での基底クラス)を作る事も出来る。
> ……ところで、objectクラス(?)の説明って、これだけ?
それは、組み込み関数のobjectなので別物。詳しい説明は、
http://www.cafepy.com/article/python_types_and_objects/index.html
http://www.python.jp/doc/release/ref/types.html (ここで言うクラスインスタンスがobject)
0864デフォルトの名無しさん
2005/07/10(日) 18:27:340865デフォルトの名無しさん
2005/07/10(日) 18:56:07hash = md5.new()
target = file(name, 'r')
hash.update(target.read())
target.close()
print hash.hexdigest()
こんな感じでバイナリファイルのMD5ハッシュを出力しようと思ったのですが、
Windows上では間違った値になってしまいます(Mac OSX上では正しく動いた)。
どの辺がいけないのか、教えてください。。
0866デフォルトの名無しさん
2005/07/10(日) 18:58:14'r'だとテキストファイルとみなされて改行コード変換が入るので、'rb'で。
0867デフォルトの名無しさん
2005/07/10(日) 19:07:31ありがとうございました。
'rb'にしたら正しい値を吐くようになりましたサンクス
0868デフォルトの名無しさん
2005/07/14(木) 22:25:38公に配布されると思うのですが、このGPL版のQTを利用した場合、
pythonのスクリプトもGPLに従わないといけないのでしょうか。
そうしたくないのですが、プログラムとして一体として動作するのなら
GPLにしないといけないのではないかと思っています。
0869デフォルトの名無しさん
2005/07/15(金) 07:27:04判断が分れる所なのでは?
Emacs Lispで作成されたアプリなんかにはBSDLとかあるので問題ないのかも
ただしGPLと互換性のあるライセンスでないとだめだなのは確か
ttp://www.gnu.org/licenses/license-list.ja.html
0870デフォルトの名無しさん
2005/07/15(金) 20:29:17簡単にいいますと。
m=10
word="I am"
word+=m
word+="years old."
でwriteでwordの中身をファイルに書きたいのですが3行目で違う型同士は連結できないと言われます。
ということはmをstr型にキャストする必要があると思うのですがどうやってキャストするのかが
分かりません・。キャストの仕方を教えてください。よろしくお願いします。
0871デフォルトの名無しさん
2005/07/15(金) 20:35:49ただしそういうとき、普通はフォーマット演算子を使う。
>>> "I am %d yeard old" % (m)
'I am 10 yeard old'
引数が一つなら()は省略できる。
"I am %d yeard old" % m
0872デフォルトの名無しさん
2005/07/15(金) 21:04:530873デフォルトの名無しさん
2005/07/17(日) 19:52:49Python使ってます
0874デフォルトの名無しさん
2005/07/17(日) 19:55:14俺が思ってるほどPerlっぽく無いのかも
0875デフォルトの名無しさん
2005/07/17(日) 20:22:30意味不明なRubyのコードはPerlっぽい
シンタックスシュガーを使いまくっている
だけ,という場合が多いな
0876デフォルトの名無しさん
2005/07/17(日) 20:46:200877デフォルトの名無しさん
2005/07/17(日) 21:44:120878デフォルトの名無しさん
2005/07/17(日) 21:52:480879デフォルトの名無しさん
2005/07/19(火) 17:09:09オライリ−のPythonクイックリファレンスには、
「sys.stderrをファイル形式のオブジェクトに再結合すれば・・・」
とありますが具体的にはどうするのでしょうか。
ErrFile = file("Err.txt", "w")
sys.stderr = ErrFile
これではダメみたいですし。
0880デフォルトの名無しさん
2005/07/19(火) 17:21:450881879
2005/07/19(火) 17:50:39実は、Mac OS X で、Pythonw2.4でwxPython2.6を使ってて、
エラー表示ウィンドウらしきものが一瞬現れて消えてしまうので困ってます。
試したところ、単純な「変数名が定義されてない」みたいなエラーは書き出せたのですが、
ウィジェットオブジェクトの実行時エラーみたいなのは出力されないようです。
0882デフォルトの名無しさん
2005/07/19(火) 17:56:41スクリプトそのもののライセンスは別になんでもよい。
ただしセットにして配ったり単独実行できる形式にしたりする場合は
GPLに支配されることになる。
0883デフォルトの名無しさん
2005/07/19(火) 18:20:52class Application(wxApp):
def OnInit(self):
#適当に
if __name__ == '__main__':
app = Application(redirect=False)
app.MainLoop()
たしかwxAppのコンストラクタにredirect=Falseを渡せばエラーは普通にコンソールに出力されたような気がする
うちの環境はWindowsだしwxPythonはちょっと前に少しさわっただけなので間違ってたらスマソ。
0884デフォルトの名無しさん
2005/07/19(火) 19:13:57redirect=Trueにすると filenameに直接出力出来たはず。
0885デフォルトの名無しさん
2005/07/19(火) 21:27:54ttp://www.wxpython.org/docs/api/wx.App-class.html
0886879
2005/07/19(火) 22:51:32app = Application(redirect=True, filename=ErrorFilePath)
try:
app.MainLoop()
except:
app.RedirectStdio(ErrorFilePath)
として書き出されました。ファイルパスは2カ所とも設定しないとダメみたいです。
0887879
2005/07/19(火) 22:52:150888デフォルトの名無しさん
2005/07/20(水) 00:39:10別段改めてお礼を言う必要もないんじゃないかな.
と思った.
あんたいいひとだねー.
0889デフォルトの名無しさん
2005/07/20(水) 09:52:140890デフォルトの名無しさん
2005/07/20(水) 14:41:300891デフォルトの名無しさん
2005/07/20(水) 20:40:090892デフォルトの名無しさん
2005/07/21(木) 13:08:04>レッドスネイクカモン
Ruby + Pyhton ?
0893デフォルトの名無しさん
2005/07/21(木) 18:57:480894デフォルトの名無しさん
2005/07/21(木) 21:58:580895デフォルトの名無しさん
2005/07/22(金) 04:09:15クラス作って内部変数に配列型を使うとCでいうとStatic変数になってしまう・・
どうしたらいいんだorz
調べても分からん;;
0896デフォルトの名無しさん
2005/07/22(金) 04:37:44漏れみたいな馬鹿には向いてないな。
パールのほうがいいやw
0897デフォルトの名無しさん
2005/07/22(金) 05:09:20インスタンスに対してメソッドを呼ぶと、メソッドの第一引数にインスタンス自身が渡されるので(仕様)、
そいつに対してオブジェクトを結びつけるとインスタンスオブジェクトとして利用することができる。
Pythonのシンプルなオブジェクトと名前空間の構造にきづけば、理解は進むと思う。
というか、Perl(<=5)のクラス構造の方が絶対アクロバティックで難解。
0898デフォルトの名無しさん
2005/07/22(金) 21:28:210899デフォルトの名無しさん
2005/07/22(金) 21:51:03クラスメソッドとインスタントメソッドってどう区別して書けばいいの?
0900デフォルトの名無しさん
2005/07/22(金) 22:20:29どっちかだけのサポートにしとけば言語仕様で吸収できて
こんなけったいな事にはならなかったのに。
0901デフォルトの名無しさん
2005/07/22(金) 22:26:270902デフォルトの名無しさん
2005/07/23(土) 02:10:33ハッシュでコリジョンエラー返してくれるの?
0903デフォルトの名無しさん
2005/07/23(土) 10:49:020904デフォルトの名無しさん
2005/07/24(日) 02:50:50あれってpythonの思想だとモジュールとかクラスとかも
名前空間の階層って思想なのかな?
普通のファイルシステムと同じように扱おうってかんじだよな。
クラスのメソッドのリストをdir()で取ってくるってなんか妙なかんじするよね。
0905デフォルトの名無しさん
2005/07/24(日) 07:38:23Pythonはこの3つの組み合わせで構成されている・・・らしい
0906デフォルトの名無しさん
2005/07/24(日) 12:47:15今使われてる普通の言語は
そのみっつの仕組み持ってるでしょ?
0907デフォルトの名無しさん
2005/07/25(月) 14:00:571回目で正解したら驚異の集中力だといえよう。
www.concentrationtest.com/ver2.html
18歳未満の男の子と婦女子はやらなくてよろしい。
0908デフォルトの名無しさん
2005/07/25(月) 21:17:290909デフォルトの名無しさん
2005/07/25(月) 23:20:37インストールせずCD-Rから起動して使いたい漏れがやって
きましたよ。誰か簡単な方法を知っていたら教えて下さい。
ちなみにインストール済みのマシンから、インストール
されてるフォルダごとごっそりCD-Rにコピーし、そこで
python.exeを実行してみたところ「Python24.dllがネーヨバーカ」
と言われてしまいました。
0910デフォルトの名無しさん
2005/07/25(月) 23:29:03イミワカンネ
0911909
2005/07/25(月) 23:46:53Pythonのインタプリタ自体を起動して使いたいのですじゃ。
0912デフォルトの名無しさん
2005/07/25(月) 23:52:37おんなじとこにコピってみれよ
system32以下あたりにあるでそ
0913デフォルトの名無しさん
2005/07/26(火) 00:01:05C:\WINDOWS\system32からpython24.dllを持ってきてpython.exeと同じとこに置く
0914909
2005/07/26(火) 00:05:24とりあえずやってみます。でも今度はまた別のDLLを
要求されたりして。
(インストール済みのマシンだと、system32の方を
探しに逝っちゃうから試せないしね…。USBメモリは
使っちゃいけない環境なので、何度もCD-Rに焼くのが
メンドクテ質問してしまいました)
0915デフォルトの名無しさん
2005/07/26(火) 00:12:34どっちにしろ足りなきゃ警告食らうよきっと
0916デフォルトの名無しさん
2005/07/26(火) 00:24:490917デフォルトの名無しさん
2005/07/26(火) 00:27:39DLL依存追っかけるなら「Dependency Viewer」ってツールがベクタに落ちてる
Visual Studio持ってるならDependency Walkerがあるからいらんだろけど
0918sage
2005/07/26(火) 19:54:450919デフォルトの名無しさん
2005/07/29(金) 19:40:52lambda式の中でif文使うにはどうしたらいんだ?
0920デフォルトの名無しさん
2005/07/29(金) 19:49:430921デフォルトの名無しさん
2005/07/29(金) 19:59:39pythonのlambdaってしょぼいことにしか使えないのね。orz
0922デフォルトの名無しさん
2005/07/29(金) 22:21:17普通に関数定義すりゃいいじゃん。なぜわざわざlambdaを使おうとする?
0923デフォルトの名無しさん
2005/07/29(金) 23:50:340924デフォルトの名無しさん
2005/07/30(土) 00:21:050925デフォルトの名無しさん
2005/07/30(土) 00:44:02Traceback (most recent call last):
File "<string>", line 1, in ?
AttributeError: 'module' object has no attribute 'sitedir'
2.4になって変わったの?
情報がみつからない
0926デフォルトの名無しさん
2005/07/30(土) 00:55:27$ python2.4 -c "import site; print site.sitedirs[0]"
Traceback (most recent call last):
File "<string>", line 1, in ?
AttributeError: 'module' object has no attribute 'sitedirs'
0927デフォルトの名無しさん
2005/07/30(土) 01:12:56dir(site)
0928デフォルトの名無しさん
2005/07/30(土) 01:17:25そこにlambdaがあるからさ。
つうかLispのlambdaから取ってきたんだろうと思ったのと、
filterやmap関数と合わせて使ってSmalltalkっぽく書けるなと思ったのと、
変数とか関数名で渡すと処理なんだかデータなんだかわかりづらいっつうのと
and/orで書くのはわかりづらいのと、if文使っても短い処理なのに、関数定義に良さそうな場所がソースの遠くにしかなかった
と思ったんでlambda使おうとした。
まぁpython初心者で流儀がわからんのでゆるしてくれや。
0929デフォルトの名無しさん
2005/07/30(土) 01:40:26on_Button_mouseClickで処理をするときに時間がかかると
「反応無し」になってしまいます。
これを防ぐ方法はありますか?
「反応無し」になっても処理自体は行なわれていて、
処理が終れば正常になるので問題無いといえば問題無いのですが。
0930デフォルトの名無しさん
2005/07/30(土) 05:47:15Pythonに関係なく、時間のかかる処理はイベントハンドラでは行わずに
別スレッドを起こすか通知するだけに留める。
0931デフォルトの名無しさん
2005/07/30(土) 10:49:34>>929
簡単な方法だと、適当なタイミングで(頻繁に,例えばループの内側などで)
wx.Yield()を呼び出す事でも反応なし状態は回避できる。
0932デフォルトの名無しさん
2005/07/30(土) 15:50:18ありがとうございました。
スレッドは使ったことがなく良くわからなかったので、
今回はwx.Yield()を呼ぶことで解決しました。
サンクス
0933デフォルトの名無しさん
2005/07/30(土) 16:04:490934デフォルトの名無しさん
2005/07/30(土) 22:00:21ttp://www.alexa.com/data/details/?url=2ch.net
PILには、postscriptをレンダリングする機能はあるのですが、htmlのレンダリングの機能はないみたいです。
htmlを解釈して、画像化してくれるライブラリってありますか?
0935デフォルトの名無しさん
2005/07/30(土) 22:09:28でPostScriptDCに書き出すのはどうかな.
0936デフォルトの名無しさん
2005/08/01(月) 22:16:11class Hoge:
def __init__(self, value): self.value = value
def plusone(self): return Hoge(self.value + 1)
これだと継承したとき、子クラスのインスタンス生成してくれないですよね?
0937936
2005/08/01(月) 22:20:04self(self.value + 1)
でいいの?
0938デフォルトの名無しさん
2005/08/01(月) 22:45:49def __init__(self, value):
self.value = value
def plusone(self):
return type(self)(self.value + 1)
わかんないけどこうとか?
0939デフォルトの名無しさん
2005/08/02(火) 02:32:04あと新しいオブジェクトを作って返すのなら,reversed や sorted みたいに
関数名を increment'ed' にするといいと思うよ.
0940デフォルトの名無しさん
2005/08/02(火) 07:03:51複製作るだけなら return copy.deepcopy(self) でいいんじゃない?
0941デフォルトの名無しさん
2005/08/04(木) 19:31:360942デフォルトの名無しさん
2005/08/11(木) 12:05:420943デフォルトの名無しさん
2005/08/11(木) 13:08:360944デフォルトの名無しさん
2005/08/11(木) 22:12:57Header(formataddr(("はげ", "[email protected]"), 'utf-8'))
とかやると [email protected] までデコードされちゃうんだけど(´・ω・`)
別々にエンコード指定しながら append するしかないのかね。
なんかうまいやり方あるっすか?
0945944
2005/08/11(木) 22:16:56○ [email protected] までエンコードドされちゃうんだけど(;´Д`)
0946デフォルトの名無しさん
2005/08/12(金) 15:51:570947デフォルトの名無しさん
2005/08/16(火) 18:52:280948デフォルトの名無しさん
2005/08/18(木) 21:45:18サンクス。そうすりゃいいのか。俺(´・ω・)サエナサス
0949デフォルトの名無しさん
2005/08/18(木) 22:18:26phpのbin2hexに該当する関数ってないのでしょうか?
日本語をencode()するとエラーになってしまいます。
http://jp.php.net/bin2hex
日本語の文章を形態素解析で分かち書きしたものをMySQLにいれて
のFULLTEXTインデックスを用いて検索させたいのですが...
0950デフォルトの名無しさん
2005/08/18(木) 22:25:41http://python.org/doc/2.4.1/lib/module-binascii.html
0951デフォルトの名無しさん
2005/08/18(木) 22:45:57おお、ばっちり行けました。
ありがとうございます。
0952デフォルトの名無しさん
2005/08/19(金) 13:18:03こんなん見つけたんだけど、これでpython本何も買わなくてよくね?
0953デフォルトの名無しさん
2005/08/19(金) 16:48:48.chmファイルは中身が見えんのだが
0955デフォルトの名無しさん
2005/08/20(土) 02:51:030956デフォルトの名無しさん
2005/08/20(土) 03:25:14ダウンロードしてないのでわからんけど
0957デフォルトの名無しさん
2005/08/20(土) 03:26:24p archmbox - a simple email archiver written in perl
p chmlib - library for dealing with Microsoft CHM fo
p chmlib-bin - library for dealing with Microsoft CHM fo
p chmlib-dev - library for dealing with Microsoft CHM fo
p fetchmail - SSL enabled POP3, APOP, IMAP mail gathere
v fetchmail-common -
p fetchmail-ssl - SSL enabled POP3, APOP, IMAP mail gathere
p fetchmailconf - fetchmail configurator
p gnochm - CHM file viewer for GNOME
p python-chm - Python binding for CHMLIB
v python-pychm -
p retchmail - REALLY Fast POP3 Retriever
p usermin-fetchmail - A fetchmail module for the usermin web-ba
p webmin-fetchmail - fetchmail mail retrieval module for webmi
p whichman - Fault tolerant search utilities: whichman
p xchm - Compiled HTML Help (CHM) file viewer for
p zope-zattachmentattribute - simple attachment handler for zope produc
0958955
2005/08/20(土) 04:16:270959デフォルトの名無しさん
2005/08/20(土) 07:56:59xchm.sourceforge.net は osx でも使えるよ.
0961デフォルトの名無しさん
2005/08/22(月) 00:29:370962デフォルトの名無しさん
2005/08/22(月) 04:04:35>>> int(s, 16)
3405691582L
0963デフォルトの名無しさん
2005/08/22(月) 04:18:440964デフォルトの名無しさん
2005/08/22(月) 04:53:580965デフォルトの名無しさん
2005/08/22(月) 11:37:03Pythonによる軽量ウェブサーバーを使ったCGIの代替フレームワークCherryPyの記事。
Apache+CGIと比較して動作が軽く、単一プロセス内ですべての処理を行うのでリクエスト・メッセージの受け渡しなどが楽だとか。
http://developers.slashdot.org/article.pl?sid=05/08/21/1937222&from=rss
http://www-128.ibm.com/developerworks/opensource/library/os-cherrypy/?ca=dgr-lnxw01CherryPy
0966デフォルトの名無しさん
2005/08/22(月) 11:50:53向いてないというか、関係ない機能が多すぎる
最近はこんなのがあるみたい。
Django
http://www.djangoproject.com/
>Django makes it easier to build better Web apps more quickly and with less code.
だそうです。
日本語の情報は今のところここが一番詳しいと思う
ttp://www.everes.net/categorylist_html?cat_id=18
0967デフォルトの名無しさん
2005/08/22(月) 12:10:43> Zopeは求めてるものとちょっと違うんだよなぁ。基本的にCMSであって、Webアプリを作るには
> 向いてないというか、関係ない機能が多すぎる
ZODBの世界で素直にOOプログラムできるのがいいのに。
ZMS/Undo/CMF/マルチプロトコル接続なんかの点でCMSとしても有用なだけ。
0968デフォルトの名無しさん
2005/08/22(月) 12:59:41ZODBにデータをストアしてはいけない
データは外部のDBかファイルシステムへ。
0969デフォルトの名無しさん
2005/08/22(月) 16:47:42Here, you can download most Python e-Books, but only for evaluation purposes and you MUST delete them after 24 hours.
だってさ
0970デフォルトの名無しさん
2005/08/22(月) 19:25:53で、それはうん時間で溶けるDVDみたいな仕様になってる訳?
0971デフォルトの名無しさん
2005/08/22(月) 21:01:50そこでStand alone ZODB ですよ。
0972デフォルトの名無しさん
2005/08/22(月) 22:55:03私はまだPyJUGにあったチュートリアルをざっとやってみたレベルです。
質問なのすがPythonで定数を作るにはどうすればいいのですか?
C++でやると const int hage = 1; みたいな。
あと列挙型とか有るんですか?
低レベルな質問でごめんなさい。
PythonのバージョンはPython 2.3.5です。
0973デフォルトの名無しさん
2005/08/22(月) 22:58:25> 質問なのすがPythonで定数を作るにはどうすればいいのですか?
クラス設計
> あと列挙型とか有るんですか?
タプル
0974デフォルトの名無しさん
2005/08/22(月) 22:58:260975972
2005/08/22(月) 23:16:28今更ですがずっと前の方に無いって書いてありましたね。
ごめんなさい。
>>973
ありがとうございます。言語に実装が無かったらクラスとタプルでどうにかしようは考えていました。
>>974
ごめんなさい、定数を作ろうとしてやり方が分からなくて気になって気になって
仕方がありませんでした。
0976デフォルトの名無しさん
2005/08/23(火) 10:04:43いちいち必要ない、なんてレスはいらない
0977デフォルトの名無しさん
2005/08/23(火) 11:50:21「必要ない」っていうのはそれなりに有益な情報だし書いたっていいだろ。
もしかして「『そういう疑問を持つこと』が必要ない」と解釈したのか?
0978デフォルトの名無しさん
2005/08/23(火) 13:49:26外国ではそれなりとかいう記述は見かけますが。
0979デフォルトの名無しさん
2005/08/23(火) 14:17:04外国ではバリバリに使われていて、露出も多い。
0980デフォルトの名無しさん
2005/08/23(火) 14:34:27サンクス。
じゃあ、日本でも普及する可能性大ですね。
0981デフォルトの名無しさん
2005/08/23(火) 14:59:48昔のティンコパッドは最高だったが、最近買ったのはリカバリーCD付いてないし、
40GBしかないHDDのうち4GBを隠しリカバリーパーティションにしてるし、
そこからリカバリーしてもMBRをリカバリーしてくれないという…。
ぐちスマソ
0982デフォルトの名無しさん
2005/08/23(火) 15:00:51http://www.google.com/search?client=opera&rls=ja&q=Books+python+site:amazon.com&sourceid=opera&ie=utf-8&oe=utf-8
0983デフォルトの名無しさん
2005/08/23(火) 15:49:30こっち↓も載せないと意味なくない?
http://www.google.com/search?hl=ja&client=opera&rls=ja&q=%E6%9C%AC+python+site%3Aamazon.co.jp&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0984デフォルトの名無しさん
2005/08/23(火) 16:05:28Books ruby の検索結果のうち amazon.com からの約 123,000 件中 1 - 10 件目 (0.21 秒)
本 python の検索結果のうち amazon.co.jp からの日本語のページ 4,070 件中 1 - 10 件目 (0.20 秒)
本 ruby の検索結果のうち amazon.co.jp からの日本語のページ 11,400 件中 1 - 10 件目 (0.18 秒)
0985デフォルトの名無しさん
2005/08/23(火) 16:08:360986デフォルトの名無しさん
2005/08/23(火) 16:20:34http://pc8.2ch.net/test/read.cgi/tech/1113431728/l50
0987デフォルトの名無しさん
2005/08/24(水) 01:32:18どうすればいいの?
0988デフォルトの名無しさん
2005/08/24(水) 12:12:040989デフォルトの名無しさん
2005/08/24(水) 16:15:37RTFM
0990デフォルトの名無しさん
2005/08/25(木) 02:35:48動きそうな痕跡だけあるもんなの?使おうとすると
except ImportError: import curses
File "C:\python2.4\lib\curses\__init__.py", line 15, in ?
from _curses import *
ImportError: No module named _curses
ってでるけど、こいつ何者?curses本人じゃないの?
0991デフォルトの名無しさん
2005/08/25(木) 05:30:300992デフォルトの名無しさん
2005/08/25(木) 07:12:41http://www.amk.ca/python/howto/curses/
> No one has made a Windows port of the curses module. On a Windows platform,
> try the Console module written by Fredrik Lundh. The Console module provides
> cursor-addressable text output, plus full support for mouse and keyboard input,
> and is available from http://effbot.org/efflib/console.
0993デフォルトの名無しさん
2005/08/25(木) 08:52:150994デフォルトの名無しさん
2005/08/25(木) 10:18:38ありがとう!大助かり!
ここらへんあんま使われてなさそうだ情報少なめ
でもウィン用のcursesやったらと数あるね
curses叩くってpyコードだけで済んでんの?
叩かれてる本体はきっとどろどろのCでしょ、モンティパイソンすんごいね
0995デフォルトの名無しさん
2005/08/25(木) 17:45:41>>991のいう「拡張モジュール」はCで書かれたモジュールのこと。
curses (Python) → _curses (C) → libcurses という呼び出し関係にある。
Tkinterやsocketも同じようなモジュール構成になっている。
0996デフォルトの名無しさん
2005/08/25(木) 20:02:320997デフォルトの名無しさん
2005/08/25(木) 22:00:570998デフォルトの名無しさん
2005/08/26(金) 00:44:350999デフォルトの名無しさん
2005/08/26(金) 00:45:421000デフォルトの名無しさん
2005/08/26(金) 00:46:44★Pythonって死滅しちゃうの?Part8★
http://pc8.2ch.net/test/read.cgi/tech/1113431728/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。