Pythonのお勉強 Part6

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
日本Pythonユーザ会
http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/

前スレ
http://pc5.2ch.net/test/read.cgi/tech/1095684242/
2デフォルトの名無しさん:04/12/28 06:32:53
3デフォルトの名無しさん:04/12/28 06:34:00
4デフォルトの名無しさん:04/12/28 09:25:32
5デフォルトの名無しさん:04/12/28 10:22:55
重複スレ
6デフォルトの名無しさん:04/12/28 14:57:11
以下のスレに移動汁。
http://pc5.2ch.net/test/read.cgi/tech/1104156256/l50
とゆーことで。




************** 糸冬 了 **************


7デフォルトの名無しさん:04/12/28 15:00:59
= = = = = = = = = = = = = 再 開 = = = = = = = = = = = = =
8デフォルトの名無しさん:04/12/28 15:44:54
sys.exit(1)
9デフォルトの名無しさん:04/12/29 01:14:55
素朴な質問。

>6のようなPythonにコンプレックスを持っている人が目立つのはどうして?
10535:04/12/29 01:16:56
ニシキヘビとPHPはどっちがかっちょいいのですか?
11デフォルトの名無しさん:04/12/29 01:30:55
>>10
紅玉
12デフォルトの名無しさん:04/12/29 02:48:38
実際のところ、Python ってどうよ?
Ruby より良いのか?
13デフォルトの名無しさん:04/12/29 11:43:37
>12
言語ってどうやって比較するのさ
14デフォルトの名無しさん:04/12/29 11:46:30
軽さ 速さ 正確さ 視覚性 多様性
15デフォルトの名無しさん:04/12/29 11:46:45
>13
正直に言えば便利ならそれで良い
何十何百とあるプログラミング言語を利用して結局Pythonにおちついただけ
1613:04/12/29 11:51:46
>14
それって比較になるの?
ならないからこれだけプログラミング言語があるのでは?

人間がそもそも多様なのだし、目的も多様なのだから目的に合せて利用しわければ良い
目的にそって利用できる「人」が優秀かどうかにつきる
言語はどうでもよい
17デフォルトの名無しさん:04/12/29 11:52:31
>>15
> 何十何百とあるプログラミング言語

のうち実際に試したのはいくつなのやら。
18デフォルトの名無しさん:04/12/29 12:02:49
>>16
どうでもいいなら、みんな違う言語を使ってるよね。
19デフォルトの名無しさん:04/12/29 22:00:22
ahoge
20デフォルトの名無しさん:04/12/29 22:02:51





























ahoge
21デフォルトの名無しさん:04/12/29 22:43:24
ここは重複スレ
↓こちらへ移動しましょう
http://pc5.2ch.net/test/read.cgi/tech/1104156256/
22デフォルトの名無しさん:04/12/29 23:43:51















ahoge
23デフォルトの名無しさん:04/12/29 23:44:27















Phython
2413:04/12/30 10:46:34
>18
だからみんな目的にそってちがう言語つかってるよね?
ふつうのプログラマって数種類のプログラミング言語使いこなせないと仕事にならん

>17
職務経歴書では41個
レガシーシステムだと言語がいろいろまざっているシステム(GUIにVBとDelphiとAppleScriptが同居とか)があり一企業で多数の言語でシステムが動作している物もあるから大変
全部さわらないと移行作業できない

バカヤローヽ(`Д´)ノ
なんでオレがやらんといかんのだ。今日も年末なのに午後から7つの別の言語でかかれたシステムの所に行く。害虫のやつらVBしかできんとかばっかだし( つД`)

ぐちだバカヤローヽ(`Д´)ノ
25デフォルトの名無しさん:04/12/30 11:35:47
なんで13が15に答えるんだ?自演か?
2613:04/12/30 11:40:36
>25
ちょうどグチが書きたかったときに見えた
今は反省している

仕事逝ってきます orz
27デフォルトの名無しさん:05/01/02 01:32:59
PythonでNTFSのACLをいぢくる方法を教えてください。
28デフォルトの名無しさん:05/01/02 14:22:22
29デフォルトの名無しさん:05/01/12 01:29:57
wxPythonとREALbasic、どちらのほうが動作が軽いですか?
30デフォルトの名無しさん:05/01/15 18:46:18
REALbasicってつおいの?
31デフォルトの名無しさん:05/03/20 19:05:19
多重ループから抜けるときって、
例外使うか、関数にするしかないの?
例外使う場合のコストってどんなもんなの?
32デフォルトの名無しさん:05/03/20 23:33:49
たしか、breakも内部的に例外使ってるので等価。
33デフォルトの名無しさん:05/03/20 23:41:03
>>32
thx
他の言語を経験してると微妙に気持ち悪いかも
34デフォルトの名無しさん:05/03/21 01:55:17
> たしか、breakも内部的に例外使ってるので等価。
初耳だ・・・
35デフォルトの名無しさん:2005/03/21(月) 12:06:02
>>33
他の言語ってC++とJavaくらい?
もっといろいろ他の言語を経験してると
例外処理とエラーは使いわけるので全然気持ち悪くない。
36デフォルトの名無しさん:2005/03/22(火) 00:13:57
内部的に例外使ってるってイテレータと勘違いしてない?
37デフォルトの名無しさん:2005/03/27(日) 14:15:03
ループからの脱出は1回きりなんだから
コストは問題になるまいよ。
38デフォルトの名無しさん:2005/03/27(日) 18:46:57
んなこたーない。それが最外ループとは限るまい。

39デフォルトの名無しさん:2005/03/28(月) 22:08:46
あっちの7のスレは、ずっと人おお杉でない?
40デフォルトの名無しさん:2005/03/28(月) 22:22:28
先週、鯖移転があった。ブラウザのリンクが前のままなんでない?
41デフォルトの名無しさん:皇紀2665/04/01(金) 02:37:58
こっちはpythonのネタスレ扱いなんでない?
42デフォルトの名無しさん:皇紀2665/04/01(金) 03:21:09
そうですがなんでない?
43デフォルトの名無しさん:2005/04/03(日) 08:30:22
Linux journal 記事
ttp://japan.linux.com/enterprise/05/04/01/0245247.shtml
に、Pythonが、
>パフォーマンスはCに匹敵するか、それを上回ることさえあるが、
って書いてあるんだけど、本当?

ソース知ってる人、教えてちょ。
44デフォルトの名無しさん:2005/04/03(日) 11:11:08
ポイントは4月1日の記事だということだ。
45デフォルトの名無しさん:2005/04/03(日) 11:12:22
numpyのことかな。
psyco使ってもCには勝てないと思うし。
46デフォルトの名無しさん:2005/04/03(日) 11:28:27
IronPython
47デフォルトの名無しさん:2005/04/03(日) 12:28:19
>>43
恐らくベンチマーク的なパフォーマンスのことじゃなく
ライブラリとかアプリ全体とかそういうレベルの比較なんじゃないかなー。
いずれにせよ著者の経験に基づく主張だと思われ。
俺が敢えて書くなら「PythonがCより速いことは決して無い」と書くだろう。
48デフォルトの名無しさん: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

ユニコードの場合、途中で文字をぶった切ってしまいます。

誰かアドバイスをお願いしまつ。
49デフォルトの名無しさん:2005/04/04(月) 00:40:18
釣りではありません。
50デフォルトの名無しさん:2005/04/04(月) 05:48:13
source = string.replace(unicode(source, "utf-8"), '\n', '')
51デフォルトの名無しさん:2005/04/04(月) 12:26:12
2.4てWin拡張でないんですかね。
PythonをエクセルVBA替わりに使う事が多いんで、今だに2.3でがんばってます。
52デフォルトの名無しさん:2005/04/04(月) 13:07:39
よく知らないんだけどこれのことか?
ttp://prdownloads.sourceforge.net/pywin32/pywin32-203.win32-py2.4.exe
53デフォルトの名無しさん:2005/04/04(月) 15:03:09
>>52
おや、これわ。

ひょっとして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
54デフォルトの名無しさん:2005/04/04(月) 21:02:42
PyJUGは実質停止してる気がする2.4.1リリースのニュースも流れてない
開発してる本家見たほうが正確かも
5543:2005/04/04(月) 22:19:29
>>44
あははは、
>>47
コーディングのパフォーマンスみたいな意味かな、
Cに比べれば、一行で行う事の出来る作業が多い。みたいな。
lispが、一部、C++のベンチマークを上回っていることを少し前に知ったので、
post lisp 的な事を言われていたpythonのパフォーマンスも高いのかと、
linuxjounalの文章から期待したのですが、、、。
>>45,46
jythonといい、pythonて、実装が多数あるんですね。
そういう意味では、言語として(syntaxとか)好まれてるんですね。

56デフォルトの名無しさん:2005/04/04(月) 22:53:14
Python は中庸を取ったのが良かったんでしょう。
とんがってもいないけど、独りよがりでもない。
57デフォルトの名無しさん:2005/04/05(火) 00:20:54
おっぱいそん
58デフォルトの名無しさん:2005/04/05(火) 00:41:38
「パフォーマンスはCに匹敵するか、…」に関連するレポート

Nine 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
59デフォルトの名無しさん:2005/04/07(木) 07:37:31
Pychinkoに対抗してOxPyBoinとか作ろうと思ったんだけど
どんな内容がいいかな?
60デフォルトの名無しさん:2005/04/07(木) 09:47:27
対抗するならPyMankoにしてくれ
61デフォルトの名無しさん:2005/04/07(木) 13:10:19
禿同
62デフォルトの名無しさん:2005/04/08(金) 00:50:49
下品ですYo
63デフォルトの名無しさん:2005/04/08(金) 01:01:57
PyPAN
64デフォルトの名無しさん:2005/04/08(金) 10:12:49
PyZuly
65デフォルトの名無しさん:2005/04/09(土) 23:15:08
PyPcut
66デフォルトの名無しさん: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とはいえ悪質すぎる
67デフォルトの名無しさん:2005/04/10(日) 00:10:36
>>66
おい、関数型の他の言語と比べるのが筋ってもんじゃないですかい?
68デフォルトの名無しさん:2005/04/10(日) 00:13:22
pythonは関数型なのか?
比べるならperlとかのスクリプトじゃないのか?
69デフォルトの名無しさん:2005/04/10(日) 01:55:03
Javaが速いってことはJythonも速いのか?
70ニコちゃん ◆9COufv/UGU :2005/04/10(日) 04:32:40
この手の単純な計算やI/Oは金をかけている処理系は速い。
しかし、実際の複雑な処理は当然だが、インタープリタよりコンパイルする方が速い。
実際の使用感は、

Visual C++ > gcc >>> C#, Java, Visual Basic > Python

と言ったところか。。
71デフォルトの名無しさん:2005/04/10(日) 12:59:16
>>67
しかしschemeやMLと比べるよりは、
perlやawkと比べるべきかと
72デフォルトの名無しさん:2005/04/10(日) 13:26:39
VM系はプロセスや資源の生成・解放のコストを省略できるメリットがあるな。
いずれにせよコードを書く手間とパフォーマンスはトレードオフだろ。
Pythonのコードがネイティブコンパイラの速度で動いたら誰もC++なんか使わん。
73デフォルトの名無しさん:2005/04/10(日) 13:37:56
>>72
はい?なんていいましたか?もう一度お願いします。
74デフォルトの名無しさん:2005/04/10(日) 14:51:48
>>72
>VM系はプロセスや資源の生成・解放のコストを省略できるメリットがあるな。

VMをなんだと思ってるのか知らんが、これは72のただの思い込みなのでダウト


>いずれにせよコードを書く手間とパフォーマンスはトレードオフだろ。

MLとかの例外はいくつもあるのでダウト
7572:2005/04/10(日) 17:47:32
なんで思い込みなんだ。
perlなりC++なりで書いたCGIと、Java Servletの実行時に必要な処理を比較してくれよ。
プロセス作って初期化してDB接続して…なんてのを省略できるのは
VMの大きなメリットだろ?
76デフォルトの名無しさん:2005/04/10(日) 18:21:56
( ゚д゚)ポカーン
77デフォルトの名無しさん:2005/04/10(日) 18:22:10
今さらPythonの遅さをあげつらうヤシは負け組
78デフォルトの名無しさん:2005/04/10(日) 19:10:03
>>75
それはアプリケーションサーバのおかげであって
VM のおかげではないでしょ。
79デフォルトの名無しさん:2005/04/10(日) 20:14:58
>>78
ネタにマジレス
80デフォルトの名無しさん:2005/04/10(日) 21:34:34
どっこい、72はネタと思ってない
81デフォルトの名無しさん:2005/04/10(日) 22:53:11
ところで74はMLを「書きやすい」と思ってるのか気になる
82デフォルトの名無しさん:2005/04/10(日) 23:28:32
pythonコード内の速度的律速の個所をCなりニーモニックなりで書けばいいじゃん
83デフォルトの名無しさん:2005/04/11(月) 00:16:41
最後には全て C に置き換わりそうだね。
84デフォルトの名無しさん:2005/04/11(月) 14:26:45
つまりPythonはC(C++)のユーザインターフェースなんだよ。
言語自体のUIってことね。
85デフォルトの名無しさん:2005/04/11(月) 16:19:43
お前らは本当にPythonユーザなのかと
86デフォルトの名無しさん:2005/04/11(月) 16:27:13
もちろん違うでござる ニンニン
87デフォルトの名無しさん:2005/04/11(月) 19:19:54
やっぱりママに決めだっこ♪
88デフォルトの名無しさん:2005/04/11(月) 20:18:03
幸せになりたい
89デフォルトの名無しさん:2005/04/12(火) 00:10:58
梅干食べたい
90デフォルトの名無しさん:2005/04/13(水) 17:36:26
すでにC++では書けない身体に
91デフォルトの名無しさん:2005/04/13(水) 23:16:51
>>90
それなら jython に投資しろよ
92デフォルトの名無しさん:2005/04/14(木) 00:21:56
なぜにWHY?
93デフォルトの名無しさん:2005/04/14(木) 19:33:02
pythonでGUIできますか
94デフォルトの名無しさん:2005/04/14(木) 20:03:38
95デフォルトの名無しさん:2005/04/15(金) 00:56:57
96デフォルトの名無しさん:2005/04/15(金) 11:06:42
age
97デフォルトの名無しさん:2005/04/15(金) 15:33:42
FirefoxにPythonつっこんで、
AjaxをPythonで書けるようにならんかなあ。
98デフォルトの名無しさん:2005/04/15(金) 16:01:01
>>97
Zopeでやれよ
99デフォルトの名無しさん:2005/04/15(金) 19:28:54
ZopeはPythonで書いてあるだけで、Python的でないので嫌

ていうか、サーバでZope使ったってクライアント側はJavaScriptだし。
100デフォルトの名無しさん:2005/04/15(金) 20:35:09
クライアント・サイドのスクリプト言語として
Pythonが使えたらホントにうれしいですな。
いまのところJavaScript、Java Applet、Flashくらいしか
選択の余地がないもの。
101デフォルトの名無しさん:2005/04/15(金) 20:35:19
>>97
Ajaxの存在意義に思いっきり背を向けた話だな。
102100:2005/04/15(金) 20:37:45
JythonでAppletってのも有りか。
103デフォルトの名無しさん:2005/04/15(金) 21:09:05
apax じゃないの?
104デフォルトの名無しさん:2005/04/18(月) 02:42:19
FirefoxにPython標準添付ってのは現実的に可能だと思う。あるいはPython Plugin。

過去にはこんな動きも一応あった。
http://internet.watch.impress.co.jp/www/article/2000/0525/asns.htm
> ActiveStateがNetscapeと提携。MozillaでPerl、Pythonを利用可能に
105デフォルトの名無しさん:2005/04/18(月) 05:33:11
EpiphanyはPyphany入れるとPythonでExtension書けるよ。
ってそういう話じゃないか。
106デフォルトの名無しさん:2005/04/18(月) 15:45:58
つぅかfirefoxのextensionをpythonで書けたとして何を書くの?
107デフォルトの名無しさん:2005/04/18(月) 15:47:50
Cでゲーム書けたとして何を書くの?
108デフォルトの名無しさん:2005/04/18(月) 15:57:42
>>106
bittorrentのフロントエンドプラグイン
109デフォルトの名無しさん:2005/04/20(水) 16:33:48
Quixote-2.0 リリース
110デフォルトの名無しさん:2005/04/20(水) 21:23:47
何それ?クイックソート?
111デフォルトの名無しさん:2005/04/20(水) 22:30:31
何お前?Google知らねーの?
112デフォルトの名無しさん:2005/04/20(水) 22:34:09
>>111
ググっても見つかりません。
113デフォルトの名無しさん:2005/04/20(水) 23:26:23
>112
お前のぐぐっているGoogleは知能的欠陥の一種だ。鎮める方法はお前が知っている。お前に任せた。
114デフォルトの名無しさん:2005/04/21(木) 01:44:23
エロゲオタが約一名混じってるぞ
115デフォルトの名無しさん:2005/04/21(木) 01:45:04
116デフォルトの名無しさん:2005/04/21(木) 03:28:04
>>114
どこどこ? あ、114さん自身か。なるほど。
117デフォルトの名無しさん:2005/04/21(木) 12:58:14
正解は113と114の二名
118デフォルトの名無しさん:2005/04/21(木) 13:25:59
文字列を変数として使用する方法はありますか?

やりたいことは
>>onani = "str[1:3]"
>>str = "hello"
>>print onani
"el"

でも実際には"str[1:3]"が返ってきます。
このonaniに代入された文字列を後から変数として使用することは可能でしょうか?
119デフォルトの名無しさん:2005/04/21(木) 13:29:05
連想配列
120デフォルトの名無しさん:2005/04/21(木) 13:41:45
print eval(onani)
121118:2005/04/21(木) 13:47:30
>>119
ごめんなさい。検索してみたけど、使い方が良くわからない。
よければ使用例を書いて頂いてもいいですか?

あともっと細かく説明すると
"onani"に代入する文字列はスクリプト実行時の引数で、
"str"に代入する文字列は外部テキストからです。
import sys
onani = sys.argv[1] #str[6:]+str[:6]
str = open("a.txt").readline() #"hello world"
print onani

とすると結果が"world hello"
みたいな感じで。
122118:2005/04/21(木) 13:48:53
>>120
うぉおおおおおおおおお!!
簡単に出来た!!
ありがとうございます!!
123デフォルトの名無しさん:2005/04/21(木) 17:11:20
>>118
evalで間に合ってるようだけど、目的に応じて使い分けるなら...
ビルトイン関数の vars, locals や globals が変数の辞書を返す。
オブジェクトのメンバ変数であれば getattr 等。

>>> foo = 10
>>> locals()["foo"]
10
124118:2005/04/21(木) 17:44:40
>>118
ありがとうございます。いろいろ勉強してみます。

ところで話しわかるんですけど、
100%pythonで作られた高機能なアプリってないですか?(Windows)
メディアプレーヤーとか画像ビューアは見つかったんですが、
デコード等の部分が、Cで書かれてて、純粋なpythonアプリじゃないんですよね。

せっかくwxPythonとかexe形式にするためのツールがあるのにそれを活用してるものがないのが残念。
125118:2005/04/21(木) 17:45:54
なんどもごめんなさい。間違えました。

>>123
ありがとうございます。いろいろ勉強してみます。
126デフォルトの名無しさん:2005/04/21(木) 18:15:15
Pythonの名前空間の仕様と動的メモリ管理の仕様が良く判るサイトを紹介して下さい
127デフォルトの名無しさん:2005/04/21(木) 18:22:43
>>124
> 100%pythonで作られた高機能なアプリってないですか?(Windows)

何気に興味深い問いだな。
118さんは pure python であることにどういう意味(意義)があると考えてる?

Python の標準ライブラリの中にも pure Python のモジュールとCで書かれた
モジュールが混在してる。Cで書いた方が速度的なメリットがあるからだけど
Cで書いてあってもやっぱり Python のプログラムだと個人的には思う。
なぜならCで書くと言っても Python 独自の約束事がたくさんあって、
実質的には Python で書くのと大差ない部分が多いから。C API は Python の
言語機能と対応している部分が多い。実際にやってみると、多かれ少なかれ
「Cで Python プログラミングをやっている」という感じがすると思うよ。
128デフォルトの名無しさん:2005/04/21(木) 19:15:18
>>124
>> デコード等の部分が、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
129デフォルトの名無しさん:2005/04/21(木) 22:43:42
python2.4.1をpython.orgからfirefoxでダウンロードするとpython3.4.1.msiって表示されるんだけどどういうこと??
130デフォルトの名無しさん:2005/04/21(木) 23:08:47
pythonのmechanizeでformのリードオンリー属性を外したいんだけど
今は、
b.forms()[0].find_control(コントロール名).readonly = False
でやってるんだけど
b = mechanize.Browser()
b.open(URL)
b.select_form(フォーム名)
ってやった後に簡単に変える方法はないの?
上のでも十分簡単なんだけど見た目が嫌。
131デフォルトの名無しさん:2005/04/21(木) 23:56:51
>129
今ダウソしてみたけど2.4.1だったが?
132デフォルトの名無しさん:2005/04/22(金) 00:48:58
>>131
スマソ。
保存先に2.4.1があったから、3.4.1に変えられたみたい。
もう一個落としたら4.41になった。
133デフォルトの名無しさん:2005/04/22(金) 07:15:01
>>132
いいなぁ。5.51ください。
134デフォルトの名無しさん:2005/04/22(金) 12:54:32
おとすたびにバージョンあがっていいなあ
135デフォルトの名無しさん:2005/04/22(金) 16:12:33
ギリシャ数字 <=> アラビア数字の変換はどうするのが楽?
136デフォルトの名無しさん:2005/04/22(金) 17:15:27
それはギリシャでなくローマ数字
137デフォルトの名無しさん:2005/04/22(金) 18:22:45
今javaで書くのが面倒な処理をJythonで書いているのだが・・・
便利だね〜〜。
138デフォルトの名無しさん:2005/04/23(土) 00:38:43
>>135
それは、いい質問だね。
139デフォルトの名無しさん:2005/04/23(土) 01:29:07
>>135
Pythonだったら変換テーブル作るぐらいしか思いつかない…。
だれかトリッキーな変換できるかや?
140デフォルトの名無しさん:2005/04/23(土) 01:33:08
PEP-313 Adding Roman Numeral Literals to Python
採択されてないけど。
あと、formatter.py のAbstractFormatterクラスにformat_roman()があるが、これはなんだろう。
141デフォルトの名無しさん:2005/04/23(土) 07:27:49
debianでは、
ttp://diveintopython.org/
ここのroman.pyをパッケージにしてあった。
142デフォルトの名無しさん:2005/04/23(土) 09:47:47
みんな、GUIはなに使ってる??
あとビルダ使ってたらそれも教えて下さい。

俺はwxpythonとboa constructorです。
Tkinterの利用を検討中ですが、何かお勧め等ございますか?
143デフォルトの名無しさん:2005/04/23(土) 10:50:14
>>142
その質問、どちらかと言うとFAQだと思うんだけど
あんまり選択肢がないような・・・。
俺はTkinter。前はUnix限定でPyGTKを使っていた。
ビルダは使ってない。

あとGUIで何作ってる?>ALL
考えてみると自作のGUIアプリって少ないんだよねー。
俺の場合、作るのが面倒だからCUIで済ませちゃう傾向にあるのかも。
144デフォルトの名無しさん:2005/04/23(土) 15:05:21
漏れはPyQt。
145デフォルトの名無しさん:2005/04/24(日) 00:37:42
Win2kにおいて日本語文字コードの判定・変更作業がやりたかたったので
色々と検索してみたところpykfというモジュールが適しているように見えました。
http://www.gembook.jp/tsum/page.pys?wiki=PyKf

で、インストールしようとしたところVisutal Studio 7.1が必要だと怒られてしまいます。
どこかにバイナリか、それとも、その他にもっと適した方法ってないでしょか?
146デフォルトの名無しさん:2005/04/24(日) 01:14:15
Cコンパイラが添付されてないOSなんてのは欠陥商品
http://www.python.jp/pipermail/python-ml-jp/2004-September/003034.html
147145:2005/04/24(日) 02:39:32
ヴァージョンが違うと動かないみたいなので
2.3にダウングレードして何とか動きました。
ありがとうございました。
148デフォルトの名無しさん:2005/04/24(日) 03:44:20
>>146
Solarisのことかー
149デフォルトの名無しさん:2005/04/24(日) 03:49:15
>>148
残念。
150デフォルトの名無しさん:2005/04/24(日) 07:59:50
Solarisのsfwパッケージに入ってるPythonをコンパイルしたコンパイラって何なんだろ。
それがないとモジュールをコンパイルできない(っぽい)んだが。
151142:2005/04/24(日) 12:02:48
EasyGuiというモジュールを使ってみた。
高機能ではないがすばらしい。
pythonの標準モジュールに追加すべきだと思った。

>>143
本当に簡単なものしか作らない。
おれはマウス派なんで、引数をチェックボックスで渡したりとか。

でもそのうち、もうちょいグラフィカルなものも作ってみたい。
今の所、ファイラーを検討中。
152142:2005/04/24(日) 13:27:36
ファイラー出来た。
from 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)
153デフォルトの名無しさん:2005/04/25(月) 17:18:58
A
try:
    B
finally:
    C

みたいなコードで、AとCが定型でBだけが変化するとき、
rubyだとyield使ってAとCを一つの関数にくくりだすんだけど、Pythonではどうする?
154デフォルトの名無しさん:2005/04/25(月) 17:55:38
Bを関数オブジェクトにする
155デフォルトの名無しさん:2005/04/25(月) 18:57:43
2.4以降ならデコレーターを使う。

156デフォルトの名無しさん:2005/04/26(火) 01:01:31
激しくアホっぽい質問なんですが、
>>python hoge.py
で、無事に実行されるんですが、hoge.pycファイルが生成されません。
バイトコードってヤツはどこのディレクトリに生成されるのでしょうか?
157デフォルトの名無しさん:2005/04/26(火) 01:30:45
>>156

python(引数なし) で実行して

>>> import hoge

をやると hoge.pyc ができるよ.
158156:2005/04/26(火) 01:44:23
あ、本当だ。157さん、ありがとうございました。
159デフォルトの名無しさん:2005/04/26(火) 02:03:28
2.4以降だが

python -m py_compile hoge.py
他には、compileallモジュールとか。
オプションでコンパイルするファイルの条件を細かく指定できる。

関係ないかも知れないが、
バイトコードは .pyc ファイルの 8バイト目以降にmarshal化されて格納されてる。
160デフォルトの名無しさん:2005/04/26(火) 02:17:42
> バイトコードは .pyc ファイルの 8バイト目以降にmarshal化されて格納されてる。
+1
161156:2005/04/26(火) 02:29:21
(マーシャル化とか分かりませんがw)159さんもどうもです

「プログラミング初めてなら、pythonとかいいんじゃない?
分からいことあったら、俺教えてやれるし。」
と、友人に言われて始めたんですが、
その友人が「インドネシアでラーメン屋やる」とだけ言い残して音信不通になっとりまして、
ここで教えてもらえて助かりましたです。
162デフォルトの名無しさん:2005/04/26(火) 03:10:04
>>161
とりあえず恥パイ二夜買えば?
163デフォルトの名無しさん:2005/04/26(火) 08:34:49
尼.co.jp から cookbook 2nd edition 発送メール北
164デフォルトの名無しさん:2005/04/26(火) 11:32:31
恥パイ2の内容も2.2が中心で、2.4が最新の今となっては物足りなさが否めんなあ。
新スタイルクラスの__new__メソッドすら書いてない。
165デフォルトの名無しさん:2005/04/26(火) 18:21:13
いまさらなんですが2.5からタブのインデントが禁止になると友達に聞きました・・・
なんかPython嫌いになってきました・・・
Perl6でswitch分をgiven〜whenにすると聞いた時もハア?と思いましたが
それに近い気分です・・・。はあ・・・。
166デフォルトの名無しさん:2005/04/26(火) 18:30:29
>>165
エイプリルネタだよ。
まぁ緩和はされるかもしれないね。
167デフォルトの名無しさん:2005/04/26(火) 19:55:37
>>166
釣られてるYO
168デフォルトの名無しさん:2005/04/26(火) 20:52:05
うーむ、にぎわっているな。
169159:2005/04/26(火) 22:09:28
>>161
僕も似たような事いい残して海外へいってしまった経験ありだったりして。# 耳が痛い
オンラインドキュメントだけでも十分、独習出来るだけのリソースがあるので、
自分がいなくてもなんとかなるだろうと打算してました。

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関数が使えます。
170デフォルトの名無しさん:2005/04/26(火) 23:00:15
そんな小難しいことよりも
「python hoge.pyってやったときhoge.pycができなくても心配しなくていいんだよ。そういうもんだから」
でいいんじゃねぇの?
171デフォルトの名無しさん:2005/04/26(火) 23:33:44
そんなことより
俺「実は160は行方不明になった159の友人だったんだ!」
全員で「な、なんだってーーーっ!!!」
俺「と、とりあえずイニシャルを確認汁!」
160「○.○.ですが・・・」
159「あ、合ってるよーーーーーーーっ!!!」
全員で「な、なんだってーーーっ!!!」
という展開キボンヌ。
172171:2005/04/26(火) 23:34:54
160と159が逆だった・・・orz
逝ってくる
173171:2005/04/26(火) 23:37:07
てか160じゃねーし161だし。y=ー( ゚д゚)・∵. ターン
174デフォルトの名無しさん:2005/04/27(水) 00:28:56
>>169
-1
175デフォルトの名無しさん:2005/04/27(水) 02:41:14
TABインデントの件がエイプリルネタだって、今気が付きますた。
176デフォルトの名無しさん:2005/04/27(水) 02:47:46
でも、pythonは良くできた言語だと思う。 タブインデントのせいで非常に見やすいし。。

PerlのOOなんて、関数もだけど、あまりに醜くて、見ててイライラする。
177159:2005/04/27(水) 03:01:12
>>171
状況が似てただけで。インドネシアでもラーメン屋でもないです。残念。

> インデント
タブインデントだと環境によって幅が代わるので、スペース推奨だったはず。
みんなTAB派?
178デフォルトの名無しさん:2005/04/27(水) 03:07:20
PythonIDE使ってるんでTABインデント
179デフォルトの名無しさん:2005/04/27(水) 03:07:31
だってインデントを一段左に戻したい時に
TABだとBSキー一発でいいけど
スペースだとBSキーを何回も押さないといけないでしょ
180デフォルトの名無しさん:2005/04/27(水) 03:31:28
>>177
> タブインデントだと環境によって幅が代わるので、スペース推奨だったはず。
> みんなTAB派?
君は python-mode.el を知らないのかね?
181デフォルトの名無しさん:2005/04/27(水) 03:34:37
>>177
> タブインデントだと環境によって幅が代わるので、スペース推奨だったはず。
> みんなTAB派?
スペース1個でインデントするといいよ
182デフォルトの名無しさん:2005/04/27(水) 04:37:56
Spaceインデント推奨って他の言語だったかな。
Pythonのスタイルガイドに書かれてたのは、
TABインデントとSpaceインデントを混ぜるな でした。

>>179
vi だったら << >>, emacs なら C-c C-l/C-r でインデントの制御できます。
IDEでなくとも shift + TAB でdedentするエディタとか使ってない?

>>180
python-mode.el なら自動判別してくれるけど、みんなが使ってるわけではないでしょ。
183デフォルトの名無しさん:2005/04/27(水) 05:14:36
python用のIDEって何がお勧めですか? komodoとかwingってIDE自体pythonで書かれていて
結構重い。
184デフォルトの名無しさん:2005/04/27(水) 08:40:37
インドネシアでインデントする
185nanashi:2005/04/27(水) 10:45:39
ColdfusionMX7の分散グラフ(Scatter)で、以下のようにデータラベルをつけるにはどうすればよいのでしょうか?

<分散グラフイメージ>
英語  100|      ●久保
     |   ●佐々木
    50|
     |    ●三瀬
     0| ●岩瀬
     -------------------
     0   50  100
            数学

<グラフの元となるデータ>
氏名  英語  数学
久保   100   80
佐々木  75   30
三瀬   30   60
岩瀬   10   30
186デフォルトの名無しさん:2005/04/27(水) 11:08:01
komodoってPythonだったんだ・・・Tcl/Tkだと思ってた・・・
187デフォルトの名無しさん:2005/04/27(水) 17:24:54
wxPython 2.6.0.0がリリースされました.
http://www.wxpython.org/
188デフォルトの名無しさん:2005/04/27(水) 18:01:09
TABの話はタブー
189142:2005/04/27(水) 20:19:13
すいません、質問です。
今、頑張ってpythonでファイラーを作っております。
専門用語がわからないんですが、pythonでWindowsの標準のアイコン
(explorerで表示されるフォルダアイコンとかアプリの関連付けアイコン)
を取得する方法ってありますか?

いろんなpythonアプリを探しましたが、windowsのアイコンを使用しているものは見たことがありません。
可能なんでしょうか?
190デフォルトの名無しさん:2005/04/27(水) 20:38:57
普通のWindowsアプリケーションのやり方探してWin32から叩きな。
といってもShell APIを呼ぶだけだけど。
191189:2005/04/27(水) 21:14:24
>>190
ありがとうございます。
なんとかアイコンの情報を取得する方法を(たぶん)見つけたんですが、

int = win32gui.ExtractIconEx("C:\Windows\NOTEPAD.exe", 0 , 1 )

これを実行すると([30411881], [101256283])が返ってきます。
wxpython等で表示するのに、この数字をどう使えばよいのでしょうか?

pythonとは関係のない内容かもしれませんが、もしご存知であれば、助けてください。お願い致します。
192デフォルトの名無しさん:2005/04/27(水) 21:23:12
>>180
> 君は python-mode.el を知らないのかね?

スペース推奨が最も嫌うタイプだな、君は。

Pythonの標準ライブラリのインデントはTABではなく、スペースで統一されていたはず。
193デフォルトの名無しさん:2005/04/27(水) 21:59:22
>>192
ソースいぢってるときはTabで
然るべき処に投げるときはreでspaces変換
194デフォルトの名無しさん:2005/04/28(木) 00:20:13
 |
 |  インデントインデント!インデントー!をやっていいですか?
 \____  ___________________________/
    /||ミ  V
   / ::::||
 /:::::::::::||____
 |:::::::::::::::||        ||
 |:::::::::::::::||│ /   ||
 |:::::::::::::::|| ̄\   ガチャッ
 |:::::::::::::::||゚ ∀゚)─ ||
 |:::::::::::::::||_/    ||
 |:::::::::::::::||│ \   ||
 |:::::::::::::::||∧ ∧∩ ||
 |:::::::::::::::|| ゚∀゚)/.  ||
 |:::::::::::::::||∧ ∧∩ ||
 |:::::::::::::::|| ゚∀゚)/. ||
 |:::::::::::::::||    〈.  ||
 |:::::::::::::::||,,/\」.  ||          …
 \:::::::::::|| ̄ ̄ ̄ ̄                        ∧_∧
   \ ::::||                       ___\(・∀・  ) < お前ら、誰ですか?
    \||                       \_/⊂ ⊂_ )
                              / ̄ ̄ ̄ ̄ ̄ ̄ /|
195デフォルトの名無しさん:2005/04/28(木) 04:32:23
>191
ExtractIconはSHELL APIじゃなくて普通のAPIだよ。関連づけられてるアイコンだけ取得できたと思う。
返ってきてるのは多分アイコンリソースのハンドル。
ExporerみたいなことやりたいならSHGetFileInfoかな?
MSDNいってしっかり仕様見た方がいいぞ。
196189:2005/04/30(土) 16:36:19
なんども質問をしてすみません。
wxpythonの質問もOKですか?

wxpythonのlistctrlにアイコンを表示させる方法がわかりません。
可能であればbmpファイルをアイコンとして表示することを希望しております。

ご存知の方おりますでしょうか?
197デフォルトの名無しさん:2005/04/30(土) 18:26:58
>>196
wxPythonのデモの中にサンプルソースがあるから
それを見ながら何とかやってくだちい.

デモは,プログラムメニューの
wxPython 2.4 for Python 2.3 -> Run the wxPython Demo から起動.
その中の [Core Windows/Controls] - [wxListCtrl] にサンプルがあるよ
198デフォルトの名無しさん:2005/04/30(土) 23:45:02
wxFileTypeを作ってGetIconInfoしてwxIconを取得してwxImageListにAddして
それをwxListCtrlにAssignImageListしておいてSetItemImage。
デモのMIMETypeManagerとwxListCtrlを参考に。
199デフォルトの名無しさん:2005/05/01(日) 21:34:29
PythonでIEコンポーネントは使えますか?
200デフォルトの名無しさん:2005/05/01(日) 22:53:19
>>199
COMが使えるからできるんじゃない。多分。
201デフォルトの名無しさん:2005/05/02(月) 00:52:40
http://f53.aaa.livedoor.jp/~hatena/up/img/061.zip

PC内を検索するスクリプトを書きました。(GUI付き)
検索方法はwalkをパクって、不要な部分を削っただけですが、
インデックスを作成せずにこれ以上に早く検索する方法が思いつきません。
もし何かアイデアがあれば知恵を貸してください。

みなさまからすればレベルの低いものかと思いますが、是非一度使って見て下さい。お願いします。
あと自分は他の言語が扱えない為、pythonでしか作れません。使用してみて頂いて速度的に
他の言語と比較してどのようなものか感想を頂けるとありがたいです。
202デフォルトの名無しさん:2005/05/02(月) 01:50:55
アクセス権がネーヨと怒られた ●1点
203201:2005/05/02(月) 02:11:09
本当だ。
しかも原因不明です。場所を変えました。

ttp://www.doraemon.instat.ne.jp/cgi-bin/upload/source/up2309.zip

ちなみにスクリプト(.py)の状態なので、変な動作をしていないというのはソースを見て頂ければ
確認できると思います。
またGUIにwxpythonを使用している為、モジュールのインストールが必要です。

冷やかしでも構いませんので、是非落としてみてください。
204デフォルトの名無しさん:2005/05/02(月) 02:19:28
>>203
% python PySearch.py ~
Traceback (most recent call last):
File "PySearch.py", line 3, in ?
from os import listdir,startfile
ImportError: cannot import name startfile

捨て決定
205デフォルトの名無しさん:2005/05/02(月) 06:55:55
>>203
使い方は、[ディレクトリ][空白][検索文字]でいいのかな。

>> 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)とすると、早くなるかも。
ステータスバーにでも速度計って、比較してみてはどうでしょう。
206203:2005/05/02(月) 18:43:26
画像付け忘れてた…

>>205
ありがとうございます。
これほどチェックして頂けるとは思っていませんでした。感激です。
参考にしてこれから色々弄ってみます。

ちなみに205さんは他の言語も利用されますか?
速度的な感想はどうでしょうか?やはりCとかと比べものになりませんか?
207デフォルトの名無しさん:2005/05/03(火) 00:58:08
pythonしか使わない人っているの?
208デフォルトの名無しさん:2005/05/03(火) 01:04:31
>>206
> やはりCとかと比べものになりませんか?

なんだこりゃ?(笑
209デフォルトの名無しさん:2005/05/03(火) 15:54:34
>>207
中にはいるんだろうが、非常に少ないのではないかな。
210デフォルトの名無しさん:2005/05/03(火) 22:50:13

>>206
あまり、言語の違いによって差の出る性質のプログラムではないので
こういったユーティリティ的なものは、Pythonで十分だと思う。

試しに、C++/wxWIdgetsとTcl/Tkで似たようなもの作ってみたけど、
GUIの起動時間が若干気になるくらいで、実行速度の差は(時間は計ってないけど体感速度で)それほど気にならなかったよ。
211デフォルトの名無しさん:2005/05/04(水) 22:11:33
速さにこだわるならインデックス作ればいいじゃん
と思うのは俺だけ?

そういう話じゃない?
212デフォルトの名無しさん:2005/05/05(木) 01:37:36
速度が必要な部分だけCで拡張モジュールにすればいい。

とゆーか>>205>>211の言うような効率化の努力なしに
速度を評価するのは(以下略
213デフォルトの名無しさん:2005/05/05(木) 12:37:52
この場合(>>201のPC内を検索するスクリプト)は、
拡張モジュールにしてもたいして速度改善期待できないよ。
214デフォルトの名無しさん:2005/05/05(木) 13:01:08
MinGWで拡張モジュールかいている人います?
215デフォルトの名無しさん:2005/05/05(木) 13:18:56
216デフォルトの名無しさん:2005/05/05(木) 21:01:43
>>215
3問目でつまづいた。

One small letter, surrounded by EXACTLY three big bodyguards on each
of its sides.

って"[A-Z]{3}[a-z][A-Z]{3}"じゃだめなのれすか?
217デフォルトの名無しさん:2005/05/05(木) 21:25:49
>>216
"EXACTLY" に注意。
それだと4つ以上並ぶこともあるでしょ。
218デフォルトの名無しさん:2005/05/05(木) 21:36:08
おお、できた。ありがとん。
219デフォルトの名無しさん:2005/05/05(木) 22:58:28
僕は6つ目がさっぱり解き方が分からん。
ヒント読んでもさっぱり…。
220デフォルトの名無しさん:2005/05/06(金) 00:02:50
俺もLEVEL 6で詰まってるよ。
とりあえずForumにでてくる"[verb] the [nouns]"までは分かった。
そっから分かんない・・・orz
221デフォルトの名無しさん:2005/05/06(金) 00:39:10
Level5の解答ページみたいなのにたどり着いたけど、そこからどうしたらいいのかわからん。
222デフォルトの名無しさん:2005/05/06(金) 00:49:47
一問目?から意味がさっぱりわからない件について
223デフォルトの名無しさん:2005/05/06(金) 00:56:59
>>222
一問目っていうのは、LEVEL0? LEVEL1?
224デフォルトの名無しさん:2005/05/06(金) 01:14:23
Level0です。
225デフォルトの名無しさん:2005/05/06(金) 01:20:07
>>221
>>222
Hint: look at the URL address.
226221:2005/05/06(金) 01:23:04
>>224
基本的に、答えの文字列をURLにしたものが次の問題のページ。
例えば答えが「python」ならば
www.pythonchallenge.com/pc/def/python.html
に次の問題が書いてある。

Level0は中学レベルの計算問題だ


Level5はなんとかできた。Level6をこれからやってみる。
227デフォルトの名無しさん:2005/05/06(金) 01:31:37
Level0どうにかでけた。
左上の0はLevelの意味で問題とは特に関係なかったのね。

しかし、Level1わからん。
228デフォルトの名無しさん:2005/05/06(金) 01:33:08
シーザー暗号がわからないのか
それともシーザー暗号をPythonで解く方法がわからないのか?
229デフォルトの名無しさん:2005/05/06(金) 01:33:20
何を答えればいいのか全く分からない。
フォント名?モニタのメーカ名?背景の場所?
230デフォルトの名無しさん:2005/05/06(金) 01:35:59
同じくLEVEL6がさっぱり分からん・・・
>>226分かったらヒントおくれ
231デフォルトの名無しさん:2005/05/06(金) 01:38:50
>>229
>フォント名?モニタのメーカ名?背景の場所?
てことはLEVEL 0?

だったら、そこに書いてある数字。
232デフォルトの名無しさん:2005/05/06(金) 01:41:39
pow(2,38)で駄目だったんだけど・・・
漏れには向いてないな・・・落ち
233221:2005/05/06(金) 01:44:13
>>230
ヒント:ダウンロード

でも、またいきづまった・・・
234デフォルトの名無しさん:2005/05/06(金) 02:05:40
今日初めてpythonに触った俺でもlv1まで出来た。
でもpythonは関係ない気がする。
これからpython風になっていくのか?
眠いから寝る。
235221:2005/05/06(金) 02:10:42
>>234
Level5を解くにはPythonが必要。
そこまではperlとか他の言語を使ったり、手作業の力技でもできるかもしれない。

>>220さんとおそらく同じところで詰まったままだ・・・今日はもう寝る。
236デフォルトの名無しさん:2005/05/06(金) 02:28:46
coreblogのおっさんはlv7までいったらしいが自己満足だろ結局は。
別に優秀なプロブレムソルバーじゃなくてもいいよ。問題提起側になるから。
分かったことは詰めvi的要素は鴨寄せに効果的だということだ。
237デフォルトの名無しさん:2005/05/06(金) 03:10:39
Level5の出てきた配列をどうしたらいいかわっかんね
238デフォルトの名無しさん:2005/05/06(金) 04:06:49
>>237
狭いttyだとチョトきつい。
239デフォルトの名無しさん:2005/05/06(金) 08:47:30
面白いね、コレ。
とりあえず、Level6 "C" ではじまるものを集めるとこまで出来た。
240デフォルトの名無しさん:2005/05/06(金) 09:26:34
lv.3を解いたと思いきや、
解.htmlには解.phpという文字列のみ。罠に嵌ったのかな。
241デフォルトの名無しさん:2005/05/06(金) 09:36:34
Level6がさっぱりんこ
242デフォルトの名無しさん:2005/05/06(金) 09:53:43
あ、240はスルーしといてください。罠もなにもって感じ。
243デフォルトの名無しさん:2005/05/06(金) 11:06:56
L5、何でひとつのフラットなリストじゃないんでしょうねえ?
って言われてもさっぱり・・・
244デフォルトの名無しさん:2005/05/06(金) 11:16:50
おまえらそのサイト管理者からログとられてるぞ。
ニホンジンの思考パターンは・・・・w
245デフォルトの名無しさん:2005/05/06(金) 12:05:35
LEVEL6むずすぎ
246デフォルトの名無しさん:2005/05/06(金) 12:10:26
>>243
プログラミングはアートなんだよ


もれは、Level6の最初のメッセージが得られない。
誰かヒント教えて。
247デフォルトの名無しさん:2005/05/06(金) 13:24:17
Level6やっと集めたけど、そのあとがまたわからないし('A`)
248221:2005/05/06(金) 13:57:29
今、仕事中なので出来ない。

Level6は、html→zipに変更してダウンロードしたファイルを処理するとメッセージが書いてある。
そのメッセージが「○○を集めろ」なんだが、どこから集めてきたらいいのかがわからない。
ヒントくれ。
249デフォルトの名無しさん:2005/05/06(金) 14:06:05
Level6デキタ━(゚∀゚)━ !!
Level7むずかしそう。

>>248
モジュールを使いこなすのだ。
250デフォルトの名無しさん:2005/05/06(金) 14:35:00
1が全然わからん

238がどうかしたの?
251デフォルトの名無しさん:2005/05/06(金) 14:46:37
Level7は簡単でした。

>>250
読み方が違う。
252デフォルトの名無しさん:2005/05/06(金) 15:32:09
おまいら頭いいな
253デフォルトの名無しさん:2005/05/06(金) 16:02:24
5の中途半端に規則性のあるデータ、どうしたらいいのやら。
"banner.p"ってのの意味を考えもしたけど。
254デフォルトの名無しさん:2005/05/06(金) 16:08:02
パズルを解く能力だけで頭がいいのだとしたら漏れは頭がよくなくていいよw
255デフォルトの名無しさん:2005/05/06(金) 16:35:43
>>248のヒントでLevel6解けた!
後は結構簡単で、Lv9挑戦中。コーディング面倒っぽいな・・・
>>253
Pythonモジュール一覧を眺めながら、"peak hell"と唱えてみる。
256デフォルトの名無しさん:2005/05/06(金) 17:31:30
>>250
2^38
257デフォルトの名無しさん:2005/05/06(金) 18:37:27
今、level6で>>274の状態。集めたけどどうするのこれ
258デフォルトの名無しさん:2005/05/06(金) 18:38:47
257は未来派野郎
259デフォルトの名無しさん:2005/05/06(金) 18:57:48
http://p5091-ipad02miyazaki.miyazaki.ocn.ne.jp/

っうぇwwwwwwwwwwwwおkwwwっうぇっうぇ


おkwww

wっっっwwwwwwwwおkwww
wwwwwwwwwwwwっwwwwwwwww
260デフォルトの名無しさん:2005/05/06(金) 19:01:19
Level12まで来たけど、Level6が一番難しかった。
261デフォルトの名無しさん:2005/05/06(金) 19:15:44
Lv.14まで来たけど、Lv.0が一番難しかった。
262デフォルトの名無しさん:2005/05/06(金) 19:16:24
Lv.11 どーすりゃえーのー?
263デフォルトの名無しさん:2005/05/06(金) 19:35:05
Level14解き中

>>262
画像ビュアーで拡大すると何か分かるかも
264デフォルトの名無しさん:2005/05/06(金) 19:56:51
>>263
拡大したり一行おきに間引いたりしてんだけど解に結び付けられない・・・。
265264:2005/05/06(金) 20:16:18
あ、解けた・・・・(;∀;)
266デフォルトの名無しさん:2005/05/06(金) 20:56:52
Level1なんですが、文章は一応読めたんですが、string.maketransを何に対して適用したらいいの?
267266:2005/05/06(金) 21:03:55
わかった。Lv2さっぱりわからんね。
268デフォルトの名無しさん:2005/05/06(金) 21:20:03
Lv6わからん…
これってLv4と関係ある?
どのモジュール使えばいいんだー
269デフォルトの名無しさん:2005/05/06(金) 21:38:12
Level6、暗号みたいなの出てきた。どこを立て読みするんだ?って感じだ。
ある規則で拾い読みするんだろうけど・・・一難さってまた一難、ぶっちゃけ(ry だ・・・
270デフォルトの名無しさん:2005/05/06(金) 21:53:02
Lv3だれか教えて!
271221=269:2005/05/06(金) 22:02:36
やっとLv6解けたー∩( ・ω・)∩

>>270
ヒント:>>216
272デフォルトの名無しさん:2005/05/06(金) 22:04:14
なんかすっかりチャレンジ大会になっちゃってるな。
273デフォルトの名無しさん:2005/05/06(金) 22:19:39
>>216の真中の小文字を繋げてみたんだけど、有意な文章になってくれない。
URLにそのままいれてみたんだけどダメだったし。
もっとヒントありますか?
274デフォルトの名無しさん:2005/05/06(金) 22:24:34
>>273
>>216そのものじゃなくて、もう少し絞りこまないと。
275デフォルトの名無しさん:2005/05/06(金) 23:38:47
lv5の数値を云々したのがasciiコードとかって事はあるのかな。
シャープの有無とか、よくわかんね。
276デフォルトの名無しさん:2005/05/06(金) 23:45:04
>>272
まぁお勉強スレだからな。
277デフォルトの名無しさん:2005/05/07(土) 00:32:10
Lv4やってたら、途中でアクセスできなくなった。
278デフォルトの名無しさん:2005/05/07(土) 00:40:03
>>277
「そんなページありません」だったら、トラップに引っ掛かってるからひとつ前に戻ってよく見る。
それともネットワーク的な問題で接続できないのか?
279デフォルトの名無しさん:2005/05/07(土) 00:42:58
バグでコネクション張りっぱなしな上、300回以上回したとか。
280デフォルトの名無しさん:2005/05/07(土) 00:48:08
バグじゃなくて、数字をprintoutしながら眺めてたら途中で接続できなくなってました。
30分ぐらいトップのページもアクセスできない状況だったんだけど、
さっき急に繋がるようになって、Lv5に進めました。
でも今度も難しそうだ・・・。
281デフォルトの名無しさん:2005/05/07(土) 01:34:54
Lv6の"the XXXXXXXs"が何を指してるのかさっぱり
282デフォルトの名無しさん:2005/05/07(土) 01:36:44
だめだ。Lv5わからん。
"peak hell"ってドキュメントのどこにも見つからないんだけど。
chmファイルが見れない状況なんで、htmlダウンロードしてきたんだけど、
これじゃだめなのかなぁ?
283デフォルトの名無しさん:2005/05/07(土) 01:55:31
>>281
「answer is inside the XXX」ってあるだろ?つまりその中に「the XXXXXXXs」があるんだよ

>>282
それ、探すんじゃなくて「発音しろ」って書いてあるでしょ


で、俺はLevel10で意外に苦戦中。計算は合ってると思うんだが違うみたい。
長さを求めればいいんだよね?
284282:2005/05/07(土) 02:19:16
>>283
なるほどそういう意味か。でも、その部分は解決してて、
その後のデータがなにを意味するのかわからない。たして95のリストってのはわかったんだけど。
285283:2005/05/07(土) 02:44:12
>>284
ん〜・・・ほど良いヒントを出すのが難しい・・・
2ちゃんねらーだったら良く見るんじゃないのかなあ・・・。パズルですよ。

で、誰かおれにもヒントください。len(a[5])は何になります?
286デフォルトの名無しさん:2005/05/07(土) 02:53:31
>>275
>>284
man banner

>>285
6
287283:2005/05/07(土) 03:14:26
>>285,>>286
どうにか解決しました。
Lv6って・・・。上でもわからんって声があがってるけど、わけわかめね。
288263:2005/05/07(土) 03:51:49
21:10ごろLevel 16クリアしてまつ

>>287
Level 6は結局のところ「Level 4+Level 5+α」みたいな。
ただ、正式な手順じゃなく力技でも解けそう。
289デフォルトの名無しさん:2005/05/07(土) 04:30:31
>>286
なるほど。やっとlv5クリアできた。
みんなよく気付くなぁ。
290デフォルトの名無しさん:2005/05/07(土) 05:31:05
level6が簡単で拍子抜けした。moduleをというhintのおかげだけど。
291デフォルトの名無しさん:2005/05/07(土) 06:51:56
level 4で無限ループに陥るんだが、なんでだろ。
逝ってきまつ。
292291:2005/05/07(土) 07:28:45
自己解決。なんだったんだろう
293デフォルトの名無しさん:2005/05/07(土) 09:47:26
17問目キター!
294デフォルトの名無しさん:2005/05/07(土) 13:45:54
Lv6.何を集めればいいのかなぁ?あのパッケージの中で完結してるの?
295デフォルトの名無しさん:2005/05/07(土) 14:18:32
>>294
アーカイブのファイル一覧を見れば、なにやら普通のとはちょっと違う事に気付くと思う。
unixならunzip -lとか。
296デフォルトの名無しさん:2005/05/07(土) 14:57:13
level5が分からないです。
95のリストってところまでわいけたんですが…。パズル…???
297デフォルトの名無しさん:2005/05/07(土) 15:36:51
level7で、最後のヒントまでいけたのですが、
文字になりません…。
298デフォルトの名無しさん:2005/05/07(土) 16:19:26
>>296
北チョソのマスゲーム
299デフォルトの名無しさん:2005/05/07(土) 16:23:28
>>295
zipにあんな機能があったなんて知らなかった・・・。ちょっと汚いな。

で、その後のページの意味がさっぱりで、未だにLv6。
誰か、HINTを。
300デフォルトの名無しさん:2005/05/07(土) 16:25:37
>>299
そこまでいったなら頭冷やせ。
301デフォルトの名無しさん:2005/05/07(土) 16:25:51
>>297
レベル7ってグレーのやつか。
ある処理でヒントが出てきたのなら、そのヒントに同じ処理すれば答えが出るよ。
302デフォルトの名無しさん:2005/05/07(土) 17:55:25
おお〜!
>>298
ありがとう。
解き方分かったからスクリプト書いて答えが出た時は感動しました。
303デフォルトの名無しさん:2005/05/07(土) 19:08:51
that's a handy little function. isn't it?
どういうこっちゃ...
304263:2005/05/07(土) 20:16:41
>>303
関数名をそのまま打つんじゃなくて、
解読した文の最後にURLをどうしたらいいか書いてある。
305デフォルトの名無しさん:2005/05/07(土) 22:38:12
Lv1で詰まった。
俺も文を読むところまでは出来たんだけど、そこからが全然。
306デフォルトの名無しさん:2005/05/07(土) 22:45:46
307デフォルトの名無しさん:2005/05/07(土) 23:24:39
Lv.6がやっと解けた。というより、ありがとう>>295
Python使いじゃないから厳しかった。
308デフォルトの名無しさん:2005/05/07(土) 23:56:52
マジでLv.0すら解らん。
いっそのこと答えを教えてくれ。
309デフォルトの名無しさん:2005/05/08(日) 00:06:16
>>308
1024ってのは、2の何?
310デフォルトの名無しさん:2005/05/08(日) 01:12:09
Lv7なにすりゃいいかさっぱり。

>>308
いっそ、ずるして先進んじゃうとか。今、Lv0で0.htmlなんだから、先っていったら・・・。
311デフォルトの名無しさん:2005/05/08(日) 01:15:37
>>308
>>256に答え書いてある
312デフォルトの名無しさん:2005/05/08(日) 03:18:01
電話帳の使い方が分からん。
313デフォルトの名無しさん:2005/05/08(日) 03:59:47
ふぅ、やっとわかった。
314263:2005/05/08(日) 04:01:37
>>312
*********モジュールで電話帳につないで
《動詞》('《固有名詞》') で電話番号検索

Pythonならスクリプト書かなくても
コマンドラインモードでOK
315デフォルトの名無しさん:2005/05/08(日) 04:12:07
>>314
サンキュ。
あともうちょっとなんだよなぁ。番号の下7桁は分かった。
316315:2005/05/08(日) 04:24:58
やられた。フォーラムを読み直してやっと分かった。
317デフォルトの名無しさん:2005/05/08(日) 05:32:58
>>307
Python以外で挑戦してる人って他にもいるかな?
318デフォルトの名無しさん:2005/05/08(日) 05:54:35
307は普段pythonをあまり使わない人であって、
今回の問題のうち半数ぐらいはpythonで解いてるのではなかろうか。
319307:2005/05/08(日) 06:12:32
>>317
>>318
積極的にpython以外を使っているのではなくて、ただpythonを使えないだけ。
今のところ15まで解いて、pythonを使ったのは5、8、13だけ。
320デフォルトの名無しさん:2005/05/08(日) 06:23:00
ヒントを何度も読んでやっとlv10の解き方が分かったよ……。
さて、実際に自分でコーディングしたものかどうか。
321デフォルトの名無しさん:2005/05/08(日) 06:26:55
322デフォルトの名無しさん:2005/05/08(日) 06:37:14
問題固定だからあと1ヶ月ももつかどうか・・・
323デフォルトの名無しさん:2005/05/08(日) 06:46:47
あ、lv10のコードは簡単だった。
lv11の画像、俺の一^H二昔前の液晶だとすげーチラつくorz
こんなの初めて見た。
324307:2005/05/08(日) 09:20:01
Lv.17で完全に行き詰まった。とっかかりすら分からない。
325263:2005/05/08(日) 12:13:17
Level 17解けたけど文章の意味が「?」で
キーワード分からん‥‥

>>324
あることをすると《変数名》が分かる
後は過去のLevelをいろいろとリサイクル
326デフォルトの名無しさん:2005/05/08(日) 12:59:12
で、楽しかったですか?
327デフォルトの名無しさん:2005/05/08(日) 13:00:21
で、自己満足は満たされましたか?
328デフォルトの名無しさん:2005/05/08(日) 13:03:16
楽しかった、満たさた。
329デフォルトの名無しさん:2005/05/08(日) 13:18:23
level7 最初からわかんない。
decode messageってこのページ内に適応するの?
それとももっと後の方で使うhint?
330デフォルトの名無しさん:2005/05/08(日) 17:02:27
Level 2 がわからん。
出現頻度で調べる?
331デフォルトの名無しさん:2005/05/08(日) 17:31:28
>329

Lv.7は非標準ライブラリを使わないと解けない。
cygwin版pythonでも解けるのかな?
漏れはWindows版のpythonとライブラリをインストールした。
332デフォルトの名無しさん:2005/05/08(日) 17:56:59
実践的にPythonのモジュールと関数の使い方が理解できるクイズだ。
おもひろいわ〜。
333デフォルトの名無しさん:2005/05/08(日) 17:58:20
Level7は使ったことないライブラリだと面倒なので、普通の画像アプリ使ってデータ拾って解いた・・・
334デフォルトの名無しさん:2005/05/08(日) 18:12:43
>>321
http://d.hatena.ne.jp/shinichiro_h/20050507#1115402170
>結局 Python なんて微塵も使ってません。0 が bc 、1が手動、2,3が Perl のワンライナーで、後は全部 Ruby 。 Ruby/SDL 万歳。
335デフォルトの名無しさん:2005/05/08(日) 18:17:46
>>331,>>333
うーん。画像フォーマットは一通り扱えるけど、
それ以前に、その画像何処な状態です。
336デフォルトの名無しさん:2005/05/08(日) 18:24:12
( ゚д゚ ) ポカーン
337デフォルトの名無しさん:2005/05/08(日) 18:53:14
>>321
>ここから先はRubyだけではできないので,ここで中断.Python勉強しないとだめだなこりゃ(笑

>>334
338デフォルトの名無しさん:2005/05/08(日) 18:53:32
lv5をpython無しでどのようにやったんだろ。
339デフォルトの名無しさん:2005/05/08(日) 19:01:02
http://gonypage.ddo.jp/diary/
>結局ぼくには「やっぱりRuby信者はヤバイ」ということしかわからなかった。
340デフォルトの名無しさん:2005/05/08(日) 23:14:51
Level 12ではまった。。

○○を分解して、文字は見えたのだけどそれをどう使うのか。。
ど〜しても解らない。
341デフォルトの名無しさん:2005/05/08(日) 23:54:56
>340

わかった!
ちょっとだけFirefox(or Mozilla)と英語力がいるね。
342デフォルトの名無しさん:2005/05/09(月) 00:19:37
俺もlv12やっと解けた。
なんかずいぶんひっかけられたよ。
画像操作とかいろいろ。
343デフォルトの名無しさん:2005/05/09(月) 03:12:22
lv13, 7桁は分かったが。。。
344デフォルトの名無しさん:2005/05/09(月) 03:13:16
s/7/8/
345314:2005/05/09(月) 03:29:35
>343

lv13はここまでの(とは言ってもlv7以降の)URL表記に似たURLを入力しないと
次に進めない。8桁全部入力する事にこだわらずいろいろ試してみて。

漏れは今はlv16...
砂の嵐。。
346341:2005/05/09(月) 03:30:34
>345

名前間違えた。
×314
○341
347デフォルトの名無しさん:2005/05/09(月) 06:14:16
level14で、上空から見た台風の目モドキしか得られない。
348デフォルトの名無しさん:2005/05/09(月) 18:52:14
Level 11わからん。
ある規則で塗りつぶすっていう方針は、あってますか?
「o** e***」 は関係ありますよね?
349デフォルトの名無しさん:2005/05/09(月) 18:53:38
hintはforumで書け
350263:2005/05/09(月) 23:25:08
>>347
写真をよく見て
351デフォルトの名無しさん:2005/05/10(火) 00:01:58
Forumで簡単だと言われているLV8が一向にわからん。
残念でした的なページはいくつか見れたけど…
352デフォルトの名無しさん:2005/05/10(火) 00:20:23
>>351
最初の2文字に注目
353351:2005/05/10(火) 00:53:15
>>352
おかげでできました。
英語の駄洒落が多いのな…。
354デフォルトの名無しさん:2005/05/10(火) 08:45:26
>>334
1を手動でやったら怒られますが何か?
355デフォルトの名無しさん:2005/05/10(火) 09:01:49
Pythonでどこまでできますか?
winnyみたいなのつくりたいのですが。
356デフォルトの名無しさん:2005/05/10(火) 09:19:41
>>355
http://www.freedom-to-tinker.com/tinyp2p.html
これを参考にすればええんで内科医
357デフォルトの名無しさん:2005/05/10(火) 10:14:08
なんだかHTTPDのディレクトリにおいて使うみたい?
これは、これでおもしろいけど、GUIで使いやすいのがほしい。
358デフォルトの名無しさん:2005/05/10(火) 20:46:18
>>355
BitTorrentはPythonだよ。
359デフォルトの名無しさん:2005/05/10(火) 21:46:20
PyOpenGLで3Dの文字列を表示させようとして
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=14
を参考にやってみましたが、文字幅の取得がうまくいきません。

詳しく書くと、wglUseFontOutlines関数の最後の引数で、
GLYPHMETRICSFLOATのリストへのポインタを渡すようなのですが、
その渡し方がわかりません。
たぶんGLYPHMETRICSFLOATPtrというクラスを使うと思うのですが...

教えてください。お願いします。
360デフォルトの名無しさん:2005/05/11(水) 08:00:56
pythonスクリプト起動時にcmdを起動させない方法はありますか?
361デフォルトの名無しさん:2005/05/11(水) 08:13:41
>>360
python.exeの代わりにpythonw.exeを使えばおk
362デフォルトの名無しさん:2005/05/11(水) 14:37:03
lv15って向うの文化にfamiliarじゃないとキツい?
363デフォルトの名無しさん:2005/05/11(水) 15:04:12
>>362
そんなことはないと思うけど、googleの助けが必要だと思う。
364デフォルトの名無しさん:2005/05/11(水) 15:50:04
Lv17がさっぱり。。。方針がまったく思い浮かばない。なにをp***( または e**? )するの?
365デフォルトの名無しさん:2005/05/12(木) 00:44:01
>>338
自分の場合はbannerっていうのと' 'と'#'でピンと来てpython使わずに解いたのですが、
無理やりかなという感じで釈然としません。
どのへんがpythonなのでしょう?
366デフォルトの名無しさん:2005/05/12(木) 01:05:52
>>365
' ' と '#' からなるデータだと気付くためには?
367デフォルトの名無しさん:2005/05/12(木) 01:10:54
クイズが出てからこのスレ活発になったね
368デフォルトの名無しさん:2005/05/12(木) 13:40:21
(総レス数)ー(クイズネタ)=(前といっしょ)
369デフォルトの名無しさん:2005/05/12(木) 19:25:56
pythonって人気ないのかな。
世界的には、perlの次くらいの人気らしいけど。
370デフォルトの名無しさん:2005/05/12(木) 19:34:29
英語読めないと国内のシェアが全てだからな。
371デフォルトの名無しさん:2005/05/12(木) 22:43:47
NASAもGoogleもPython。TeXのポジションと同じだ。
372デフォルトの名無しさん:2005/05/12(木) 22:45:41
Texは本がいっぱい出てるからいいが…
pythonは厳しいよ。資料少なすぎ。(日本語の)
我ながらマゾだと思う。
373デフォルトの名無しさん:2005/05/12(木) 22:58:01
まぁ、プログラミング言語なんて
突き詰めれば「好きなもの使えばいいじゃん」(お仕事だとそうも言ってられないのは確かだが)なんで

このスレ住人はPythonを愛して行くってことでいいんジャマイカ。
とはじパイ1版を1/3で放置してる初心者以前が言ってみるテスト。
374デフォルトの名無しさん:2005/05/12(木) 23:34:57
C/C++実装のプロトタイプとしてPythonほど便利な言語は存在しない。
資料は本家の完璧なドキュメント類の他は必要ない。
375デフォルトの名無しさん:2005/05/13(金) 00:11:11
8で蜂か
376デフォルトの名無しさん:2005/05/13(金) 02:58:54
>>364
2109, 2965
377デフォルトの名無しさん:2005/05/13(金) 10:12:38
pythonでつくったおもしろそうなソフトがあれば教えてください。
378デフォルトの名無しさん:2005/05/13(金) 11:19:50
bittorrent
ソースも公開されてるし
379デフォルトの名無しさん:2005/05/13(金) 17:22:39
つか、こんなの学生の言語オタしか使ってねーだろ。
380デフォルトの名無しさん:2005/05/13(金) 17:37:42
どんなの?
381デフォルトの名無しさん:2005/05/13(金) 18:20:08
>>379
博士:何か疑問が生じたときは、とりあえず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)
382デフォルトの名無しさん:2005/05/13(金) 18:31:49
( ´,_ゝ`)
383デフォルトの名無しさん:2005/05/13(金) 20:33:49
>>338
自分の場合はライブラリの移植経験があったから、
Lv5をとりあえずrubyで。http://d.hatena.ne.jp/teamikl/20050508

出現頻度が低い ' ' と '#' が重要なデータだと気付くのって...?
よければ、どういう過程で解いたか教えて下さい >>365

384デフォルトの名無しさん:2005/05/13(金) 20:54:25
>>381 激しくワラタ
385デフォルトの名無しさん:2005/05/13(金) 22:48:01
ruby嫌いなんだけど。
rubyって存在価値あるの?(反語)
386デフォルトの名無しさん:2005/05/13(金) 23:14:53
Martin Fowler氏がご立腹なされた様子です
387デフォルトの名無しさん:2005/05/13(金) 23:19:18
>>377
blenderで感動しろ
388デフォルトの名無しさん:2005/05/13(金) 23:24:38
Blenderって、例のLinux上の3D アニメ作成システムか?
本買った。Linux&OOSのアピールにちょっと使った。
でもパイパン使ってるとは知らなんだ
389デフォルトの名無しさん:2005/05/13(金) 23:52:59
いや、C/C++だけどAPIがPython
390スーパー・スリーパー:2005/05/13(金) 23:59:55
結構あるよな、すげぇメジャーなアプリで、
有名だけど使ってる奴が少ない言語が組み込まれてるの。

・WinCVSとTcl
・GIMPとSCM
・EmacsとLisp

ダメだ、自虐になってる orz
391デフォルトの名無しさん:2005/05/14(土) 00:02:49
× SCM → ○ Scheme
392デフォルトの名無しさん:2005/05/14(土) 00:04:24
え? Guileじゃなくて、SIOD(Scheme In One Day)から発展したSCMじゃねぇの?
393デフォルトの名無しさん:2005/05/14(土) 00:05:39
案外知られていない GIMPの処理記述言語・・・ねぇ、サスマン&スティールさんなんとか言ってよ
394デフォルトの名無しさん:2005/05/14(土) 00:09:12
すげーメジャーなPythonアプリと言ったらやっぱコレだろ。
http://fedora.redhat.com/projects/anaconda-installer/
395デフォルトの名無しさん:2005/05/14(土) 00:17:11
Linuxインストーラが、すごく不気味な事を言い出すんです
「ニシキヘビが丸呑みできなかった」とか。
396デフォルトの名無しさん:2005/05/14(土) 01:53:12
>>377
流行りのソフトだとiPodderとか。
397デフォルトの名無しさん:2005/05/14(土) 02:02:00
>>396
はじめてみるソフトだが流行っているのか?
398デフォルトの名無しさん:2005/05/14(土) 02:55:23
Basic、約 28,200,000 件
ベーシックっていまだに人気あるのか?? 
ちょっと裏がありそう。
399デフォルトの名無しさん:2005/05/14(土) 03:12:36
>>398
VB
400デフォルトの名無しさん:2005/05/14(土) 04:19:32
basicなんて一般的な単語だからヒットも多いんでしょ。
401デフォルトの名無しさん:2005/05/14(土) 04:55:24
402デフォルトの名無しさん:2005/05/14(土) 06:14:29
>>401
basics Ruby programming とか basic GUI programming with wxPython
とかも山程引っ掛かるよなあ。

basicのヒット数の主要因が399が示唆する通りVBだとすると、
(vb OR "visual basic") programmingで出る6,370,000の方が
妥当な数字だと思うが。

403デフォルトの名無しさん:2005/05/14(土) 08:18:47
本文の中に
「basic skills needed to program Python are...」
とか
「In Python, it is basically a matter of...」
なんて書いてあっても検索に引っかかっちゃうんじゃないの?
404デフォルトの名無しさん:2005/05/14(土) 11:07:04
Java has Smalltalk's OOP system, C++'s syntax, Fortran's numeric calcurating power, and now it has applicative language's expression (i.e. XML or AspectJ).
405デフォルトの名無しさん:2005/05/14(土) 12:34:15
ここはgoogleの検索件数に厳密さを求めるインターネット
406デフォルトの名無しさん:2005/05/14(土) 17:17:38
it's in the air.

検討もつかない
407デフォルトの名無しさん:2005/05/14(土) 20:03:48
再度よーく見ろ
408デフォルトの名無しさん:2005/05/14(土) 22:08:07
Lv9 'connect the dots'できて思い浮かぶ単語を試してみたけどだめだー
どなたかhintください
409デフォルトの名無しさん:2005/05/14(土) 22:41:47
沢山dotsがあるでしょ? それをconnectするのですよ。
410デフォルトの名無しさん:2005/05/14(土) 22:43:42
411デフォルトの名無しさん:2005/05/14(土) 22:49:44
>409
ありがと。形にはなったんだけどどう答えたらいいのかわからなくて
412406:2005/05/15(日) 01:54:27
>>407

穴のあくほど見たんですが、わかりません・・・
413デフォルトの名無しさん:2005/05/15(日) 02:09:47
Pythonって、なんか配列へのアクセスがやたらと遅いんだけど・・・↓
ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html
414デフォルトの名無しさん:2005/05/15(日) 02:36:16
だから?
415デフォルトの名無しさん:2005/05/15(日) 02:58:46
すばらしいことですよね
416デフォルトの名無しさん:2005/05/15(日) 02:59:12
>>413
配列にアクセスしないようにプログラムを組めばいいから、
配列へのアクセスが遅い問題は実用上解決しているよ。

実際、Pythonでは配列はあまり使われてない。
417デフォルトの名無しさん:2005/05/15(日) 04:30:18
>>413
そこのリンクにある比較サイト(今は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のリストの実装見ればわかるけど、配列の各要素は
連結リストではなく、メモリ上に連続して並んでるので、
アクセス速度は配列サイズに関わらず一定になる。
418デフォルトの名無しさん:2005/05/15(日) 05:08:06
http://7.92.111.219.dy.bbexcite.jp/
ぷぷぷぷはぷぷwぷwぷwぷぷwぷぷwぷwぷwっうぇ
おkぷぷぷおkぷぷぷwぷぇぷwぷぷぷぷぷ
ぷwみぷぷwぷw
wぷぷぷ
おkぷぷぷぷぇぷwぷっうぇ

419うんこ:2005/05/15(日) 12:38:08
def log(fn):
 if 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)
420うんこ:2005/05/15(日) 12:56:34
def log(fn):
 if 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
421デフォルトの名無しさん:2005/05/15(日) 18:35:35
ここでうんこをしてはいけません
422デフォルトの名無しさん:2005/05/16(月) 07:26:02
価格.comがクラッカーにホームページ改竄されたみたい。ウイルス仕込まれたりもしたそうで。
で、そこのサイトのディレクトリにMod_pythonのマニュアルが置いてあった。
クラッカーが置いていったのかな?

【kakaku.com】データ改ざん、閲覧者ウイルスに感染
http://news19.2ch.net/test/read.cgi/news/1116186996/
423デフォルトの名無しさん:2005/05/16(月) 10:16:26
424デフォルトの名無しさん:2005/05/16(月) 15:49:46
Q13で行き詰っていまつ。ヒント御教授下さい。
425デフォルトの名無しさん:2005/05/16(月) 16:50:32
>>424
エラーメッセージから、向うが何であるかを推測しよう。
426デフォルトの名無しさん:2005/05/16(月) 20:59:07
>>425
XML-RPC か php くらいしか思いつかん。

>>424
13で詰まり同士ハケーン
黄色くて悪いやつの名前まではわかったみたいなんだが、どうやって電話をかけるのかがサパーリ
427デフォルトの名無しさん:2005/05/16(月) 21:55:17
>>426
あと一息だ。想像力と和英辞書で乗り切れ。
428デフォルトの名無しさん:2005/05/16(月) 23:24:28
私はQ6で詰まってます。
pythonでimport zipfile使って
"Collect the comments."まで出ましたが、
コメントがサッパリデス。
ヒント下さい。
429デフォルトの名無しさん:2005/05/17(火) 00:22:12
ZipInfoオブジェクトのヘルプかunzipコマンドのヘルプでも眺めてたら、
zipアーカイブのある機能に気づくかも。
430デフォルトの名無しさん:2005/05/17(火) 06:17:00
>>429
気づいても得た結果をどうしたらいいのか
分からない。ここらへんが俺の限界。
431デフォルトの名無しさん:2005/05/17(火) 09:19:52
>>430
もう一度似たような事をするんだ
432デフォルトの名無しさん:2005/05/17(火) 15:24:08
私も同じとこで詰まってます>>430
433426:2005/05/17(火) 16:33:36
>> 427
電話番号の使い方がわかんないデスよ(苦笑)。
旅行したことくらいはあるので数字になおすんだろう、まではわかるんだけど。
引き算してみたりもしたけど 404。

>> 430
コマンドラインのunzip ツールを使ってみましょう。
434デフォルトの名無しさん:2005/05/17(火) 16:47:38
Hint: 8桁全部使う必要はない。
435デフォルトの名無しさん:2005/05/17(火) 17:43:54
forumでもそう読んだのだけど、まだ分からない、、、。>>431
それぞれの数を数えてみたり、zip(list1, list2)を使うのかな?とか、見当外れ?
436デフォルトの名無しさん:2005/05/17(火) 18:30:25
>>435
最初のコードにちょっと足すだけ
437デフォルトの名無しさん:2005/05/17(火) 20:21:10
pyvm -- faster python
http://mail.python.org/pipermail/python-list/2005-May/280070.html
大体2倍ぐらい速くなるらしい
438デフォルトの名無しさん:2005/05/17(火) 21:03:50
>>437
特定のベンチマークで?ではないのかな。
何らかのコンセプトに基づいた最適化をしてるわけではないみたい。
拡張性や柔軟性を犠牲にしてるだけのような印象を受ける。互換性もなくなってるし。
手元のコードで試してみたところ、psycoの方が早かった。
439デフォルトの名無しさん:2005/05/17(火) 21:28:25
full scratch に対する パイソニアン の反対が厳しいね
言ってる事は間違ってないとは思うけど、随分保守的だな
440デフォルトの名無しさん:2005/05/18(水) 00:00:34
Q6やっと解けた。
zipinfoでコメント集めてQ5のような
文字が出て、取りに行くと
it's in the air. look at the letters.
と言われその後、やっとこさQ7に行けましたが...
変なpngでまた頓挫。
けれどみんな色んなヒントありがとうございます。
ガンバリマス。
441デフォルトの名無しさん:2005/05/18(水) 00:06:12
python challenge Q26まで増えてる。
442デフォルトの名無しさん:2005/05/18(水) 00:09:20
lv15で挫折したまま放置中。。。
443デフォルトの名無しさん:2005/05/18(水) 00:38:35
lv12でハマタ…
gfxから画像を二枚取り出せたけど、結局その二つが意味するものが全然ワカラン。
444デフォルトの名無しさん:2005/05/18(水) 02:28:01
>>433
> 旅行したことくらいはあるので数字になおすんだろう、まではわかるんだけど。
余計なことは考えるな。

>>443
もっと沢山入ってるぞ。
445デフォルトの名無しさん:2005/05/18(水) 08:39:27
>pyvm
pyvm was not written to be a replacement for CPythonとREADMEにも書かれてた。
ソースが小さいとの事なので、組み込み分野向けに発展すれば期待できると思う。
446デフォルトの名無しさん:2005/05/18(水) 17:17:11
class sink:
 def write(self, s=""):
  pass
import sys ; sys.stdout = sink()
print "hage!!!!!!!!!!!!1111111"
447435:2005/05/18(水) 17:49:23
ところで、私はまだ同じ箇所で、、、(ってあれからやってないのだけど、
ヒント貰っても、何故にこれほどまでに!?ってぐらい何も思いつかないのは、ひとえに私の知識不足だろうなぁ。。。
448デフォルトの名無しさん:2005/05/18(水) 18:21:08
>446
副作用が気持ち悪いって意図かもしれないが、有効な利用方法を考えてみると

>>> 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'

449デフォルトの名無しさん:2005/05/18(水) 19:31:21
皆様コードの静的解析(etagっぽい機能が理想? グラフィカルにクラス一覧とか出たらマンセー)って何使ってますか? Emacsで書いてるんだけど、そろそろクラスの把握に限界がキてるのと、文書化を半自動化したいのだが。


450デフォルトの名無しさん:2005/05/18(水) 19:59:24
>>449
何行ぐらいのコード?
451449:2005/05/18(水) 20:01:27
現在のところ14000行ぐらいっす。あるシステムのプロトタイプを迷走しながら作った結果なので、不要な処理やら統合すべきクラスやら山盛りだとは思いますが。


452443:2005/05/18(水) 22:46:16
>>444
ありがとう…無駄なデータかと思ってたよ…
取り出せた〜( ´ー`)

けど、何を意味してるのかやっぱりワカランorz
まだ全部取り出せてないんだろうか…
オフセット内のは全部拾ったつもりなのだが
453430:2005/05/19(木) 02:36:23
>>431,440
ありがとう。お陰でやっと解けた。
454デフォルトの名無しさん:2005/05/19(木) 04:29:08
py2c++って未だないよね?
455デフォルトの名無しさん:2005/05/19(木) 23:14:24
L13までの解答スクリプト晒してる奴がいるな。寒。
456デフォルトの名無しさん:2005/05/20(金) 00:00:34
パズルサイトなのに問題固定なのも問題アリかと。
457デフォルトの名無しさん:2005/05/21(土) 08:57:01
CGIアプリケーションのテストを自動化するのにいいツールはないかね。
リンク辿ったり、フォームに特定の値書きこんで送信して、応答が期待通りかチェックするような。
458デフォルトの名無しさん:2005/05/21(土) 10:45:54
webunit
459デフォルトの名無しさん:2005/05/21(土) 11:12:52
新しくできた-mコマンドライン引数は、パッケージ内のモジュールは指定できないの?
ライブラリパス直下にxxxディレクトリがあって、その中にyyy.pyがあるときに、
python -m xxx.yyy
とかやりたいのだけれど。
460デフォルトの名無しさん:2005/05/21(土) 22:38:11
>457
mechanize

installがちょいめんどいけど。
461デフォルトの名無しさん:2005/05/22(日) 01:18:11
質問です

try:
#do something
except:
print "error"

エラーが発生してexceptに飛んだ時にエラーの種類、内容を取得する方法はありますか?
462デフォルトの名無しさん:2005/05/22(日) 01:59:32
try:
____#do something
except Exception, e:
____print e

ttp://www.python.jp/doc/release/tut/node10.html
くわしくはここを見てください。
463426:2005/05/22(日) 16:50:05
ひさびさに

>> 444

いじりすぎてただけか。ありが屯。とけたときがっくしした。

14は簡単だったが・・・.357 は、ほぼ 9mm だがどうしたものか
464デフォルトの名無しさん:2005/05/22(日) 17:04:44
COLT PYTHON 357 MAGNUM
465デフォルトの名無しさん:2005/05/22(日) 17:59:21
import sys

try:
    #do something
except:
    print '%s: %s' % (sys.exc_type, sys.exc_value)
466デフォルトの名無しさん:2005/05/22(日) 18:16:24
参照渡しの仕方がわかりません・・・どうすればいいんでしょうか・・・

参照渡しのイメージ映像・・・
def add(*a,b):
    *a+=b

a = 1
add(&a,1)
print(a) #a=2
467デフォルトの名無しさん:2005/05/22(日) 18:31:13
配列に入れてから渡したらうまくいかなかったっけな。
ちょっとアクセスが面倒だけど。
468デフォルトの名無しさん:2005/05/22(日) 19:07:58
なぜ参照渡しが必要なのか?
469デフォルトの名無しさん:2005/05/22(日) 19:43:05
>>> class Int:
... 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
470デフォルトの名無しさん:2005/05/22(日) 19:44:13
配列でもうまくいくな…

>>> def add(a,b):
... a[0] += b
...
>>> a = [1]
>>> add(a,1)
None
>>> print a
[2]
471デフォルトの名無しさん:2005/05/22(日) 20:29:47
今のCygwinのPythonってNumerical Pythonインストールできる?
昔のCygwinだとインストールしようとしたらエラーが出てゴミ取りが大変だったけど。
472デフォルトの名無しさん:2005/05/22(日) 20:30:55
>>468
色々とCと比較する簡単なコードを書いて、Pythonで何かをするときの
方法を整理して勉強いるだけなので、なぜと言われても困ります。。。

>>469
ありがとうございます。でもちょっとまだ何をやってるのかわかりません・・・

>>470
配列などのオブジェクトにするしかないんですかね・・・。オブジェクトは
ポインタを渡すことになるので、参照渡しになるのは理解できるんですが、
普通の変数のポインタを渡したりはできないんでしょうか・・・。
ありがとうございます。
473デフォルトの名無しさん: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目的以外お勧めしないが)
474デフォルトの名無しさん:2005/05/22(日) 20:50:28
Panda3D - Free 3D Engine
http://www.panda3d.org/

おもしろいもん見つけてきたお
Pythonで本格的なゲームを作れる開発環境
ディズニー開発、ディズニーとカーネギーメロン大学が保守してる
オープンソースで無料で使えるのが(・∀・)イイ!!
もともとディズニーがゲームを作るために作ったものでオプソにありがちな絵に描いた餅じゃない
マニュアル、チュートリアルも英語ながら充実してるしどうよ?
475デフォルトの名無しさん:2005/05/22(日) 21:03:17
>>471
最近試したけどlibpython2.4が見つからないとかいってインストールできないみたい
libpython作るためにPythonの再構築からする必要があるかも
476デフォルトの名無しさん:2005/05/22(日) 21:46:40
>>474
ライセンス読むのめんどいから要約してw
477デフォルトの名無しさん:2005/05/22(日) 22:51:05
>>475
cygwinのdistutilsはちゃんとライブラリ名拡張してくれてるはずだから
きちんと対応していないnumpy側が悪いんじゃねーの?
478おかしくね?:2005/05/23(月) 00:01:34
なんでmathモジュールの中にabsを入れねーの?変なの
479デフォルトの名無しさん:2005/05/23(月) 00:25:52
ANSI C でも abs は stdlib.h で定義されてるけど。何が変なの?
480デフォルトの名無しさん:2005/05/23(月) 00:53:06
そうそう。absはintでdoubleならmath.hのfabsにしなければならない。
これではまったことある。

481おかしくね?:2005/05/23(月) 01:17:56
ANSI Cに準拠してんの?じゃあpowは?変なの!
482461:2005/05/23(月) 12:29:17
>>462,465
お礼が遅れました。ごめんなさい。
どちらでも実現出来ました。ありがとうございます。
ドキュメント読みながらさらに理解を深めたいと思います。
483デフォルトの名無しさん:2005/05/23(月) 12:32:51

*.py プログラムって *.exe にコンパイルできるん?
484デフォルトの名無しさん:2005/05/23(月) 12:55:32
今さらだけど、doctest ってありえないぐらい便利だなっっっ!!!
485デフォルトの名無しさん:2005/05/23(月) 20:04:32
>>484
もうすこし具体的な便利さを語ってほすぃ
486デフォルトの名無しさん:2005/05/23(月) 22:04:12
>>485
たとえば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! マジすごくね?
487デフォルトの名無しさん:2005/05/23(月) 22:05:45
>>483
Winならpy2exe
Macならpy2app
488デフォルトの名無しさん:2005/05/24(火) 00:53:16
>>476
配布や販売は自由
あとはオプソ関連のこと書いてた
489デフォルトの名無しさん:2005/05/24(火) 01:02:40
>>488
GPLスタイルなのかBSDスタイルなのかそこが問題だ
490デフォルトの名無しさん:2005/05/24(火) 08:38:24
osxはだめか。。
491デフォルトの名無しさん:2005/05/24(火) 09:08:17
>>489
このソフトウェア自身のコードの改変についてはライセンスを
変更できないみたいだけど、
このソフトウェアをライブラリとして利用するソフトウェアについては
なにも言及がないように読める。(読み間違えでなければ)
なので実質は LGPL か?

あと、変更したら90日以内に [email protected]
変更したもののソースを送れ、とも書いてあるな。
492デフォルトの名無しさん:2005/05/24(火) 09:41:55
blendarと連携できたりするのかな?
493デフォルトの名無しさん:2005/05/24(火) 10:09:33
Blender、MAYA、3dsMAX、MilkShape3DはOK
494デフォルトの名無しさん:2005/05/24(火) 12:07:38
>>486
うをー、これメッチャ凄いやん
ドキュメント生成とモジュールテストという面倒くさい二大作業が一発でできるなんて…
教えてくれてサンクス
495デフォルトの名無しさん:2005/05/25(水) 07:16:21
画像ファイルからサイズ(縦横ピクセル)、ビットの深さとか
動画ファイルの長さ、ビットレートなど、各種メディアファイルの情報を取得できるようなモジュールはありますか?

用はWindows上のファイル右クリックのプロパティで表示されるような内容を取得できるもの。
496デフォルトの名無しさん:2005/05/25(水) 11:05:27
python て変数/関数名に "-" が入ってはいけないの?
もしそうだったらイラネ。
497デフォルトの名無しさん:2005/05/25(水) 11:38:31
>>496
中置算術演算子が使える言語が、識別子にマイナス記号を使えないのは
当然だと思うがどうよ。
498デフォルトの名無しさん:2005/05/25(水) 12:33:39
Reply-to:>>497
(俺にとっては)別にー。マイナスする時はスペースを前に加えるようにすればええやん。
(まあ、いつもスペースいれる癖のないやつは痛いだろうがな)

やっぱ lisp 系かな。
499デフォルトの名無しさん:2005/05/25(水) 12:59:18
キモスwww
500デフォルトの名無しさん:2005/05/25(水) 13:16:22
>>495
画像なら Python Imaging Library (PIL) が使える。
動画については知らん。
501デフォルトの名無しさん:2005/05/25(水) 13:30:44
残念ながら、Pythonは式中のスペース等詰めて書く傾向がある。

lisp系で - を識別子に使うのは、名前空間に使う場合が多いはずだけど、
Pythonの場合は、クラスやモジュールにまとめる方がわかりやすい。
識別子にprefixで名前空間を与える方法に較べて、カプセル化で名前空間を識別する場合は、
string自体が可搬で、別名の変数に入れてアクセスしたりも出来る、などの利点あり。
ローカルな一時変数の名前に使いたいといったケースには合わないが。

lisp系に乗り換えるとしても、"-"が識別子に使えないからと言う理由はどうかと思うよ。
closure内でローカル変数に代入できないとか、もっと致命的な問題はたくさんあるのに。
502デフォルトの名無しさん:2005/05/25(水) 14:04:23
つーか、-にこだわる理由がわからん。
503デフォルトの名無しさん:2005/05/25(水) 14:15:42
>>501
てか、全体的に lisp の方が自由度高くない? (まあこれが諸刃の剣にもなり得るのだけど。)
501 が common lisp とか lisp 系言語を知っていると仮定して、どう思うよ?
それと、どっちがプログラミングしてて楽しい?
俺にとってはこれが一番大事。

>>502
- があった方がプログラムが見やすい。それに - の方が _ より打ちやすい。
504デフォルトの名無しさん:2005/05/25(水) 14:17:18
はじめて見る煽りが清々しい
505デフォルトの名無しさん:2005/05/25(水) 14:20:47
>>504
煽りはいいから。
506デフォルトの名無しさん:2005/05/25(水) 14:25:34
>>503
自由度だけにこだわるんなら、それこそアセンブラや機械語だと何でもありだと思うけど。
楽しいか楽しくないかは、その人のバックグランドにも大きく依存するし。

今どきの計算機科学を基礎からきちんと専攻した人間なら、Pythonと比べて特
にLISPを好むはずもないし。

> 俺にとってはこれが一番大事。
たぶん旧式なのか叩き上げなんですね。

> - があった方がプログラムが見やすい。それに - の方が _ より打ちやすい。
なんか非常に低水準な話だなあ。Rubyの教祖みたいだよ、そんなんじゃ。
507デフォルトの名無しさん:2005/05/25(水) 14:29:12
ここはPythonスレ。
似非Lisperは()の中へお帰り。
508デフォルトの名無しさん:2005/05/25(水) 16:30:03
>>503
「自由度」が何を意味しているのか分からないけど
Common Lisp と Python でそれぞれ何万行か書いた経験から言って
Python の方がプログラミングしていて楽しいよ。
便利なモジュールがたくさんあって楽ができるという点でも
Python の方に軍配が上がる。

昔話:俺が使っていた Lucid Common Lisp にはロクなモジュールがなくて
RDBMS と Tcl/Tk を各々 Lisp 側から利用するためにモジュールを自作したりして
なかなか大変だった。

でも Lisp も好きだよ。Emacs Lisp は今も常用しているしね。
インタプリタでボトムアップで開発できるところがいい。
Lisp が好きな人は Python も好きになれると思う。
好きになれないとしたら食わず嫌いだと思われ(笑)
509デフォルトの名無しさん:2005/05/25(水) 16:38:06
>>501
> 残念ながら、Pythonは式中のスペース等詰めて書く傾向がある。

これどういう意味?(素で分からん)
510デフォルトの名無しさん:2005/05/25(水) 17:41:47
>>501
> lisp系で - を識別子に使うのは、名前空間に使う場合が多いはずだけど、

それはパッケージ機構のないEmacsLispの命名慣習の話じゃないの?
それ以外にもLispでは複数の英単語をつなげるとき普通に "-" を使う。

Cだと my_cool_identifier
Javaだと myCoolIdentifier
Lispだと my-cool-identifier
511デフォルトの名無しさん:2005/05/25(水) 18:01:37
scheme だと symbol->string とか list->string なんてのもあるな。
512501:2005/05/25(水) 20:32:51
>>503
>>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
513デフォルトの名無しさん:2005/05/25(水) 20:47:05
(言語名) て変数/関数名に "-" が入ってはいけないの?
もしそうだったらイラネ。

514デフォルトの名無しさん:2005/05/25(水) 21:11:00
アンダースコアが打ちにくいと感じる人には
括弧も打ちにくいのではないかと、ふとオモタ。
515デフォルトの名無しさん:2005/05/25(水) 21:43:46
確かに変数名が1文字だったらなるべく詰めて書きたいな> x-y
516デフォルトの名無しさん:2005/05/25(水) 22:30:39
>>506
>今どきの計算機科学を基礎からきちんと専攻した人間なら、Pythonと比べて特
>にLISPを好むはずもないし。

上で出てたクロージャの件とか
SICP で Scheme に目覚めたとか
コンパイラ方面の人とか(最近は ML かな)
517デフォルトの名無しさん:2005/05/25(水) 22:36:12
>>506
>今どきの計算機科学を基礎からきちんと専攻した人間なら、Pythonと比べて特
>にLISPを好むはずもないし。

それにしても すごい決め付け
518デフォルトの名無しさん:2005/05/26(木) 00:43:26
PythonのほうがLISPなんかよりずっと優れた言語仕様なのに。
それを認めようとしない低能リスパはきっとまともオブジェクト指向
もできないに違いないWWWWWWWWW
519デフォルトの名無しさん:2005/05/26(木) 00:44:03
Lisp は "/" もオケ

(define call/cc call-with-current-continuation)

call.with.current.continuation だと意味分かんない
しかし Lisp の話はスレチガイだな

>>512
__main__ とか __call__ とかってちょっと気持ち悪くない?
コードの中で浮いてる気がする
520デフォルトの名無しさん:2005/05/26(木) 00:54:33
>519
>コードの中で浮いてる気がする
敢えて浮かしてる、ということもあるんじゃなかろうか。
気持ち悪い、ということについてはこりゃ好きずきかな。
俺は'_'どんとこい派? なのでキモイとまでは思わない。
521デフォルトの名無しさん:2005/05/26(木) 00:58:12
慣れた
522デフォルトの名無しさん:2005/05/26(木) 05:13:39
きもいと思う。
523デフォルトの名無しさん:2005/05/26(木) 05:59:30
こんなマイナー言語のスレなんか上げんな
524デフォルトの名無しさん:2005/05/26(木) 10:15:09
英語圏ではかなりメジャーなわけだが・・・
525デフォルトの名無しさん:2005/05/26(木) 10:17:54
>>501
>lisp系で - を識別子に使うのは、名前空間に使う場合が多いはずだけど、

本筋とは関係ないが、名前空間というかモジュールの区切りにはコロンを使う。
FOO モジュールの BAR 関数は FOO:BAR とか FOO::BAR になる。
526デフォルトの名無しさん:2005/05/26(木) 13:50:32
perlの次にメジャーなんだっけ?
527デフォルトの名無しさん:2005/05/26(木) 14:18:12
20年くらい前の本を読んでたら、pascalのbegin、endの位置をどうするかって
話題があって、いろいろなコーディングスタイルを検討してたけど、最後にいっそのこと、
インデントを文法に組み込んでbegin,endはなくしたらいいみたいなことが書いてあった。
528デフォルトの名無しさん:2005/05/26(木) 14:18:35
RUBYのつぎ
529デフォルトの名無しさん:2005/05/26(木) 14:28:14
>>528
rubyは日本限定のローカル言語だよ
530デフォルトの名無しさん:2005/05/26(木) 14:44:39
インデントを文法に組込むのは決して良いアイディアではないが、endよりはマシ。
531デフォルトの名無しさん:2005/05/26(木) 15:48:29
ruby は海外の方が活発
532デフォルトの名無しさん:2005/05/26(木) 15:56:26
>>531
en.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 が上)。
533デフォルトの名無しさん:2005/05/26(木) 16:00:50
日本語で表現されるものが世界の全てなら英語圏での人気など何の意味も持たない
534デフォルトの名無しさん:2005/05/26(木) 16:02:59
>>533
君は英語が読めないようだね・・・
プログラマーには向いてないね。
535デフォルトの名無しさん:2005/05/26(木) 16:23:13
英語がダメなら「なでしこ」でも使っていればいいのよ
536デフォルトの名無しさん:2005/05/26(木) 16:25:41
rubyなんて使ってたら基地外扱いを受け兼ねない・・
537デフォルトの名無しさん:2005/05/26(木) 17:13:05
ひまわり
538デフォルトの名無しさん:2005/05/26(木) 19:09:10
>>536
真の兵はMindを使います。
539デフォルトの名無しさん:2005/05/26(木) 21:27:59
ユーザ数で使う言語を決めるなどナンセンス
540デフォルトの名無しさん:2005/05/26(木) 22:11:34
>>527

インデントを文法に組みこむのは昔の bit の記事にあったような。
20年前といったら Occam が出たか出ないかの頃かな。
541デフォルトの名無しさん:2005/05/26(木) 22:26:57
ML 以前に二次元文法の言語あったの?
542デフォルトの名無しさん:2005/05/26(木) 23:45:19
AAに慣れた
    2chネラーには
        むしろ向いてる気がする
543デフォルトの名無しさん:2005/05/27(金) 00:19:48
インデントやめて普通にC/C++, Java風のスタイルにしてほしい・・・
544デフォルトの名無しさん:2005/05/27(金) 01:07:41
JavaScriptみたいになったりして
545デフォルトの名無しさん:2005/05/27(金) 04:16:04
>>541

Haskell はインデントが意味をもつけれども ML は関係ないのでは?

実用言語としては Occam がインデントで構文を表わそうとした最初の言語だと思う。
ホアが関係していること、独特の並列処理構文をそなえていることで一時雑誌記事が
多かった。
546デフォルトの名無しさん:2005/05/27(金) 12:01:21
>>543
それらは全てシンタックスが汚すぎ。
おまえ、糞っぽいエディターしか使えないだろ?
547デフォルトの名無しさん:2005/05/27(金) 14:02:26
「Dive into Python」ていう入門書、つかえるね。英語だけど。
http://diveintopython.org/

コレの日本語翻訳版を作るっていう話が前にあったみたいだけど、いまどーなってんだ?
http://www.python.jp/pipermail/python-ml-jp/2001-November/000817.html
548デフォルトの名無しさん:2005/05/27(金) 14:15:22
オライリーのネズミ本で充分じゃネ?
549デフォルトの名無しさん:2005/05/27(金) 14:18:32
「なでしこ」は、かなり使えるのでは・・?
perlが英語を母語にする人に浸透した理由を考えると、
「なでしこ」の将来は明るいような・・
550デフォルトの名無しさん:2005/05/27(金) 14:37:25
日本語しか使えない奴の将来は暗いので・・
551デフォルトの名無しさん:2005/05/27(金) 14:37:46
テンプレ

「○○○○」は、かなり使えるのでは・・?
△△△△が□□□□を母語にする人に浸透した理由を考えると、
「○○○○」の将来は明るいような・・
552デフォルトの名無しさん:2005/05/27(金) 14:51:41
>>546
gvimしか使えません。。。すいません・・・
553デフォルトの名無しさん:2005/05/27(金) 14:57:20
シンタックスに日本語を使うと余計に判りづらくてイライラする。
数えるほどしかない予約語すら覚えられない奴は、頭脳労働は辞めるべきだな。
554デフォルトの名無しさん:2005/05/27(金) 15:00:13
>>553
そんなに卑下しなくてもいいよ
555デフォルトの名無しさん:2005/05/27(金) 15:01:31
もし ネタ: マジレス
556デフォルトの名無しさん:2005/05/27(金) 15:12:32
Unit Testのプログラムコードに日本語が使えると「『動く』仕様書ですYO!」といって納品できる。(といいなぁ)
557デフォルトの名無しさん:2005/05/27(金) 15:23:27
逆に考えて、仕様書から抽出してユニットテストを構成するようにすれば。
558デフォルトの名無しさん: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が表示される

こんなかんじなのを可能にしてくれるライブラリはありますか?
559デフォルトの名無しさん:2005/05/28(土) 01:07:06
>>558
標準ライブラリないだとxmlrpcがそれに近いかな。
プロトコルについてはtwistedとかだとS式ベースのとか、他にもある。
560デフォルトの名無しさん:2005/05/28(土) 01:17:00
561デフォルトの名無しさん:2005/05/28(土) 05:50:44
Pyroなんかどうすか?
http://pyro.sourceforge.net/
562デフォルトの名無しさん:2005/05/28(土) 21:59:38
>>558
お手っ! お座りっ! ちんちんっ!
563558:2005/05/29(日) 02:12:18
Noneのせいでつまずきましたがxmlrpcできました. ありがとうございました
564デフォルトの名無しさん:2005/05/29(日) 09:43:17
(the eff-bot guide to) The Standard Python Library
http://effbot.org/zone/books.htm
http://effbot.org/zone/librarybook-index.htm
565ボッキー谷村 ◆XovXppFfGM :2005/05/29(日) 11:10:09
今日から Python をやってみようかと思う。
みんな応援しろ
566デフォルトの名無しさん:2005/05/29(日) 11:15:50
がんがれボッキー(・∀・)
567ボッキー谷村 ◆XovXppFfGM :2005/05/29(日) 18:50:16
>>566
あんがとな。

今日微妙にやってみたけど、 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/

でも見てみることにしよう。
568デフォルトの名無しさん:2005/05/30(月) 14:56:12
Level20だれかたのむ
569ボッキー谷村 ◆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

にしてほしかったわ。(でもシンタックスの問題があってできなかったんだろうね。)
570ボッキー谷村 ◆XovXppFfGM :2005/05/30(月) 18:34:37
しかし、 Python ってほんとドキュメントが充実してる + 読みやすいよなー。
びっくりしたわ。

ttp://www.python.org/doc/current/index.html

に行けばほとんどが網羅されてるんじゃないか?
俺のお勧めは
ttp://www.python.org/doc/current/lib/lib.html

おい。みんななにしてるんだ?
571デフォルトの名無しさん:2005/05/30(月) 19:08:33
lambdaが半端だというのは分かるけど、その処理するならこうだな。

filter(lambda elt: elt.endswith(".rm"), output.split("\n"))

それか、これ。

[ elt for elt in output.split("\n") if elt.endswith(".rm")]
572ボッキー谷村 ◆XovXppFfGM :2005/05/30(月) 19:36:57
>>571
filter いいね。
でも、なんとか lambda でやってみたかったのよ。
print map( lambda element : element.endswith(".rm") and element or None , output.split( "\n" ) )
これとかは、微妙に結果が違くなるけど、なんとかうまくいけてるっぽいな。
ところで、 `ord' って関数は何の略?
573デフォルトの名無しさん:2005/05/30(月) 19:39:26
>>572
ordは、orzの車椅子版。
574デフォルトの名無しさん:2005/05/30(月) 19:56:14
import glob
print '\n'.join(glob.glob('*.rm'))
575デフォルトの名無しさん:2005/05/30(月) 20:01:41
>>572
>print map( lambda element : element.endswith(".rm") and element or None , output.split( "\n" ) )
これは、同じ事を考えた人が結構いると思うけどやっぱり分かりづらい。

>微妙に結果が違くなるけど
mapは要素数が変わらないからね。

>`ord' って関数は何の略?
help(ord)を参照すれば分かる。
576デフォルトの名無しさん:2005/05/30(月) 20:38:01
>>573
ハゲワラ
577デフォルトの名無しさん:2005/05/30(月) 21:25:41
どっちかというとニホンザル版に見える。
578デフォルトの名無しさん:2005/05/30(月) 22:02:50
サルだとすると微妙に土下座してないなw
しっぽだけ喧嘩売ってる
579デフォルトの名無しさん:2005/05/31(火) 00:49:50
>>568
サーバの言うことをよく聞いて,出し惜しみしないよう頼んでみ.
580デフォルトの名無しさん:2005/05/31(火) 00:56:58
ぬるぽ
581デフォルトの名無しさん:2005/05/31(火) 01:25:26
>>580
ガッ
582デフォルトの名無しさん:2005/05/31(火) 09:30:36
スレのタイトルを考えると、

AttributeError: 'NoneType' object has no attribute 'ぬるぽ'

とかじゃないかと小一時間。
583デフォルトの名無しさん:2005/05/31(火) 12:15:32
>>579
ヒント読んでやっと中に入れたよー、ありがとう
584デフォルトの名無しさん:2005/06/01(水) 02:15:22
IronPythonで、ManagedDirectXをいじるという妙な実験をしてるんだが、
どうにも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のようなのだが。
…あってると思うんだがなぁ
585デフォルトの名無しさん:2005/06/01(水) 20:35:11
>>584
ttp://mail.python.org/pipermail/pythondotnet/2004-January/000091.html
を見ると,第一引数はGetType() の返す型ではなくコンストラクタ
(TransformedColored) のような気がするよ.
586デフォルトの名無しさん:2005/06/02(木) 15:41:59
"%s %s %s" % ('hoge', ['huga', 'moge'])
みたいなのをうまく処理する方法はないでしょうか?
一部の引数を展開したいのです。
587デフォルトの名無しさん:2005/06/02(木) 16:07:40
あれれ、Pythonってシーケンスを引数に展開する記法ないのかな。
とりあえず、%演算子にはtupleを渡せばいいんだから、

>>> a = ['huga', 'moge']
>>> "%s %s %s" % tuple(['hoge'] + a)
'hoge huga moge'
588デフォルトの名無しさん:2005/06/02(木) 16:13:53
>>> a = 'hoge'
>>> b = ['huga', 'moge']
のとき
>>> "%s %s %s" % ((a,) + tuple(b))
'hoge huga moge'
または
>>> "%s" % a + " %s %s" % tuple(b)
'hoge huga moge'
589デフォルトの名無しさん:2005/06/02(木) 16:14:58
または
>>> b1, b2 = b
>>> "%s %s %s" % (a, b1, b2)
'hoge huga moge'
590デフォルトの名無しさん:2005/06/02(木) 16:50:18
ついでだから、Lisp系でよくあるflatten()をだれか書いて
591デフォルトの名無しさん:2005/06/02(木) 17:37:10
>>> from Tkinter import _flatten
>>> _flatten([([0], [(1,2), 3], 4), [5, (6,)], ((7, [8]),)])
(0, 1, 2, 3, 4, 5, 6, 7, 8)
592デフォルトの名無しさん:2005/06/02(木) 17:46:01
593デフォルトの名無しさん:2005/06/02(木) 19:18:02
zopeの質問してもいい?

formulatorのリストにDBからとってきた値を入れたいんだけど
どうすればいいの?

DBは、gadflyです。
594デフォルトの名無しさん:2005/06/02(木) 19:20:42
ZopeはWebProg板の専用スレで。
595デフォルトの名無しさん:2005/06/03(金) 19:02:11
Zopeの質問なんかするからスレが止まってしまった。
596デフォルトの名無しさん:2005/06/03(金) 19:38:11
テンプレに入れとけ世
597デフォルトの名無しさん:2005/06/05(日) 09:58:33
ttp://www.daniweb.com/code/snippet208.html
↑から音声ファイルを再生するスクリプトを発見したんですが、
『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()
598デフォルトの名無しさん:2005/06/05(日) 13:23:56
>>597
自分のところだと問題無く再生できたよん。

WindowsMediaPlayerを最新にしてみたらどうかな?
Python側の問題では無い気がする。
599597:2005/06/05(日) 14:50:30
>>598
WindowsMediaPlayerのバージョンアップをしても駄目。
win32モジュールを最新版にしてエラーは出なくなったが、音が出ない。

また検索してもドキュメント等が見当たらないので、今後の事も考えて違う方法を使用することにします。

道のりは遠い...orz
600デフォルトの名無しさん:2005/06/06(月) 01:22:06
>>599
他の言語で同じことを試してみれば?
たぶん環境の問題だから同じようにエラーが起きると思う
601599:2005/06/06(月) 10:13:39
>>600
VBSで出来ちゃいました。

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()

もうわからん。
602ぴちょんちゃれんぢ:2005/06/08(水) 20:12:41
Q. 以下の□に+−×÷を記入、または□を消して計算式を完成させよ。
1□2□3□4□5□6□7□8□9□10=2741
603デフォルトの名無しさん:2005/06/08(水) 20:33:16
>602
よくわからんが、Prolog向きのネタなのかな
学生時代一回授業取っただけなので思いだせんが‥‥‥
604デフォルトの名無しさん:2005/06/08(水) 22:57:00
職業適性検査?
605デフォルトの名無しさん:2005/06/09(木) 15:39:08
for operators in range(5**9):
    x = 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
606デフォルトの名無しさん:2005/06/09(木) 15:41:23
あ、operators の値を残しておく必要はなかったな。
試行錯誤の跡ってことで。
607デフォルトの名無しさん:2005/06/09(木) 17:57:34
ジェネレータ版.

s = ['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))
608デフォルトの名無しさん:2005/06/09(木) 18:14:25
間違えた...

s = ['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))
609デフォルトの名無しさん:2005/06/09(木) 18:49:04
ワタシ脱ぎます!
610デフォルトの名無しさん:2005/06/09(木) 18:52:19
すいません。リストの中の最頻値ってどう求めればいいでしょうか。
611デフォルトの名無しさん:2005/06/09(木) 19:18:17
データ量が少なければ手でhistgram作ってるなぁ俺は。
試してないけどこんな感じ?

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]

とか?
もっといい方法あったら教えてね。
612デフォルトの名無しさん:2005/06/09(木) 19:27:16
>  if not hist.has_key(data):
>   hist[data] = 1
>  else:
>   hist[data] += 1

hist[data] = hist.get(data, 0) + 1
とすると1行になるが、さらにすっきり重複なしで書く方法はない?
613デフォルトの名無しさん:2005/06/09(木) 20:21:23
from sets import Set

uniq = Set(dataList)
print dict( (x, dataList.count(x)) for x in uniq)

遅そう・・
614デフォルトの名無しさん:2005/06/09(木) 23:26:29
from itertools import groupby
dataList=[1,2,3,3,4,5,6,6,3,2]
print [ (k,len(list(g))) for k,g in groupby(sorted(dataList)) ]
615デフォルトの名無しさん:2005/06/09(木) 23:53:33
itertools.groupbyって2.4からか。
Py厨の諸氏はもう2.4に移行してるの?
616デフォルトの名無しさん:2005/06/10(金) 00:12:55
>>602に追加で

「カッコも好きなだけ入れていい」を追加
617デフォルトの名無しさん:2005/06/10(金) 11:29:31
618デフォルトの名無しさん:2005/06/10(金) 12:03:49
utf-8のファイルを開いて、それをSJISで表示する(printとかstdout.write)にはどうすればできる?
619デフォルトの名無しさん:2005/06/10(金) 12:09:26
print open("foo.txt", "r").read(-1).decode('utf-8').encode('sjis')
620デフォルトの名無しさん:2005/06/10(金) 12:26:31
こういうのもあり
print codecs.open('bar.txt','r','utf-8').read(-1).encode('sjis')
621デフォルトの名無しさん:2005/06/10(金) 17:28:44
こういうのもあり
sys.stdout = codecs.getwriter("sjis")(sys.__stdout__)
622デフォルトの名無しさん:2005/06/10(金) 22:01:57
TMTOWTDI
623デフォルトの名無しさん:2005/06/10(金) 22:34:14
624デフォルトの名無しさん:2005/06/10(金) 23:28:11
ドメインまであったのかw
まぁ、hoge.jpもあるし。(関係ないが)
625デフォルトの名無しさん:2005/06/11(土) 17:56:06
Pythonでさー、一時ファイルを作成するとき悩むんだよねー。
やりたいことはさー、一時ファイルを作成して、それにデータを書き込んで、
正常に書き込み終わったら、(一時ファイルではない) 別の名前に名前変更したいんだけどー、
この要求にベストマッチする関数ってある?

NamedTemporaryFile だったら、一時ファイルの名前を取得できるけどー、
オープン中は名前変更ができないじゃん。いったんクローズしてしまうと、
その一時ファイル名は無効になっちゃうしねー

tempfile 関数だとできそうだけど、いったんオープンされたハンドルを
クローズしないといけないって、なんだか無駄な気がするんだよねー。
ハンドルじゃなくてファイル オブジェクトを返してくれればいいんだけどさ。

なんかいいのないー?
626デフォルトの名無しさん:2005/06/11(土) 19:32:37
(∩゚д゚)アーアーきこえなーい
627デフォルトの名無しさん:2005/06/11(土) 19:56:25
tempfile関数ってなんだか知らんが、tempfile.mkstemp()とos.fdopen()
628625:2005/06/11(土) 22:36:49
>>627
ごめーん、tempfile じゃなくって tempfile.mkstemp のことね。
629デフォルトの名無しさん:2005/06/11(土) 22:51:15
StringIOでメモリ上に書き込んどいて書き出せば?
630デフォルトの名無しさん:2005/06/11(土) 23:07:46
moinmoinは、これ以上ユーザ登録させない!といったことは出来るのかしら。
631デフォルトの名無しさん:2005/06/12(日) 00:39:50
つーか,大きくないファイルならコピーしろよ,と.
632デフォルトの名無しさん:2005/06/12(日) 09:27:31
リネームで済むのにコピーするのは、かなりださいと思われる。
633デフォルトの名無しさん:2005/06/12(日) 10:39:29
Pythonプロトタイピングのプロセスがあるのですが、ここの『PythonDocTest』って何ですか?
ttp://lowlife.jp/nobonobo/stories/11.html
634デフォルトの名無しさん:2005/06/12(日) 12:33:46
>>633
>>484-486>>494は中の人か?)
635デフォルトの名無しさん:2005/06/12(日) 13:53:43
>>632
そもそもPythonがださい
636デフォルトの名無しさん:2005/06/12(日) 13:55:16
>>635
釣れますか?
637デフォルトの名無しさん:2005/06/12(日) 14:33:31
クマー
638デフォルトの名無しさん:2005/06/12(日) 14:41:13
>>633
プロトタイピングプロセスだってさ・・・何を今更なネタだなぁ
639デフォルトの名無しさん:2005/06/12(日) 20:28:27
>>632
同一ファイルシステム内の話じゃないかもしれんよ。

ま、真にダサイのはファイルに書き出した時点で
ファイル名が決まっていない事だがな。
640デフォルトの名無しさん:2005/06/13(月) 13:34:52
Level21誰かお願いします
641デフォルトの名無しさん:2005/06/13(月) 21:26:07
>>640
Level12教えてくれたらな
642デフォルトの名無しさん:2005/06/13(月) 22:38:38
あるディレクトリ以下のすべてを消去したくて以下のようなものを作りました。

import 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を実行しないと目的が果たせないのですが、
一回で済ませるにはどう書けばいいのでしょうか。
643デフォルトの名無しさん:2005/06/13(月) 22:45:38
つ [shutil.rmtree]

件の現象の原因は、ディレクトリの中身にファイル残っている状態で
ディレクトリ消せないからだと思うよ。だから2回で消せるとも限らない
(深さによる)
644デフォルトの名無しさん:2005/06/13(月) 22:47:25
os.system("rm -rf %s" % dir)

破壊力が強いので引数の妥当性チェックには気をつけてくれ。
移植性? シラネ。
645デフォルトの名無しさん:2005/06/13(月) 23:01:42
>>641
ありがとう。おかげで最後までたどり着いたよ。
646デフォルトの名無しさん:2005/06/13(月) 23:35:23
>>643
ディレクトリ深く掘ったら確かに2回じゃ消せませんでした。まだまだだなぁ。
それにしてもshutilなんて知りませんでしたよ…orz
ありがとうございました。

>>644
確かにやりたかったのはこれですが…(;´д`)
647デフォルトの名無しさん:2005/06/14(火) 01:26:48
>>644
ヤリスギ
648デフォルトの名無しさん:2005/06/14(火) 21:42:16
Apacheのhtpasswdコマンドと同じようなことができるモジュールってありますか?
perlのApache::Htpasswdのようなやつです。
python apache htpasswdをキーワードにぐぐってみた結果とPyPI見てみた結果ではそれらしきものが見付けられませんでした。
649デフォルトの名無しさん:2005/06/14(火) 22:20:57
>>648
import zope
650デフォルトの名無しさん:2005/06/14(火) 22:31:38
つ os.system("htpasswd -b %s %s %s" % (passwdfile, username, password))
651648:2005/06/14(火) 22:53:30
むぅ、そのものずばりなモノはなさそげですね。
>>649 ゲトして中身を軽くさらってみたですが、簡単にパクれるとゆーものではなさそげですた。ターゲットマシンがパワーなさすぎなので、Zopeそのものを使うのは残念ながら却下。
>>650 それだと生パスワードが一瞬プロセステーブルにのるのがちと微妙(それを気にするまえにもっと注意すべきところがあるだろう、という話がないわけではないけど^^;)。
あと、コマンドラインのエスケープで頭ひねる必要があるような気が。popen2でhtpasswdさんとお話ししたほうがいいかも、と思ったり。
652デフォルトの名無しさん:2005/06/15(水) 01:20:51
俺も以前Pythonでクローンを作ろうとしたことがあった希ガス。
うろ覚えだけどhtpasswdってUnixのcrypt(3)を呼ぶだけの単純な
パスワードじゃなかったっけ。Pythonからcrypt(3)を呼ぶためだけに
ゴニョゴニョとC拡張モジュールを書いた記憶がある。

・・・ってこれじゃ単なる思い出話だな。スマソ
653デフォルトの名無しさん:2005/06/15(水) 03:56:24
>>652
cryptだったら標準モジュールにあるけど..

標準モジュールのgetpass, base64, sha, md5, crypt, tempfile, のみでcloneつくれそう。
654ポッキー谷村 ◆XovXppFfGM :2005/06/15(水) 04:41:34
Python はライブラリがかなり使い安くて効率的。
":" の使用の仕方は Matlab と違うし、直観的じゃない故に気にくわないけどな。
655デフォルトの名無しさん:2005/06/15(水) 08:44:09
Pythonのお勧め本って何?
656デフォルトの名無しさん:2005/06/15(水) 09:48:35
>>651 書いてみたよ
plaintextと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使ってるので同じ。
657651:2005/06/15(水) 11:23:47
>>656うぉぉ、大感謝。これ見ると、SHA1が一番手間いらず&&環境依存性少なしって感じですかね。(対象はApache2固定)
658デフォルトの名無しさん:2005/06/15(水) 18:08:40
>655
はじぱい第2版
659デフォルトの名無しさん:2005/06/16(木) 01:15:53
>>655
初めてのPython 第2版 ← 持っといて損無し
Python Programming on Win 32 ← Windows使いなら

他の本はマニュアルに書いてあることの焼き直しだったり、
訳された時期が古かったりで、内容的にもイマイチな印象。
ぶっちゃけ日本語訳のマニュアルで大体事足りると思う。
660デフォルトの名無しさん:2005/06/16(木) 07:05:49
初めてのPython はかなりいい本だな。
661デフォルトの名無しさん:2005/06/16(木) 07:31:05
あの内容だけではクラスが書けんと思うがどうか。
662デフォルトの名無しさん:2005/06/16(木) 09:20:24
>661
オススメの本を聞いて来るレベルの人には別にいいんじゃねぇの
663デフォルトの名無しさん:2005/06/16(木) 13:18:23
たとえば比較演算したかったらひとまず__ge__とか忘れて__cmp__実装しろとか、
親クラスのメソッドはSuper(Foo, self).bar()で呼び出せとか、
そういうOOの基礎レベルの事はどこかにまとめて書いてあってよいと思うのだ。
別に恥パイでなくてもよいが。
664デフォルトの名無しさん:2005/06/16(木) 15:04:01
> 親クラスのメソッドはSuper(Foo, self).bar()で呼び出せとか

これ知らない。どゆこと?
665デフォルトの名無しさん:2005/06/16(木) 20:09:57
class Oya:
  def bar(self):
    print "親"

class Ko(Oya):
  def bar(self):
    print "子"
    Oya.bar(self)

神経質な人は Oya.bar(self) と書かずに
super(Oya, self).bar() のように呼び出す

Oya.bar(self) だとどんな実害があるのかは知らんとです
666デフォルトの名無しさん:2005/06/16(木) 20:25:44
super(Ko, self).bar()じゃないかな。
superを使った方が多重継承のときに良い事がある。
いずれにせよ具体的なクラス名が入るのが冗長でうっとおしいんだが、
関数bar()は自分の定義されているクラスを知らんのだろうか。
667デフォルトの名無しさん:2005/06/16(木) 20:26:57
うーん、動かない。何か間違ってる?

Traceback (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
668デフォルトの名無しさん:2005/06/16(木) 20:29:24
あ、動いた。サンクス>>665-666
669デフォルトの名無しさん:2005/06/16(木) 22:30:06
あれ、super(Ko, self).bar()にしても動かない…。
670デフォルトの名無しさん:2005/06/16(木) 22:39:55
class Oya(object): でないと遺憾。
671デフォルトの名無しさん:2005/06/17(金) 07:24:12
>>665
協調メソッドといったNew style classにおける菱形構造の多重継承を解決するもので、
通常は、MROなどを利用しなければ利点も害もないはずです。
672デフォルトの名無しさん:2005/06/17(金) 12:33:06
こんな感じでみんなよくわかってないもんで、
new style classのその辺をすぱっとまとめて解説した
Effective Pythonみたいな本をきぼんぬ。
673デフォルトの名無しさん:2005/06/17(金) 15:46:10
本じゃなくてもいいけど、確かにその辺の情報ほしいなぁ〜。日本語で。
674デフォルトの名無しさん:2005/06/17(金) 21:45:25
「息子が連れてきた彼女とオマンコする。」
みたいな逆継承機能ってないの?
おっぱいソンなら実装できそうな気がするんだけどな。
675デフォルトの名無しさん:2005/06/17(金) 21:50:02
>>674
逆継承と一行目のたとえのつながりがわからん
676デフォルトの名無しさん:2005/06/17(金) 21:56:22
「父のティムポのインスタンスが息子のティムポ」
だから継承可能
677デフォルトの名無しさん:2005/06/17(金) 23:40:05
>>657
apacheが使ってるSHA1の方式はsaltが固定なので、気をつけて。
BSDライセンスコード使うのに問題がなければ、MD5推奨。

>>672
英語だと http://www.python.org/doc/newstyle.html だけど
日本語訳されてないのかな...

678デフォルトの名無しさん:2005/06/18(土) 00:17:45
すんません最近はじめたものなんですけど
インデントにハードtabを使用してはいけない理由がよくわからんのですが・・・
エディタや端末の都合によってtab幅を変えたりできるので個人的にはなんで?
という感じなんですが
679デフォルトの名無しさん:2005/06/18(土) 00:24:16
>678
>エディタや端末の都合によってtab幅を変えたりできるので
だからこそ、ハードtab使うと、ソースの見た目が「エディタや端末の都合で」バラバラに変わってしまって
見やすくないからジャマイカ。
680678:2005/06/18(土) 00:28:49
むう。それはそうなんですが

利点と感じる人間もいれば欠点と感じる人間もいるわけなんですね
特にこだわりがあるわけでもないので礼儀正しくスペースでいきます

将来のバージョンでは「お勧めしない」から「エラーとなる」
とどこかに書いてあったもので気になってたずねてみました

ありがとうございました
681デフォルトの名無しさん:2005/06/18(土) 01:45:18
>>657
あらためてコードを見直してるときに気付きました(鈍い^^;) 確かにこれではMD5推奨ですねぇ。
ところで、BSDライセンスって、自分のコードと同一ファイルに改変を加えながら混ぜ込んだ場合はどうなるんだろう……。
>>678
python歴1週間なんですけど、ハードTABは内部で最大8コのスペースに変換される(ハードTAB幅=8)というのは見たのですが、使うなっていうのはどこに書いてます?

# perl歴10年以上、ruby歴ちょっとだけ、のところからやってきますた。
# とりあえずわかったことは、カッコだろーがbegin〜endだろーがインデントだろーが
# たいして変わらん(Emacsがよきにはからってくれるし:-)、とゆーことでつね。
682678:2005/06/18(土) 01:53:56
>>681

http://www.python.jp/Zope/
>Guido van Rossum 氏は Python プログラマのさらなる飛躍のため、新たな「型」の導入を決心したようです。
>それはホワイトスペースの使い方を構文レベルで強制することです。次のような案が出ています。
>タブによるインデントは廃止。インデントにはスペースを使う。

ここに書いてありますた
683681:2005/06/18(土) 01:59:34
>>682
それについては、エントリの日付をよく確認した方がよいかと……(^^;;;
684682:2005/06/18(土) 02:03:54
ありゃ4/1かー
じゃtabでもエラーにはならないみたいすね
ただtabはオススメしないと別のサイトにあった記憶が

・・・それも4/1じゃないよな・・・
685681:2005/06/18(土) 02:19:11
Windowsあたりから来た場合タブ幅が4だったりするので、スペースとタブを混在させると原因が理解できないバグを発現させる可能性があるからじゃないでしょーか。
UNIXから来た場合はタブ幅が8なので、問題なかったりするのですが。
686デフォルトの名無しさん:2005/06/18(土) 05:09:52
>>681
実際に使用するライブラリがあればそっちのライセンスを適用すべきだけど、
参考までに、apr-util(Apache Portable Runtime utility)のmd5 encodeでは、
アルゴリズムはFreeBSDのcryptから借りてきたよ。とだけコメントに書かれてます。
緩いライセンスなので、それほど気にする必要はなかったかな。改変も商用利用も問題ないです。

>>684
PEP8 Style Guide for Python Codeですね。
April oneのは、構文解析時にスタイルを強制するかも、って話で、
そこに書かれてる作法自体は、PEP8スタイルガイドで昔から推奨されてます。
687デフォルトの名無しさん:2005/06/18(土) 06:20:30
他の言語でも公開するようなソースはtab>whitespace変換しとけみたいなこと言われてないか?
688デフォルトの名無しさん:2005/06/18(土) 15:39:26
>685
おいおい
viでもset tabstop=4とかすりゃ……
689デフォルトの名無しさん:2005/06/19(日) 00:54:25
組み込み言語としてのPythonってどうですか?
現在WindowsXP + VC++.NET + DirectX + Python2.4で、ゲームを作っています。
ネイティブコードより、Pythonを呼び出してPythonからネイティブコードをCallできる
仕組みを利用しているのですが、Pythonモジュールの呼び出しのオーバヘッドや動作速度が気になります。
690689:2005/06/19(日) 00:56:13
質問age
691デフォルトの名無しさん:2005/06/19(日) 02:58:10
>>689
質問は具体的に。
692デフォルトの名無しさん:2005/06/19(日) 10:02:51
組み込みって言われると機器の制御とかそういう方を思い浮かべた俺
693689:2005/06/19(日) 13:46:11
>>691
組み込み用途としてPythonを採用しているソフトって、メタセコイアぐらいしか知らないんで
他にどういった使われ方をされているか知りたい。
694デフォルトの名無しさん:2005/06/19(日) 14:08:25
>>693
メタセコよりBlenderの方が色々な使い方をしてるな。
ソースも公開されてるし。
一応、PS2・PCゲーなどで組み込まれた実績あり。
検索すれば出てくる。

ただ、組み込み系はメモリ的にキツいだろうね。
メモリが足りない=ストップだから。
695デフォルトの名無しさん:2005/06/19(日) 14:12:18
>>693
その方面だと Shade、trueSpace、Blender あたりが有名かな。
いずれも Python による scripting が可能だそーだ。
696689:2005/06/19(日) 14:24:55
>>694
結構採用実績がありますね…。PS2で組み込まれたのはすごいな。
BlenderもPythonだったのかぁ、知らなかった。使いにくくて辞めたけど…。
気になったのは、メモリの関連。Pythonってメモリ使用量多いですか…?
すごく気になる。

>>695
trueSpaceみたいなゲームフレームワークも採用しているのか。
自分が思いついた事はもう既に誰かが実践しているのね。ちょっと悲しい。
Shadeは使っているんだけど、Pythonスクリプティング可能だったのかー!
知らなかったー…。
697デフォルトの名無しさん:2005/06/19(日) 14:45:57
10年以上の歴史がある言語だからねえ。
698689:2005/06/19(日) 14:47:26
>>694
Pythonドキュメントで10.1 Allocating Objects on the Heapの項である
関数以外でPythonがヒープに大きく影響する?
PyMethod_Functionを呼んだ先でヒープ確保とかしているということ?
Pythonのメモリマネジメントってどうなっているのか分からない…。
699デフォルトの名無しさん:2005/06/19(日) 14:52:03
>>697
10 年は若い方

>>698
前に調べた時は GC は参照カウント + ループ回避だったみたい
700689:2005/06/19(日) 14:58:16
>>699
CからPythonの関数を呼んだ時に、Pythonが確保するヒープ容量って
どのように制御されているか分かりますか?
Pythonが勝手にメモリを食っていくようだと、かなり厳しいのですけど…。
できれば呼び出し側のC側で使用メモリ容量を制限したいんですが。
701デフォルトの名無しさん:2005/06/19(日) 19:57:07
>>696
> 気になったのは、メモリの関連。Pythonってメモリ使用量多いですか…?

組み込み用途として考えると多い、と言えるだろうね。Pythonに限らず
RubyもLuaも基本的な作りは同じだと思うよ。便利モジュールをインポート
して使用メモリの増加を見るといい。

基本的に処理の呼び出しが名前ベースで解決されるから、
インスタンスが増えれば増えるほどその分文字列のデータが
増えてくわけだ。名前で解決するからこそ便利な一面も
あるわけだけど。
適当にしか見てないからウソ言ってるかも。

自分アプリに組み込むか、ソースをコンパイルするなりして、
デバッガでmallocしているところを追うのが手っ取り早い。
マニュアル見れば結構簡単にできる。

スクリプティング可能にして、ユーザに拡張させることを考えると
どれだけのメモリを使うか予想が付かないから組み込みでは
キツい、という自分なりの結論。後、Pythonは基本的に保護
機能みたいなのが無いから、行儀の悪いことされると困る。
性善説に基づいているような言語って感じ。
702デフォルトの名無しさん:2005/06/19(日) 20:55:23
そんなタイトな環境でスクリプトを使う神経がわからんダスよ
703デフォルトの名無しさん:2005/06/19(日) 22:47:41
>>698
> Pythonのメモリマネジメントってどうなっているのか分からない…。
つpython/dist/src/Python/memmove.c
704689:2005/06/19(日) 23:08:47
>>701
Python側で変なコード書かないかチェックしなきゃいけないって事ですね・・・。
参考になりました。もうちっと追っていきます。
(自分はPy_InitModule呼んだ段階でヒープは全て確保済みだと思っていた・・・)

>>702
ゲームとかゲームとかゲームとか・・・

>>703
眺めておきます(ぉ
705デフォルトの名無しさん:2005/06/19(日) 23:25:52
Poser3DにもPythonスクリプト載っている
706デフォルトの名無しさん:2005/06/19(日) 23:36:13
>>704
> ゲームとかゲームとかゲームとか・・・

だったらBlenderが一番の参考資料になるかもね。
Pythonでゲーム向けのAPIが用意されてるよ。
色々なデモがあったはず。


個人的な考えだけど、まずはデバッグ環境用としてのみPythonを組み込んでおいて、
実行時にオブジェクトのステータスを変えたり、振る舞いを変えたり、といった
作業効率を向上させるための道具として使う。で、メモリ、動作速度面での
目処が立てば次のプロジェクトで実用へ、って感じかな。

まぁ、ゲームに組み込みを考えるならLuaの方がコンパクトだから
そっちの方が無難かも。
707689:2005/06/19(日) 23:49:06
>>705,706
イロイロ参考になります(汗
今はゲームで画面遷移、パラメータ設定、セーブの為のシリアライズのみ使ってます。
Blenderソースは知らなかった・・・。探してみますね。

Luaはコンパクトな反面、標準モジュールがPythonに劣るので・・・。
時流に乗ってPythonでいきます。
708デフォルトの名無しさん:2005/06/20(月) 02:44:38
> CからPythonの関数を呼んだ時に、Pythonが確保するヒープ容量って
自分でPythonの処理系をコンパイルするなら、オプションで上限を設定できます。

> 基本的に処理の呼び出しが名前ベースで解決されるから、
> インスタンスが増えれば増えるほどその分文字列のデータが
> 増えてくわけだ。

Pythonの文字列は(関数呼出の際の関数名など内部で使われる文字列も)
重複する文字はinternとして扱われるので、メモリの面では単純に比例して増えるわけではありません。

あと、Pythonのソースで気をつける事。# とりあえず思いついただけなので、突っ込み・追加歓迎

- 事前処理以外にevalを使わない。
- (stacklessでなければ、)再帰呼出やデータの循環構造
- リストを固定長で扱う。リサイズ時に拡張されるので、appendを直接使わない。
初期化時に長さだけ確保しておく方が良い。Cの配列ようにまとまった領域が取られる為。
- クラスで抽象データ構造を表現せずに、list,dictを使い、長さ、要素の長さを制限する事で
実行時に使うデータ領域が大体予測可能になるはず。

> Luaはコンパクトな反面、標準モジュールがPythonに劣るので・・・。
組み込み向けでは、調査しなければならないライブラリが増えるというデメリットもありますね。

>>703
memmove.cってメモリマネージメントとは関係ないですよ。
アロケーターとかは、src/Objects/obmalloc.c
709701:2005/06/21(火) 00:26:34
>>708
詳しい情報をありがd。

自分の中でPython組み込みのモチベーションが
下がってたからいい刺激になったよ。
710689:2005/06/21(火) 01:26:22
まじ皆さん情報感謝しています。

>>708
組み込み向けPython Scriptingも奥が深い…。気をつけることが満載ですね。
>自分でPythonの処理系をコンパイルするなら、オプションで上限を設定できます。
自分も該当コードを見つけて喜んでいました。

>組み込み向けでは、調査しなければならないライブラリが増えるというデメリットもありますね。
Python使う理由が、C/C++のライブラリ探すの面倒くさいというのもあったりしてなかなか難しいです…。
通信関係は全てPythonに依存しています…。
711デフォルトの名無しさん:2005/06/21(火) 01:54:42
draft を Python で実装(ほとんど設計と同義)して
そして徐々に C++ → C → asm で*変換*していくストラテジーは
組み込み系*でも*有用だと思いますよ。
ブランチコード全体に於ける Python コード行のパーセンテージの表示で
進捗状況をアナウンスするとおもろいかもね。
712648:2005/06/22(水) 00:07:16
とりあえずモジュール書きに挑戦してみますた。パスワードファイルとグループファイルをいじくるためのモジュールです。
http://iwa.ath.cx/software/python/ApacheAuthFile.tar.bz2
python歴10日足らずなので、命名規則等も含めて「よりpythonらしい」書き方の添削キボンヌ。
ファイルの更新がatomicでないので、壊れたファイルをApacheに読まれる可能性がありますが、一時ファイル作ってリネームというのをやり始めてみたら、排他制御が面倒だったので……(^^;
713デフォルトの名無しさん:2005/06/22(水) 10:15:19
>>710 追加で、
- appendの他にも配列型のオブジェクト全般で(文字列、タプル、リスト, ...)の 連結・反復 + * += *= や スライス。
- リストの場合、可能なら遅延リスト(GeneratorやIterator)で表現するとメモリを節約になる。

通信だと、marshalを通信プロトコルでオブジェクトのシリアライズに使わないとか。
組み込みに限った話ではありませんが、セキュリティ面での注意も幾つかありますね。
メモリに関していえば、数バイトの不正なデータで大量のメモリを占領されたりする等、問題になります。

ところで、ライブラリ込での組み込みとなると、ライブラリがすでに富豪的に書かれてるので、
これらの省メモリ・テクニックってあまり効果がないかも知れないなぁ。予め余裕をもってヒープ確保する方が有効だと思う。
714デフォルトの名無しさん:2005/06/22(水) 10:18:52
>>712
実行はしてないけど、見た感じだけレビュー

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は、はずすこともできる。
715648=712:2005/06/22(水) 13:35:42
>>714
> 見た感じだけレビュー
どっちかと言うとその方面での突っ込みを期待していたので、感謝です。
> main
pythonではこう書くんですね。今回のものは、テストコードを分離したいのでこのまま行くと思いますが。
> str
obj.str()ではなくて、str(obj)なんですね。んー、rubyに毒されてるせいかもしれないけど、いまいち気に入らない……。
> ビルトイン型の名前と重なる
ライブラリリファレンス等を見てると、これって結構注意しないといけなさそう。(fileとlistはやってました^^;)
> TAB
使わないのが推奨? 気付いてなかったんですが、Emacsのpython-modeは全部スペースに展開してますね。
> __all__
どっちを使うかは好みでしょうか。ローカルスコープのものに"_"を付けるのもそれはそれでわかり易いように思うし。
# こーゆー部分で選択肢をあたえるのはびみょーにpythonらしくないよーな気するのは偏見?(^^;
716デフォルトの名無しさん:2005/06/23(木) 14:07:39
おまいらラベル高いな
717デフォルトの名無しさん:2005/06/23(木) 15:53:54
ぼくのラベルも上昇しそうです!(><)
718デフォルトの名無しさん:2005/06/23(木) 17:27:39
なんで
obj.str()
obj.len()
とかじゃなくて
str(obj)
len(obj)
なの?
719デフォルトの名無しさん:2005/06/23(木) 17:32:19
そのほうが覚えづらくて難易度が上がって上級者だから
720デフォルトの名無しさん:2005/06/23(木) 17:57:41
>>718
おかげでしょっちゅう間違えるよorz
あとperlのjoin()相当が、array.join(separator)じゃなくて、separator.join(array)だったのに愕然とした。
721デフォルトの名無しさん:2005/06/23(木) 18:48:21
PythonはSmalltalkではないし、Perlでもない
722デフォルトの名無しさん:2005/06/23(木) 18:53:07
Pythonしか使わない俺は勝ち組。
723デフォルトの名無しさん:2005/06/23(木) 19:04:58
違うのはわかるけど、直観に反してると感じられて何か気持ちよくない。
pythonという言語仕様自体は(もうperlには戻りたくないなと思う程度には)悪くないと思うんだけど、組み込み関数/クラスのデザインについてはちと、いや、かなり納得がいかない部分が……。
724デフォルトの名無しさん:2005/06/23(木) 19:10:55
もう一個。せっかくlambdaがあるのに実行文を許さないのは納得いかーん!!
無名関数/メソッドにしたいのにいちいち名前付けにゃならんのはウザいぞー。
725デフォルトの名無しさん:2005/06/23(木) 21:07:40
年食ってだんだんこだわりが無くなってきた希ガス。
動けばいいやー、みたいな。
726デフォルトの名無しさん:2005/06/23(木) 21:18:04
俺も>>723に同意
使い始めの頃 x.dir(), x.len(), x.str() て書いて怒られてたし
今も x.dir() のほうがいいと思ってる.

"".join(array) はキモイから
str.join("", array) にしてる.

あと sort() もリストを直で変える点が気に入らない.
新しいリスト作って欲しい.これは
def sort(L): L2 = L[:] ; L2.sort() ; return L2
1回書いとけば問題なし.
727デフォルトの名無しさん:2005/06/23(木) 21:20:25
str(obj)はstringのconstructorだから不自然ではあるまい。
len(obj)はlen()の実装がオブジェクト中立だから。
__len__のかわりにlen()を定義すればよい、という意見はあるだろうが、
あらゆるclassに引き継がれる大元の基底クラスで、いたずらに公開属性は定義しないというポリシーの意義は
それはそれで理解できるのではないか。
たとえばRubyはObject classにメソッドを定義しすぎで、見通しを悪くしている。
(トップレベルでユーザが定義したメソッドまで放り込まれてしまうのはもはや笑うしかない)
728デフォルトの名無しさん:2005/06/23(木) 22:27:14
なるほど
729723:2005/06/23(木) 23:56:04
>>727
ふむ、そういうポリシーなわけですか。組み込み関数群を眺めてると、オブジェクトに対する基本的な操作については頑なにobject.method()になるのを避けてるよーに見えたのですが、それなら理解できなくもないです。
個人的にはruby的アプローチの方が使い勝手が良さそうには感じますけど、このあたりは個人の感性の問題かなぁ。ルートクラスがfatだと美しくないのは確かだし。
もっとも、このあたりの議論なんて、本家ではとっくに決着がついてて今さらな話のよーな気がひしひしと。
730デフォルトの名無しさん:2005/06/24(金) 00:01:47
>>726
2.4からは組み込み関数 sorted() が実装されたよ。
これは新しいリストを返してくれる。
iterableクラスのメソッドじゃないから、キモイって言われそうだけど。
731デフォルトの名無しさん:2005/06/24(金) 09:39:49
http://www.python.org/doc/faq/general.html#why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list
> 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.
732デフォルトの名無しさん:2005/06/24(金) 11:17:18
要するに「今さら変えられねーYO!」でつか(^^; 3.0にするときにでも大胆に見直ししてくんねーかな。やりすぎるとperl6になってしまうけど(ぉ
733デフォルトの名無しさん:2005/06/24(金) 16:26:06
文字列で、evalを使わずに関数やメソッドを呼び出すのってどうやるんですか?
一応、オンラインのリファレンスマニュアルやライブラリマニュアルを眺めてるんですが、どこからたぐればよいのかさっぱり……。

def func1(): ...

func = "func1"
# eval(func + "()")相当をevalを使わず実現したい

class Class1:
def method1(self): ...

obj = Class1()
method = "method1"
# eval("obj." + method + "()")相当をevalを使わず実現したい
734デフォルトの名無しさん:2005/06/24(金) 16:43:07
オブジェクトでもモジュールでも、getattrで属性を得る。
m1 = getattr(obj, "method1")
m1()

mymodule = sys.modules['__main__'] (これはもっと簡単に書けるかも)
f1 = getattr(mymodule, "func1")
f1()
735デフォルトの名無しさん:2005/06/24(金) 18:07:26
>>734
感謝!! モジュール内の関数だとsys.modules[__name__]になるのかな。……これでいけるよーだ。(もっと簡単な方法もありそーな気も)
ところで、moduleオブジェクトとか関数オブジェクトとか、処理系自身が持つクラスやオブジェクトに関して体系的に解説した本とかオンラインドキュメントってあります?
736デフォルトの名無しさん:2005/06/24(金) 21:31:35
つかぬことをお伺いしますがPythonにはconstというか定数という概念は無いのですか?
737デフォルトの名無しさん:2005/06/24(金) 22:11:41
ないない。
738736:2005/06/24(金) 22:21:57
(´・ω・`) 定数ぐらい欲しいよね…
739デフォルトの名無しさん:2005/06/24(金) 22:47:08
定数は俺たちの心の中にある。
740デフォルトの名無しさん:2005/06/24(金) 22:53:31
つpi
741デフォルトの名無しさん:2005/06/25(土) 00:50:44
定数はいくらでもあるよ!!
1 <- 定数
2 <- これも定数
742デフォルトの名無しさん:2005/06/25(土) 01:29:57
いまはNoneも定数だよな?
743デフォルトの名無しさん:2005/06/25(土) 02:52:39
まあ、トラップすることはできるけど。
ttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/414140
744デフォルトの名無しさん:2005/06/25(土) 09:54:33
Pythonにないのは定数だけじゃない。属性の可視性の制御もない。
Pythonの世界ではプログラマはみんな仲間であり同士。
745デフォルトの名無しさん:2005/06/25(土) 11:04:49
Pythonではテメエのナニをどこにでも突っ込める。倫理違反もへったくれもない。
Pythonの世界ではプログラマはみんなケダモノであり穴兄弟。

ナンチャッテ
746デフォルトの名無しさん:2005/06/25(土) 11:18:16
モンティパイソン精神!
747デフォルトの名無しさん:2005/06/25(土) 11:29:01
プログラマさまが過ちを犯すわけがない!

Zap! Zap! Zap!
748736:2005/06/25(土) 14:15:20
>>743
お、これ応用すればconst風にできるね。
ありがとう。
749デフォルトの名無しさん:2005/06/25(土) 15:02:24
それ、どんなときに使うの?
750デフォルトの名無しさん:2005/06/25(土) 20:05:16
今スト!今スト!
751デフォルトの名無しさん:2005/06/25(土) 20:12:48
>>715 > __all__
標準モジュールでもどちらにするか統率が取れていない様なので、好みの問題でしょうね。
この場合は、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を使わない保守的なコードを書いていれば、ある程度チェック出来るはず、
752デフォルトの名無しさん: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)
753736:2005/06/25(土) 23:12:04
>>751-752
そうか、静的チェックと言う方法もありますね。
工夫でカバーできるもんだなぁ。どうもです。
754デフォルトの名無しさん:2005/06/26(日) 23:36:54
Python 難しいな
755デフォルトの名無しさん:2005/06/27(月) 10:15:08
定数として用意した属性を誤って書き替えちゃうケースって想像しにくいが。
書き替える時は意図的なんだから、書換えられないようにするのはまずくないか。

C++のような、コンパイル時にエラーがチェックできる世界が望みなら、
わざわざ動的型言語を使わんでも、と思う。
756デフォルトの名無しさん:2005/06/27(月) 12:19:24
>>751
> 書き掛けですが、http://rupy.rubyforge.org/wiki/wiki.pl 辺りの内容に興味あります?
うーん、読むだけなら(^^; Perl, Ruby, Pythonのそれぞれで、こっちの場合はこう書く、という情報には興味があります。(件のページはRubyとPythonがターゲットですが)
757デフォルトの名無しさん:2005/06/27(月) 14:59:48
>>755
うっかりミスを防ぐって意味では有効だよ。

変更されないことを前提としてコーディングしたのに、そのことを忘れて書き換えたりとかね。
758デフォルトの名無しさん:2005/06/27(月) 16:03:55
a, b, c = str.split(':')
で、要素が足りないときには足りないやつにNoneを、多いときには単に残りを無視したいのですが、何か簡潔な書き方はないですか?
759デフォルトの名無しさん:2005/06/27(月) 16:11:01
簡潔とは言い難いが
a,b,c=(str.split(":") + [None] * 3)[:3]
760デフォルトの名無しさん:2005/06/27(月) 17:01:27
左辺の内容が右辺では知りようがないから、
どうしても要素数を明示する必要があるよね。
そういうgeneratorでラップしたらいくらか格好はましになるけど、
unpackがもうちょい融通の利くものになってくれるといいよなぁ。
761デフォルトの名無しさん:2005/06/27(月) 17:50:32
> 要素が足りないときには足りないやつにNoneを、
> 多いときには単に残りを無視したい

その要求を逐語訳して if 文で書くのがいいんじゃないか?
>>759のようなコードを書くと後で読み返したとき意図不明になる希ガス。
762デフォルトの名無しさん:2005/06/27(月) 18:26:33
>>759
感謝。やっぱり、配列にn個足して前からn個切り出すしかないんですねぇ。
>>761
最初はそう書き直そうと考えたんですが、「Heavyweight Languageじゃあるまいし、こんなんいちいち書いてられっかー!!」と思わず切れたのどした。
なので、759をほぼそのまま採用する私(^^;
763デフォルトの名無しさん:2005/06/27(月) 18:51:47
これだから重い言語のほうが読みやすいんだよ
764デフォルトの名無しさん:2005/06/27(月) 18:58:13
せめて関数にするか
def fitseq(seq, n):
 return (seq + [None] * n)[:n]

たぶん同ネタがPython Cookbookにあると思うんで、誰か探してくれ。
765デフォルトの名無しさん:2005/06/27(月) 19:30:51
>>759
strが空文字列だと a="", b=c=None になるけどいいのかな?
766758:2005/06/27(月) 19:47:46
>>765
空文字列も文字列だし、他の言語でも同じ結果になるはずなので、問題ないです。
……ということは、split()の結果に追加する配列は[None] * (n - 1)の方がいいのかな。
767デフォルトの名無しさん:2005/06/27(月) 20:06:36
右辺の個数が不定なのに a, b, c = ... と書くのは何か違う希ガス。
abuse というか何というか。
768デフォルトの名無しさん:2005/06/27(月) 20:11:21
1対1対応にこだわらない、きさくな代入演算子があるといいのだが
769758:2005/06/27(月) 20:46:57
>>767
たーげっとは、各行が
USER_ID:ENCRYPTED_PASSWORD
もしくは
USER_ID:ENCRYPTED_PASSWORD:COMMENT
となってるファイルなんです。(要はApacheのpasswdファイル。ちなみに後者のフォーマットでもOKなのはApache2のソースで確認済み)
COMMENTが無ければNoneになってほしいわけで……。
770オレ ◆oReSiGNpIo :2005/06/27(月) 20:49:04
>>768
そういう変なワガママを叶えるのがPerlです。
許されてないのがPythonです。たぶん。

たぶん、オレなら>>758のような問題はiteratorあたりかなぁ。
yield3回してStopIterationとか。
多少コードの量が犠牲になるけど、
読むときそれなりにわかりやすいからイインデネーノ。
771デフォルトの名無しさん:2005/06/27(月) 21:29:06
>>769
俺だったら素直に条件分けするところだなあ。

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"
772オレ ◆oReSiGNpIo :2005/06/27(月) 21:48:05
extend使うとすれば、こんなのでもいいかも。
4つ以上のときはシカトされるから気をつけてねw

tokens = line.split(':')
while len(tokens) < 3:
 tokens.extend([None])
773オレ ◆oReSiGNpIo :2005/06/27(月) 21:53:36
ごめ、アゲちゃいました。
ついでに、extendでなくて、単純に
tokens.append(None)でいいんだった。
774c:2005/06/27(月) 22:40:47
from itertools import chain, islice, repeat

tokens = line.split(':')
username, password, comment = islice(chain(tokens, repeat(None)), 3)
775758:2005/06/27(月) 23:06:18
>>774
う゛、読めない、マニュアル、マニュアル……えーっと、>>759をイテレータで書き直した、と考えればいーんでしょーか。
こちらの方が速度/メモリ効率は良さそうな感じ。(大した差ではないだろうけど)

でも可読性を考えると>>771が正論のよーな気がしないではない(^^;
776オレ ◆oReSiGNpIo :2005/06/27(月) 23:14:12
キタキタ、itertoolsはまだ使ってないや。

http://www.python.jp/doc/release/lib/itertools-functions.html
777758:2005/06/27(月) 23:21:18
chat状態だな(^^;
えーっと、repeat(None)で[None, None, ...]の無限列を生成、
chain(tokens, repeat(None))でtokens + [None, None, ...]、
islice(..., 3)で[:3]、
でもこいつらはイテレータなので実体は作らない、でOK?
778オレ ◆oReSiGNpIo :2005/06/27(月) 23:23:27
う、先こされたけどオレも爆撃しちゃうぞ、と。

repeat(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みたいに値がかわっちゃうのを嫌うときとかにも使えるしなかなか便利そう。
リストの機能じゃ不満な人はぜひ修得すべしってところだのう。
779デフォルトの名無しさん:2005/06/27(月) 23:50:25
[re.split('[:\n]', line)[:4] for line in file('.htpasswd')]
780デフォルトの名無しさん:2005/06/27(月) 23:56:42
for u, p, c in (re.findall('\w+', line)+[None])[:3] for line in file('.htpasswd')):
781デフォルトの名無しさん:2005/06/28(火) 11:33:54
iteratorとかgeneratorとか、こういうのをさらっと使えると何かかっこいいなあ。
782デフォルトの名無しさん:2005/06/29(水) 18:40:37
>>753 Consts
大文字とアンダースコアのみの変数を、定数としてコンパイルするスクリプト書いてみました。
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/435694

>>756
言語の比較の部分ではなくて、
Pythonの内部的な所に興味があると思ったのだけど、違ったかな...
783デフォルトの名無しさん:2005/06/29(水) 21:47:25
あっさり書くのか。
784756:2005/06/29(水) 23:42:47
>>782
基本的には使う側の人なので、内部そのものよりは、
その応用編に興味があるというか。
例えば、文字列から関数やメソッドのオブジェクトをひっぱってきて
間接的に呼び出す場合だと、シンボルテーブルや関数オブジェクトの知識が
いるわけですが、そういった処理系自身のクラスやオブジェクトがどのように
関連しあっているか、というのがリファレンスマニュアルを見るだけでは
よくわからんのです。
で、そのあたりの解説が欲しいな、と。
他言語との比較については、まぁ、今までperlどっぷりだったので、
perlではこー書くんだけど、pythonではどー書くの?というのが頻発してて、
しかもそーゆー部分に限って上記のような微妙な部分だったりするので、
そういうのがまとまっていればなぁ、と。
perlでは「&{"func"}(@args)」と書くんだけど
pythonでは「locals()["func"](*args)」と書く、
ということはリファレンス見てるだけではたどり着けませんでした。
教えてもらってからあらためて読むと、なるほど、となるんですけど……。
785デフォルトの名無しさん:2005/07/01(金) 00:56:39
lex/yaccのPython版ってありませんでしたっけ。
前IBMのdwで紹介されていた気がするけど見失ってしまった…。
786デフォルトの名無しさん:2005/07/01(金) 01:34:42
787デフォルトの名無しさん:2005/07/01(金) 13:00:59
>>784
Python 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)みたいなのは、可能ではあるけど、
実際にスクリプト書く時は、コードの可搬性や安全性を考えると、
一旦、辞書等に呼び出せる関数郡をまとめた方が良さそうです。
788デフォルトの名無しさん:2005/07/01(金) 13:11:02
> unpack
unpackは本来、タプルの要素を展開をするものだったので、
ドキュメントにも書かれてる通り、両辺の要素数が同じというのが前提です。
要素数が不定のリストに適応する場合は、固定数の要素を返す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/)
789デフォルトの名無しさん:2005/07/01(金) 13:39:20
>>787
> こういった事例の事でしょうか。
ですです。各種ポインタ感謝。ぼちぼち読んでみます。
とりあえずこんなん(↓)やってみたかったので、いろいろ調べてますた。
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):
  ...

# 車輪の再発明?(^^;
790デフォルトの名無しさん:2005/07/01(金) 13:43:52
>>788
あ、それ面白い。なるほど。デフォルト引数は有効かも。
791789:2005/07/01(金) 13:55:24
PLEAC面白いすね。そうそう、こーゆーのが欲しかったんですよ。
792デフォルトの名無しさん:2005/07/02(土) 10:57:45
>>789
Perlの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):
  ...
793デフォルトの名無しさん:2005/07/02(土) 19:31:01
ちなみにPython用のweb application frameworkはいっぱいある。ほんとに腐るほどいっぱい。
http://wiki.python.org/moin/WebProgramming
とりあえず私はQuixoteを使っている。
794デフォルトの名無しさん:2005/07/02(土) 21:47:12
>>793
情報感謝。tracは何か自前で処理してるっぽかったんで、一般的なやつって無いのかなーと思ってました(^^;
ま、今作ってるのって、tracと組み合わせて使うやつなんで、結局自前で処理する必要が……。
795デフォルトの名無しさん:2005/07/03(日) 00:04:33
>>793
Quixote、公式のドキュメントでわかりますか?
読解力なくて諦め気味…
796デフォルトの名無しさん:2005/07/03(日) 00:40:06
PythonでWinアプリ作ってる方いませんか??
たとえば、ウェブブラウザ、メディアプレーヤー、ファイラー等。

もし可能であれば、サンプル等を見せて頂けると非常にありがたい。
実用的な物を作る為のドキュメントが少なくて…。

ちなみに一番作りたいものはスキンに対応したメディアプレーヤー。
797デフォルトの名無しさん:2005/07/03(日) 03:13:42
guiは何使うの?
798デフォルトの名無しさん:2005/07/03(日) 03:45:41
wxWidgetsってスキンに対応してるの?
799796:2005/07/03(日) 04:22:10
>>797
実現可能ならなんでも良い。最悪GUI部分はDelphiでって考えてます。

>>798
wxframeにwxFRAME_SHAPED ってのがあるけど、複数組み合わせる方法等、高度な使用方法がわからない。

ちなみに専門用語とかあんまりわからないから説明が下手になるけど、
スキン対応=ユーザーがスキン作成可能ではなくて、
アプリ製作の時点で通常のウィンドウ(タイトルバーなど)ではなく、ビットマップを使用して組み立てることを意味しています。

Python以外でもスキンに対応したアプリの作成方法を解説したサイトをご存知の方いますか?
検索方法が下手なのか、みつかりません...orz
800デフォルトの名無しさん:2005/07/03(日) 04:36:37
http://www2.cmp.uea.ac.uk/~fuzz/tktrans/default.html
よーわからんがこういう↑やつか?
801デフォルトの名無しさん:2005/07/03(日) 09:39:59
>>795
ドキュメントに加えて、demoディレクトリのサンプルとQuixote自身のソースでなんとかなっている。
いくつかTIPSはあるが、まだまとめていない。
802デフォルトの名無しさん:2005/07/05(火) 03:34:20
wikiみたいに例えば
行頭に*がある場合、<h1>*を除いた行の残りの文字</h1>に変換する
場合どういう風に書いたらいいの?
803デフォルトの名無しさん:2005/07/05(火) 04:50:40
import re
804デフォルトの名無しさん:2005/07/05(火) 11:47:26
ヒデェ
805デフォルトの名無しさん:2005/07/05(火) 12:01:35
>>802
手順を細かくわけて考えてみれ。
1. 行頭に*がある場合に、*を除いた行の残りの文字をとりだす。
2. とりだした文字列の前後に<h1></h1>を追加する
3. 変換後の文字列に置き換える
806デフォルトの名無しさん:2005/07/05(火) 14:02:39
つうかpyてょnでの正規表現の扱い方がイマイチわからんかった!
が、やっとオブジェクトなんだ!ということを理解して
正解にたどり着きました。スマンカッタ。
807デフォルトの名無しさん:2005/07/05(火) 17:48:14
標準的なパッケージの命名規則ってどうなってるんでしょうか?
標準で入ってるパッケージでも先頭大文字のcamel case(?)と全部小文字というのが入り交じってるよーで、どーゆーポリシーで命名するのが「普通」なのか……。
tracなんか、単一アプリなのに両方あるし。
808デフォルトの名無しさん:2005/07/05(火) 18:45:22
>807
「そんなこと自分で考えろよ。子供ジャナインだから」

ってポリシー。
809デフォルトの名無しさん:2005/07/05(火) 21:07:06
>>807
package == モジュール名という事なら、Pythonではモジュール名 == ファイル名なので、
通常、lowercaseでアンダースコアなしでなるべく短い名前が推奨されてる。

ライブラリやフレームワークを使う場合は、既存のものに併せて内部で一貫性を保つのが推奨されているので、
例えば、wxPythonでの開発なら、wxWidegtsの命名規則を適用する事等もある。

アプリの名前は自由に付けてもいいと思う。
810デフォルトの名無しさん:2005/07/05(火) 21:10:35
>>808
よーするに、俺の決まりが絶対、他の世界は知らないってことですか?w
811デフォルトの名無しさん:2005/07/05(火) 21:35:00
アンダースコアだめなのか。。。
812807:2005/07/05(火) 22:51:27
>>809
なるほど。〆(.. ) 基本的には1単語になるのかな。
複数単語をくっつけたいときはディレクトリを掘れということなんでしょうか。
でもディレクトリを掘ると__init__.pyを用意しないといけないようなんですが、ディレクトリが他のパッケージと衝突したらどーするんでしょー?
そもそも何か勘違いしてるような気もしないではないですが……。
813デフォルトの名無しさん:2005/07/06(水) 06:23:35
>>811
標準モジュールでも名前の区切りに"_"使ってるのもあるので、駄目って訳ではない。
でも、package名でアンダースコア使ってるのは見た事がないなぁ。一応、推奨されているという根拠はPEP8 style guideより。
privateなモジュールを現す為に、例えば、拡張モジュール等でアンダースコアを名前の先頭に使う場合はある。

>>812
top levelのパッケージ(ディレクトリ)名さえ気を付ければ、大丈夫だとは思うけど?
Perlみたいに Net:: とかの名前空間を共有する事はないので、ユニークな名前を付ける。
パッケージ名よりはむしろ、モジュール(ファイル)名が標準モジュールと名前が衝突した場合に、
困った事になるんだけど。

CPythonではあまりみかけないが、JythonなんかだとJAVAの様に、
org.python.core ってURIをパッケージ名として使ってるところもある。
814デフォルトの名無しさん:2005/07/06(水) 19:56:36
>813

cx_Oracleは?
815デフォルトの名無しさん:2005/07/06(水) 20:45:31
ああああ関数の引数が参照だというのが理解できないいいいい!!!
なんで参照なのに引数の値を変えられないんだよわけわからん!!
816デフォルトの名無しさん:2005/07/06(水) 21:00:50
>>815
その変数はプリミティブな型?
817デフォルトの名無しさん:2005/07/06(水) 21:32:57
>>815
Because of immutability.
818デフォルトの名無しさん:2005/07/06(水) 22:10:17
・ Pythonの引数はCのポインタ渡し func(int *p)
・ しかしポインタの指す先に代入する方法 *p = 123 がPythonにはない
ということで勘弁してくれないか。
819デフォルトの名無しさん:2005/07/06(水) 23:54:41
数値は値渡しで、オブジェクトは参照渡しということで理解しますた。
いいよね?
820デフォルトの名無しさん:2005/07/07(木) 00:01:20
>>819
文字列も変更できないから"値渡し"扱い。
821デフォルトの名無しさん:2005/07/07(木) 00:04:16
つーか、m = Moe() で f(m) に渡しても、中で m = Hoe() にして戻らないのと同じ。
822デフォルトの名無しさん:2005/07/07(木) 00:50:37
>>821
言ってる意味がわかんね。
823デフォルトの名無しさん:2005/07/07(木) 01:30:15
>>822

ふつーわかるぞ
824デフォルトの名無しさん:2005/07/07(木) 02:38:02
>>821 参照渡しって知ってる?
825デフォルトの名無しさん:2005/07/07(木) 03:11:39
"参照渡し"という言葉も微妙なんだよね。
一般的な定義は知らんが。

python では単に参照を値渡ししてるだけだと桃割れ
826デフォルトの名無しさん:2005/07/07(木) 06:33:15
>>819
参照と言ってるのがC++の参照渡しだとすると、オブジェクトの内部状態は変える事が出来ても、
その変数が示していたオブジェクト自体を別のオブジェクトに変える事は出来ない。
ポインタによる参照の事を言ってるのだとしたら、数値も他のオブジェクトもPyObject型へのポインタなので。
Cレベルでの解釈では >>818が正しいと思う。

呼出先のスコープで呼出元のスコープの変数に影響を与えられるかどうかで判断してる様だけど、
これは引数の渡され方は関係なく、オブジェクトがmutableかimmutableかどうかの問題。

呼出元のスコープの変数を変更する等は、出来ないわけではないけど、
普通は(pythonでは)、オブジェクトのメンバにするとか、関数は値を返して呼出元で代入するようなスタイルで関数を設計する。
827デフォルトの名無しさん:2005/07/07(木) 13:53:26
もーいーからlambda使っちゃえよ!な!終了!
828デフォルトの名無しさん:2005/07/07(木) 14:05:08
意味不明
829デフォルトの名無しさん:2005/07/07(木) 16:33:31
os.popen, os.popen2, os.popen3, os.popen4

こういう名前の付け方しちゃいかんと先輩にいわれました・・・
830デフォルトの名無しさん:2005/07/07(木) 17:00:28
お前は先輩から死ねといわれたら死ぬのか?

# いや,俺もその名前の付け方はどうかと思うけどな...
831デフォルトの名無しさん:2005/07/07(木) 17:28:30
先輩から揉めと言われたら揉む

# 女の先輩いないけどな...
832デフォルトの名無しさん:2005/07/07(木) 17:30:44
>>827
本来ならclosure使いたいところなんだけど、
Pythonでは、syntaxの制限の為 f(lambda x:m = x) って書けない。

833デフォルトの名無しさん:2005/07/07(木) 17:32:46
lambdaなんて飾りです
834デフォルトの名無しさん:2005/07/07(木) 17:35:33
つか、基本に戻れYO

x,y,z = f(x,y,z)
835デフォルトの名無しさん:2005/07/07(木) 18:22:48
>>829
そういうわけなので、2.4以降は subprocess.Popen を使おう。

# あと、どうして駄目なのか根拠も聞いておいた方がいいよ。
836デフォルトの名無しさん:2005/07/07(木) 22:28:59
popen2, popen3は戻値の個数だからいいとして、popen4がわかんね。
837デフォルトの名無しさん:2005/07/07(木) 22:59:43
>836
よくわかんないけど、これのことかも
http://www.konami.co.jp/am/popn/image/popn14.gif
838デフォルトの名無しさん:2005/07/07(木) 23:16:34
>>835
あ、そういうモジュールもあるん?まだそこまで進んでないから気がつかなかった
839デフォルトの名無しさん:2005/07/08(金) 00:36:32
t = ["トマト", "メロン", "バナナ"]
print t
ってすると変なんだけど・・・。
print t[0]とかするとちゃんとなるので、壊れたのかと思い
再インストールしたんですが直りませんでした。助けてください
840デフォルトの名無しさん:2005/07/08(金) 00:54:42
ヒント:文字コード
841デフォルトの名無しさん:2005/07/08(金) 00:55:07
そーいうもん
842デフォルトの名無しさん:2005/07/08(金) 02:13:31
何がどう変なのか書かずに、どう助けろと?
「場所はわかりませんが遭難しました。助けて下さい」
と言ってる様なもんだ
843デフォルトの名無しさん:2005/07/08(金) 02:30:35
再インストールでなんとかしようとする奴は何やってもダメダメ
844デフォルトの名無しさん:2005/07/08(金) 02:33:12
>>839

>>> t = ["トマト"]
>>> t
['\xe3\x83\x88\xe3\x83\x9e\xe3\x83\x88']
>>> repr("トマト")
"'\\xe3\\x83\\x88\\xe3\\x83\\x9e\\xe3\\x83\\x88'"
>>>

というわけだ。
845デフォルトの名無しさん:2005/07/08(金) 04:45:21
>>843 再インストールしなくても手も足もでないくせになんで偉そうなのww
846デフォルトの名無しさん:2005/07/08(金) 10:57:41
遭難した時って、自分の居る場所が分からない事の方が多いんじゃないか
847デフォルトの名無しさん:2005/07/08(金) 13:23:20
文字列クラスの representation (__repr__)がasciiの範囲外のコードをエスケープしてる為、
マルチバイト文字等はそういう風に表示される。

>>> 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)
["トマト", "メロン", "バナナ"]
848デフォルトの名無しさん:2005/07/08(金) 21:30:16
仮説:Python 使いになると他のプログラミング言語を使うのが億劫になる。
849デフォルトの名無しさん:2005/07/08(金) 23:32:50
場所がわかれば遭難じゃないしな。
850デフォルトの名無しさん:2005/07/09(土) 00:54:05
「何々山に入って遭難した」とかそういうことじゃないの?
851デフォルトの名無しさん:2005/07/09(土) 01:02:09
ただの言葉遊びだから気にしなさんな
852デフォルトの名無しさん:2005/07/10(日) 00:22:58
オブジェクトの型を調べる方法はありますか?
typeだと組み込みの型はわかるのですが、自分でクラスを定義した
ものは全部'instance'というのになってしまいます。
853デフォルトの名無しさん:2005/07/10(日) 01:00:00
ずばり答えではないけど、isinstance関数では駄目?
854デフォルトの名無しさん:2005/07/10(日) 01:45:06
>>> class OldStyle:
... pass
...
>>> type(OldStyle())
<type 'instance'>

>>> class NewStyle(object):
... pass
...
>>> type(NewStyle())
<class '__main__.NewStyle'>
855デフォルトの名無しさん:2005/07/10(日) 01:49:47
typeでクラス名見たいって事なら、objectを継承してクラスを作ればOKだと思う
856デフォルトの名無しさん:2005/07/10(日) 01:50:46
ってもう答え出てたorz
857デフォルトの名無しさん:2005/07/10(日) 05:18:26
>>853-856
ありがとうございます。できました。なるほどです
858デフォルトの名無しさん:2005/07/10(日) 12:35:54
!! Pythonでは暗黙の共通の祖先て無いのか!! うわー、驚きを通り越して衝撃。
859デフォルトの名無しさん:2005/07/10(日) 13:52:05
共通の祖先ってPyObjectとかではなくて?違うのかな?
共通の処理でクラス名を取り出すとかなら...

>>> class OldStyle: pass
...
>>> class NewStyle: pass
...
>>> OldStyle().__class__.__name__
'OldStyle'
>>> NewStyle().__class__.__name__
'NewStyle'
860デフォルトの名無しさん:2005/07/10(日) 14:12:13
いわゆる「基底クラス」(内部的なものじゃなくて明示的に扱えるもの。ここで言うところのobject)ってふつーは唯一なもの(全てはそれを継承している)と思い込んでいたので……。
(C++みたいな言語もありますが)
……ところで、objectクラス(?)の説明って、これだけ?
http://www.python.jp/doc/release/lib/built-in-funcs.html#l2h-49
861デフォルトの名無しさん:2005/07/10(日) 15:04:43
object クラスは後から Python に採り入れられたものだからね。
最初は全クラス共通の基底クラスというものは中田。
862デフォルトの名無しさん:2005/07/10(日) 16:51:51
>>860
確かに、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'>]
863デフォルトの名無しさん:2005/07/10(日) 16:52:13
図にすると、おそらくこんな感じ
type
 +-- 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)
864デフォルトの名無しさん:2005/07/10(日) 18:27:34
学習用言語だからか知らんが、Pythonは色々と勉強になるなw
865デフォルトの名無しさん:2005/07/10(日) 18:56:07
md5についてなんですが、
hash = md5.new()
target = file(name, 'r')
hash.update(target.read())
target.close()
print hash.hexdigest()

こんな感じでバイナリファイルのMD5ハッシュを出力しようと思ったのですが、
Windows上では間違った値になってしまいます(Mac OSX上では正しく動いた)。
どの辺がいけないのか、教えてください。。
866デフォルトの名無しさん:2005/07/10(日) 18:58:14
> target = file(name, 'r')
'r'だとテキストファイルとみなされて改行コード変換が入るので、'rb'で。
867デフォルトの名無しさん:2005/07/10(日) 19:07:31
>866
ありがとうございました。
'rb'にしたら正しい値を吐くようになりましたサンクス
868デフォルトの名無しさん:2005/07/14(木) 22:25:38
QT4のWindows版がGPLになったので、pyQTもいずれWindows版が
公に配布されると思うのですが、このGPL版のQTを利用した場合、
pythonのスクリプトもGPLに従わないといけないのでしょうか。
そうしたくないのですが、プログラムとして一体として動作するのなら
GPLにしないといけないのではないかと思っています。
869デフォルトの名無しさん:2005/07/15(金) 07:27:04
>>868
判断が分れる所なのでは?
Emacs Lispで作成されたアプリなんかにはBSDLとかあるので問題ないのかも

ただしGPLと互換性のあるライセンスでないとだめだなのは確か
ttp://www.gnu.org/licenses/license-list.ja.html




870デフォルトの名無しさん:2005/07/15(金) 20:29:17
チョー初心者質問です。よろしくお願いします。
簡単にいいますと。


m=10
word="I am"
word+=m
word+="years old."

でwriteでwordの中身をファイルに書きたいのですが3行目で違う型同士は連結できないと言われます。
ということはmをstr型にキャストする必要があると思うのですがどうやってキャストするのかが
分かりません・。キャストの仕方を教えてください。よろしくお願いします。
871デフォルトの名無しさん:2005/07/15(金) 20:35:49
word += str(m)

ただしそういうとき、普通はフォーマット演算子を使う。
>>> "I am %d yeard old" % (m)
'I am 10 yeard old'

引数が一つなら()は省略できる。
"I am %d yeard old" % m
872デフォルトの名無しさん:2005/07/15(金) 21:04:53
丁寧に説明有難うございます。無事キャストでき、自分の求めた物をえられました。
873デフォルトの名無しさん:2005/07/17(日) 19:52:49
Perlは不可解だしRubyもPerlっぽいんで
Python使ってます
874デフォルトの名無しさん:2005/07/17(日) 19:55:14
Rubyが人気あるってことは
俺が思ってるほどPerlっぽく無いのかも
875デフォルトの名無しさん:2005/07/17(日) 20:22:30
RubyはPerlっぽくも使える
意味不明なRubyのコードはPerlっぽい
シンタックスシュガーを使いまくっている
だけ,という場合が多いな
876デフォルトの名無しさん:2005/07/17(日) 20:46:20
マム版じゃRubyに迂闊なこと言えねーから使いたくねーんだよな
877デフォルトの名無しさん:2005/07/17(日) 21:44:12
プログラコ板を作りたくなった
878デフォルトの名無しさん:2005/07/17(日) 21:52:48
('A`)
879デフォルトの名無しさん:2005/07/19(火) 17:09:09
スクリプトからエラー内容をファイルに出力するにはどうしたらいいのでしょうか?
オライリ−のPythonクイックリファレンスには、
「sys.stderrをファイル形式のオブジェクトに再結合すれば・・・」
とありますが具体的にはどうするのでしょうか。
ErrFile = file("Err.txt", "w")
sys.stderr = ErrFile
これではダメみたいですし。
880デフォルトの名無しさん:2005/07/19(火) 17:21:45
うちではそれでできてるけどねぇ
881879:2005/07/19(火) 17:50:39
すいません。普通のpythonスクリプトでは出来ましたが、
実は、Mac OS X で、Pythonw2.4でwxPython2.6を使ってて、
エラー表示ウィンドウらしきものが一瞬現れて消えてしまうので困ってます。

試したところ、単純な「変数名が定義されてない」みたいなエラーは書き出せたのですが、
ウィジェットオブジェクトの実行時エラーみたいなのは出力されないようです。
882デフォルトの名無しさん:2005/07/19(火) 17:56:41
>>868
スクリプトそのもののライセンスは別になんでもよい。
ただしセットにして配ったり単独実行できる形式にしたりする場合は
GPLに支配されることになる。

883デフォルトの名無しさん:2005/07/19(火) 18:20:52
>>881

class Application(wxApp):
  def OnInit(self):
    #適当に

if __name__ == '__main__':
  app = Application(redirect=False)
  app.MainLoop()

たしかwxAppのコンストラクタにredirect=Falseを渡せばエラーは普通にコンソールに出力されたような気がする
うちの環境はWindowsだしwxPythonはちょっと前に少しさわっただけなので間違ってたらスマソ。
884デフォルトの名無しさん:2005/07/19(火) 19:13:57
手元に環境がないので確認できないけど、
redirect=Trueにすると filenameに直接出力出来たはず。
885デフォルトの名無しさん:2005/07/19(火) 21:27:54
wx.App.RedirectStdio(filename)なんてのもあるでよ

ttp://www.wxpython.org/docs/api/wx.App-class.html

886879:2005/07/19(火) 22:51:32
できました。>>883, 885さんたちの情報を参考に、

app = Application(redirect=True, filename=ErrorFilePath)
try:
  app.MainLoop()
except:
  app.RedirectStdio(ErrorFilePath)

として書き出されました。ファイルパスは2カ所とも設定しないとダメみたいです。
887879:2005/07/19(火) 22:52:15
ありがとうございました。お礼書いてませんでした。
888デフォルトの名無しさん:2005/07/20(水) 00:39:10
ちゃんとサマリとしてまとめてくれてるし,
別段改めてお礼を言う必要もないんじゃないかな.
と思った.

あんたいいひとだねー.
889デフォルトの名無しさん:2005/07/20(水) 09:52:14
ヘビ使いはみんないい人さ
890デフォルトの名無しさん:2005/07/20(水) 14:41:30
カモン、スネイク!
891デフォルトの名無しさん:2005/07/20(水) 20:40:09
レッドスネイクカモン
892デフォルトの名無しさん:2005/07/21(木) 13:08:04
>>891
>レッドスネイクカモン

Ruby + Pyhton ?
893デフォルトの名無しさん:2005/07/21(木) 18:57:48
ピーヒョロロロピ
894デフォルトの名無しさん:2005/07/21(木) 21:58:58
糞スレ
895デフォルトの名無しさん:2005/07/22(金) 04:09:15
すまん馬鹿を助けてくれ;;

クラス作って内部変数に配列型を使うとCでいうとStatic変数になってしまう・・
どうしたらいいんだorz
調べても分からん;;
896デフォルトの名無しさん:2005/07/22(金) 04:37:44
IDE付属のCHEMファイルでやっとわかった・・ここに書くのかよorz
漏れみたいな馬鹿には向いてないな。
パールのほうがいいやw
897デフォルトの名無しさん:2005/07/22(金) 05:09:20
クラス内に書いた名前はクラスに属すので、単純にオブジェクトをつくるとクラスオブジェクトになる。
インスタンスに対してメソッドを呼ぶと、メソッドの第一引数にインスタンス自身が渡されるので(仕様)、
そいつに対してオブジェクトを結びつけるとインスタンスオブジェクトとして利用することができる。
Pythonのシンプルなオブジェクトと名前空間の構造にきづけば、理解は進むと思う。

というか、Perl(<=5)のクラス構造の方が絶対アクロバティックで難解。
898デフォルトの名無しさん:2005/07/22(金) 21:28:21
クラスメソッドってどこに書けばいいの?
899デフォルトの名無しさん:2005/07/22(金) 21:51:03
書き方悪かったかな
クラスメソッドとインスタントメソッドってどう区別して書けばいいの?
900デフォルトの名無しさん:2005/07/22(金) 22:20:29
組み込み関数のclassmethod()もしくはstaticmethod()を利用する。
どっちかだけのサポートにしとけば言語仕様で吸収できて
こんなけったいな事にはならなかったのに。
901デフォルトの名無しさん:2005/07/22(金) 22:26:27
命名規則で分ける
902デフォルトの名無しさん:2005/07/23(土) 02:10:33
名前解決用の辞書そのものってどこにあるの?
ハッシュでコリジョンエラー返してくれるの?
903デフォルトの名無しさん:2005/07/23(土) 10:49:02
dir()とかXXXX.__dict__
904デフォルトの名無しさん:2005/07/24(日) 02:50:50
そうそうdir()でクラスのメソッドとか取れるじゃん?
あれってpythonの思想だとモジュールとかクラスとかも
名前空間の階層って思想なのかな?
普通のファイルシステムと同じように扱おうってかんじだよな。
クラスのメソッドのリストをdir()で取ってくるってなんか妙なかんじするよね。
905デフォルトの名無しさん:2005/07/24(日) 07:38:23
名前空間、名前、オブジェクト
Pythonはこの3つの組み合わせで構成されている・・・らしい
906デフォルトの名無しさん:2005/07/24(日) 12:47:15
よくわかんないな
今使われてる普通の言語は
そのみっつの仕組み持ってるでしょ?
907デフォルトの名無しさん:2005/07/25(月) 14:00:57
そんなことより18歳以上の男子は↓コレやっとけ。
1回目で正解したら驚異の集中力だといえよう。
www.concentrationtest.com/ver2.html

18歳未満の男の子と婦女子はやらなくてよろしい。
908デフォルトの名無しさん:2005/07/25(月) 21:17:29
5回目でした。39おやじ。
909デフォルトの名無しさん:2005/07/25(月) 23:20:37
ネットワークから切り離されたWindowsXPマシンで、Pythonを
インストールせずCD-Rから起動して使いたい漏れがやって
きましたよ。誰か簡単な方法を知っていたら教えて下さい。

ちなみにインストール済みのマシンから、インストール
されてるフォルダごとごっそりCD-Rにコピーし、そこで
python.exeを実行してみたところ「Python24.dllがネーヨバーカ」
と言われてしまいました。
910デフォルトの名無しさん:2005/07/25(月) 23:29:03
py2exe
イミワカンネ
911909:2005/07/25(月) 23:46:53
日本語不自由でスマン脳。
Pythonのインタプリタ自体を起動して使いたいのですじゃ。
912デフォルトの名無しさん:2005/07/25(月) 23:52:37
とりあえず,Python24.dllをpython.exeと
おんなじとこにコピってみれよ

system32以下あたりにあるでそ
913デフォルトの名無しさん:2005/07/26(火) 00:01:05
>>909
C:\WINDOWS\system32からpython24.dllを持ってきてpython.exeと同じとこに置く
914909:2005/07/26(火) 00:05:24
サンキュー。
とりあえずやってみます。でも今度はまた別のDLLを
要求されたりして。
(インストール済みのマシンだと、system32の方を
探しに逝っちゃうから試せないしね…。USBメモリは
使っちゃいけない環境なので、何度もCD-Rに焼くのが
メンドクテ質問してしまいました)
915デフォルトの名無しさん:2005/07/26(火) 00:12:34
ああ必要なのがあったら大抵プリフィックスにpyが付いてるから
どっちにしろ足りなきゃ警告食らうよきっと
916デフォルトの名無しさん:2005/07/26(火) 00:24:49
cmd.exeでset path=でパスをクリアしてからpython.exeを実行すれば試せるんじゃない。
917デフォルトの名無しさん:2005/07/26(火) 00:27:39
>914
DLL依存追っかけるなら「Dependency Viewer」ってツールがベクタに落ちてる
Visual Studio持ってるならDependency Walkerがあるからいらんだろけど
918sage:2005/07/26(火) 19:54:45
python -m modulefinder yourmodule.py
919デフォルトの名無しさん:2005/07/29(金) 19:40:52
すまん。
lambda式の中でif文使うにはどうしたらいんだ?
920デフォルトの名無しさん:2005/07/29(金) 19:49:43
無理。式の中に文は入れられない。
921デフォルトの名無しさん:2005/07/29(金) 19:59:39
サンキュ
pythonのlambdaってしょぼいことにしか使えないのね。orz
922デフォルトの名無しさん:2005/07/29(金) 22:21:17
and/orじゃなくてif使うってことは複文でしょ。
普通に関数定義すりゃいいじゃん。なぜわざわざlambdaを使おうとする?
923デフォルトの名無しさん:2005/07/29(金) 23:50:34
つ「クロージャ」
924デフォルトの名無しさん:2005/07/30(土) 00:21:05
普通にlambda使えばいいのにわざわざ関数定義なんかさせるのがPythonクオリティ。
925デフォルトの名無しさん:2005/07/30(土) 00:44:02
$ python2.4 -c "import site; print site.sitedir"
Traceback (most recent call last):
File "<string>", line 1, in ?
AttributeError: 'module' object has no attribute 'sitedir'

2.4になって変わったの?
情報がみつからない
926デフォルトの名無しさん: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'
927デフォルトの名無しさん:2005/07/30(土) 01:12:56
help(site)
dir(site)
928デフォルトの名無しさん:2005/07/30(土) 01:17:25
>922
そこにlambdaがあるからさ。
















つうかLispのlambdaから取ってきたんだろうと思ったのと、
filterやmap関数と合わせて使ってSmalltalkっぽく書けるなと思ったのと、
変数とか関数名で渡すと処理なんだかデータなんだかわかりづらいっつうのと
and/orで書くのはわかりづらいのと、if文使っても短い処理なのに、関数定義に良さそうな場所がソースの遠くにしかなかった
と思ったんでlambda使おうとした。

まぁpython初心者で流儀がわからんのでゆるしてくれや。
929デフォルトの名無しさん:2005/07/30(土) 01:40:26
PythonCard(On WindowsXP)を最近始めたのですが、
on_Button_mouseClickで処理をするときに時間がかかると
「反応無し」になってしまいます。
これを防ぐ方法はありますか?

「反応無し」になっても処理自体は行なわれていて、
処理が終れば正常になるので問題無いといえば問題無いのですが。
930デフォルトの名無しさん:2005/07/30(土) 05:47:15
>>929
Pythonに関係なく、時間のかかる処理はイベントハンドラでは行わずに
別スレッドを起こすか通知するだけに留める。
931デフォルトの名無しさん:2005/07/30(土) 10:49:34

>>929
簡単な方法だと、適当なタイミングで(頻繁に,例えばループの内側などで)
wx.Yield()を呼び出す事でも反応なし状態は回避できる。
932デフォルトの名無しさん:2005/07/30(土) 15:50:18
>>930-931
ありがとうございました。
スレッドは使ったことがなく良くわからなかったので、
今回はwx.Yield()を呼ぶことで解決しました。
サンクス
933デフォルトの名無しさん:2005/07/30(土) 16:04:49
それを解決と呼ぶには抵抗を感じる
934デフォルトの名無しさん:2005/07/30(土) 22:00:21
alexaの2chのページみたいに、そのサイトのトップページを画像として取得したいです。
ttp://www.alexa.com/data/details/?url=2ch.net
PILには、postscriptをレンダリングする機能はあるのですが、htmlのレンダリングの機能はないみたいです。
htmlを解釈して、画像化してくれるライブラリってありますか?
935デフォルトの名無しさん:2005/07/30(土) 22:09:28
ttp://wxwidgets.org/manuals/2.6.1/wx_wxhtml.html#printing
でPostScriptDCに書き出すのはどうかな.
936デフォルトの名無しさん:2005/08/01(月) 22:16:11
自分と同じ方のインスタンスを生成したいときはどうすればいい?

class Hoge:

    def __init__(self, value): self.value = value

    def plusone(self): return Hoge(self.value + 1)

これだと継承したとき、子クラスのインスタンス生成してくれないですよね?
937936:2005/08/01(月) 22:20:04
あ、ひょっとして、
self(self.value + 1)
でいいの?
938デフォルトの名無しさん:2005/08/01(月) 22:45:49
class Hoge(object):
  def __init__(self, value):
    self.value = value
  def plusone(self):
    return type(self)(self.value + 1)

わかんないけどこうとか?
939デフォルトの名無しさん:2005/08/02(火) 02:32:04
self.__class__ じゃないかなぁ,
あと新しいオブジェクトを作って返すのなら,reversed や sorted みたいに
関数名を increment'ed' にするといいと思うよ.
940デフォルトの名無しさん:2005/08/02(火) 07:03:51
Singletonにしたいのか、Prototypeなのか判らないけど。
複製作るだけなら return copy.deepcopy(self) でいいんじゃない?
941デフォルトの名無しさん:2005/08/04(木) 19:31:36
ぬっへっほー
942デフォルトの名無しさん:2005/08/11(木) 12:05:42
メモ帳を起動するプログラムを作りたいのですがどうすれば良いでしょうか?
943デフォルトの名無しさん:2005/08/11(木) 13:08:36
944デフォルトの名無しさん:2005/08/11(木) 22:12:57
email.Header を使ってメールの From ヘッダを作ろうと、

Header(formataddr(("はげ", "[email protected]"), 'utf-8'))

とかやると [email protected] までデコードされちゃうんだけど(´・ω・`)
別々にエンコード指定しながら append するしかないのかね。
なんかうまいやり方あるっすか?
945944:2005/08/11(木) 22:16:56
× [email protected] までデコードされちゃうんだけど(´・ω・`)
[email protected] までエンコードドされちゃうんだけど(;´Д`)
946デフォルトの名無しさん:2005/08/12(金) 15:51:57
ageていい?
947デフォルトの名無しさん:2005/08/16(火) 18:52:28
email.Utils.formataddr((email.Header.Header(u"はげ", "utf-8").encode(), "[email protected]"))
948デフォルトの名無しさん:2005/08/18(木) 21:45:18
>>947
サンクス。そうすりゃいいのか。俺(´・ω・)サエナサス
949デフォルトの名無しさん:2005/08/18(木) 22:18:26


phpのbin2hexに該当する関数ってないのでしょうか?
日本語をencode()するとエラーになってしまいます。
http://jp.php.net/bin2hex

日本語の文章を形態素解析で分かち書きしたものをMySQLにいれて
のFULLTEXTインデックスを用いて検索させたいのですが...
950デフォルトの名無しさん:2005/08/18(木) 22:25:41
951デフォルトの名無しさん:2005/08/18(木) 22:45:57
>>950

おお、ばっちり行けました。
ありがとうございます。
952デフォルトの名無しさん:2005/08/19(金) 13:18:03
http://www.miex.org/python/
こんなん見つけたんだけど、これでpython本何も買わなくてよくね?
953デフォルトの名無しさん:2005/08/19(金) 16:48:48
>>952
.chmファイルは中身が見えんのだが
954952:2005/08/19(金) 17:55:40
>>953
プロパティでロックを解除
955デフォルトの名無しさん:2005/08/20(土) 02:51:03
.chmって、どのアプリのフォーマット?
956デフォルトの名無しさん:2005/08/20(土) 03:25:14
WindowsのHTMLヘルプじゃないの?
ダウンロードしてないのでわからんけど
957デフォルトの名無しさん:2005/08/20(土) 03:26:24
$ aptitude search chm
p 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
958955:2005/08/20(土) 04:16:27
Mac使いなので、見られないのがちょっと残念。
959デフォルトの名無しさん:2005/08/20(土) 07:56:59
>>955
xchm.sourceforge.net は osx でも使えるよ.
960955:2005/08/21(日) 01:17:40
>>959
ありがとうございます。さっそくxchm試してみます。
961デフォルトの名無しさん:2005/08/22(月) 00:29:37
16進数で表された数が文字列としてある時、これを数値にするにはどうすればいいですか?
962デフォルトの名無しさん:2005/08/22(月) 04:04:35
>>> s = "CAFEBABE"
>>> int(s, 16)
3405691582L
963デフォルトの名無しさん:2005/08/22(月) 04:18:44
pythonって何がそんなにいいの?
964デフォルトの名無しさん:2005/08/22(月) 04:53:58
Ruby厨は巣にお帰りください。
965デフォルトの名無しさん:2005/08/22(月) 11:37:03
WebProg板にPythonスレがないのでこちらで。Zopeとは違うし。

Pythonによる軽量ウェブサーバーを使った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
966デフォルトの名無しさん:2005/08/22(月) 11:50:53
Zopeは求めてるものとちょっと違うんだよなぁ。基本的にCMSであって、Webアプリを作るには
向いてないというか、関係ない機能が多すぎる

最近はこんなのがあるみたい。

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
967デフォルトの名無しさん:2005/08/22(月) 12:10:43
>>966
> Zopeは求めてるものとちょっと違うんだよなぁ。基本的にCMSであって、Webアプリを作るには
> 向いてないというか、関係ない機能が多すぎる
ZODBの世界で素直にOOプログラムできるのがいいのに。
ZMS/Undo/CMF/マルチプロトコル接続なんかの点でCMSとしても有用なだけ。
968デフォルトの名無しさん:2005/08/22(月) 12:59:41
>>967
ZODBにデータをストアしてはいけない
データは外部のDBかファイルシステムへ。
969デフォルトの名無しさん:2005/08/22(月) 16:47:42
>>952
Here, you can download most Python e-Books, but only for evaluation purposes and you MUST delete them after 24 hours.
だってさ
970デフォルトの名無しさん:2005/08/22(月) 19:25:53
>>969
で、それはうん時間で溶けるDVDみたいな仕様になってる訳?
971デフォルトの名無しさん:2005/08/22(月) 21:01:50
>>967
そこでStand alone ZODB ですよ。
972デフォルトの名無しさん:2005/08/22(月) 22:55:03
スレの皆さん始めまして。
私はまだPyJUGにあったチュートリアルをざっとやってみたレベルです。

質問なのすがPythonで定数を作るにはどうすればいいのですか?
C++でやると const int hage = 1; みたいな。

あと列挙型とか有るんですか?

低レベルな質問でごめんなさい。
PythonのバージョンはPython 2.3.5です。
973デフォルトの名無しさん:2005/08/22(月) 22:58:25
>>972
> 質問なのすがPythonで定数を作るにはどうすればいいのですか?
クラス設計

> あと列挙型とか有るんですか?
タプル
974デフォルトの名無しさん:2005/08/22(月) 22:58:26
どちらも無いし、必要ないし。
975972:2005/08/22(月) 23:16:28
>>973,>>974ありがとうございました。
今更ですがずっと前の方に無いって書いてありましたね。
ごめんなさい。

>>973
ありがとうございます。言語に実装が無かったらクラスとタプルでどうにかしようは考えていました。
>>974
ごめんなさい、定数を作ろうとしてやり方が分からなくて気になって気になって
仕方がありませんでした。
976デフォルトの名無しさん:2005/08/23(火) 10:04:43
当然の疑問を口にしただけなのに、
いちいち必要ない、なんてレスはいらない
977デフォルトの名無しさん:2005/08/23(火) 11:50:21
974じゃないけど、
「必要ない」っていうのはそれなりに有益な情報だし書いたっていいだろ。
もしかして「『そういう疑問を持つこと』が必要ない」と解釈したのか?
978デフォルトの名無しさん:2005/08/23(火) 13:49:26
この言語あまり聞かないけど、普及しているのでしょうか?
外国ではそれなりとかいう記述は見かけますが。
979デフォルトの名無しさん:2005/08/23(火) 14:17:04
あまり表舞台には出てこないが、国内でも結構使われている様子。
外国ではバリバリに使われていて、露出も多い。
980デフォルトの名無しさん:2005/08/23(火) 14:34:27
>>979
サンクス。
じゃあ、日本でも普及する可能性大ですね。
981デフォルトの名無しさん:2005/08/23(火) 14:59:48
ティンコパッド買ったらリカバリープログラムにpythonが使われてた

昔のティンコパッドは最高だったが、最近買ったのはリカバリーCD付いてないし、
40GBしかないHDDのうち4GBを隠しリカバリーパーティションにしてるし、
そこからリカバリーしてもMBRをリカバリーしてくれないという…。
ぐちスマソ
982デフォルトの名無しさん:2005/08/23(火) 15:00:51
983デフォルトの名無しさん:2005/08/23(火) 15:49:30
984デフォルトの名無しさん:2005/08/23(火) 16:05:28
Books python の検索結果のうち amazon.com からの約 26,200 件中 1 - 10 件目 (0.06 秒)
Books 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 秒)
985デフォルトの名無しさん:2005/08/23(火) 16:08:36
検索厨ウザス
986デフォルトの名無しさん:2005/08/23(火) 16:20:34
987デフォルトの名無しさん:2005/08/24(水) 01:32:18
Fedoraでソースからコンパイルする際に、tk(というかidle)を一緒にコンパイルするには
どうすればいいの?
988デフォルトの名無しさん:2005/08/24(水) 12:12:04
PyQt for Qt4.0のWindows版はまだか!
989デフォルトの名無しさん:2005/08/24(水) 16:15:37
>>987
RTFM
990デフォルトの名無しさん:2005/08/25(木) 02:35:48
cursesってwindowsだと動かないの?
動きそうな痕跡だけあるもんなの?使おうとすると

except ImportError: import curses
File "C:\python2.4\lib\curses\__init__.py", line 15, in ?
from _curses import *
ImportError: No module named _curses

ってでるけど、こいつ何者?curses本人じゃないの?
991デフォルトの名無しさん:2005/08/25(木) 05:30:30
_curses が libcurses をラップする拡張モジュールで,curses.py はそれをキックしてるだけ.
992デフォルトの名無しさん:2005/08/25(木) 07:12:41
>>990
http://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.
993デフォルトの名無しさん:2005/08/25(木) 08:52:15
死滅スレに移住ですか.
994デフォルトの名無しさん:2005/08/25(木) 10:18:38
>991-992
ありがとう!大助かり!
ここらへんあんま使われてなさそうだ情報少なめ
でもウィン用のcursesやったらと数あるね

curses叩くってpyコードだけで済んでんの?
叩かれてる本体はきっとどろどろのCでしょ、モンティパイソンすんごいね
995デフォルトの名無しさん:2005/08/25(木) 17:45:41
>>994
>>991のいう「拡張モジュール」はCで書かれたモジュールのこと。
curses (Python) → _curses (C) → libcurses という呼び出し関係にある。
Tkinterやsocketも同じようなモジュール構成になっている。
996デフォルトの名無しさん:2005/08/25(木) 20:02:32
Mac使いってMacしか使わないの?
997デフォルトの名無しさん:2005/08/25(木) 22:00:57
ここで皮肉るより直接反論スレヴァ?
998デフォルトの名無しさん:2005/08/26(金) 00:44:35
Mac使いだけどWinもLinuxも使うよ。
999デフォルトの名無しさん:2005/08/26(金) 00:45:42
1000デフォルトの名無しさん:2005/08/26(金) 00:46:44
次スレ?

★Pythonって死滅しちゃうの?Part8★
http://pc8.2ch.net/test/read.cgi/tech/1113431728/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。