Pythonのお勉強 Part8

このエントリーをはてなブックマークに追加
20デフォルトの名無しさん
>> 0から教えてスレの258
プログラミング初心者、ってどの程度なのかな?

他の言語の経験はあるかい? JavascriptとかPerlとか、
もし中学生より上なら、学校の授業でLOGOとかBASICとか触ったことない?
21デフォルトの名無しさん:2005/11/29(火) 00:24:03
>>20
失礼な奴だな。
もしかしたら、COBOLのスーパーハカーかもしれないぞ。
22デフォルトの名無しさん:2005/11/29(火) 00:26:20
>>20
誘導ありがとうございます

全くの初心者です
Javaの書籍の上巻(Ifとかforとか配列)をさらっと読んだ程度です
もう学生ではないです 授業ではやったかな?程度であまり覚えてません
23デフォルトの名無しさん:2005/11/29(火) 00:39:52
>>20
確かにちょっと失礼な書き方だったかも。

>>22
他言語での経験が少しあるのなら、他でも触れられているとおり、
「Pythonチュートリアル」が良いとおもいます。モニタで読むには分量が多めなので、
PDF版を印刷することをおすすめします。
http://www.python.jp/doc/release/tut/

チュートリアルの分量が多くて不安だったり、Javaなんかもう忘れちゃったよ!
というときは、「インスタント パイソン」と「インスタント ハッキング」がおすすめ。
http://www.python.jp/Zope/intro/instant_python_jp
http://www.python.jp/Zope/intro/instant_hacking_jp
24デフォルトの名無しさん:2005/11/29(火) 00:45:50
>>23
Javaも中途半端で生かせる知識が無いに等しいので;;
「インスタント〜」から勉強していこうと思います
分かりやすそうです

すごい親切にありがとうございました
25デフォルトの名無しさん:2005/11/29(火) 01:02:01
「How to Think Like a Computer Scientist」の和訳が
あったような気がしたんだけど、見つからない。思い違いだったのかなー。
http://thinkpython.com/
26デフォルトの名無しさん:2005/11/29(火) 07:28:12
>>25
他言語の経験があるなら,
http://diveintopython.org/
2725:2005/11/29(火) 07:33:17
>>26
間違った。
>>23
他言語の経験があるなら,
http://www.diveintopython.org/

2818:2005/11/29(火) 09:04:14
>>19
御指摘の通りに環境変数を指定することで、
希望のブラウザを立ち上げることが出来ました。
ありがとうございました。

# デフォルトの mozilla はどこで設定されてたのだろう?
29デフォルトの名無しさん:2005/11/29(火) 09:32:23
>24
新しくはないけど初心者にはとても良いと思った
「Pythonで学ぶプログラム作法」
www.amazon.co.jp/exec/obidos/ASIN/4894714019
(初心者じゃなくて読んでもためになったし)
3025:2005/11/29(火) 16:24:01
>>25
> 「How to Think Like a Computer Scientist」の和訳が
> あったような気がしたんだけど、見つからない。思い違いだったのかなー。
> http://thinkpython.com/
やはり思い違いだった。訳文があったのは 「科学者のための Python 入門」。
発掘してきたので一応ここに書いておくよ。

「科学者のための Python 入門」
http://web.archive.org/web/20020308213045/http://www.tc.bham.ac.uk/~koji/py4sci/index.html

原文: 「An introduction to Python for scientists」
http://starship.python.net/crew/hinsen/
31デフォルトの名無しさん:2005/11/29(火) 19:01:15
質問というほどじゃないのですが、
スクリプトで、range(4) と [0,1,2,3] だったらどっちを書きますか?
3以下だったら [0,1,2]と直接リストを書いた方が効率よさそうだし、
これ以上なら効率よりも range(5) と短く書けるほうが楽に思います。
32デフォルトの名無しさん:2005/11/29(火) 20:26:22
だれか>>27を日本語化して
33デフォルトの名無しさん:2005/11/29(火) 20:35:41
>>31
俺だったら常に range 使う。
効率気にするなら、profile や timeit なんかで計測して
本当にやる意味があるのか考慮する必要もあると思う。
34デフォルトの名無しさん:2005/11/29(火) 20:56:18
[0, 1, 2, 3] を使う理由が明らかに「0~3の範囲」を表すためなら range.
あるリストから順に値を取り出す処理で,たまたま値が 0, 1, 2, 3 なだけなら [0, 1, 2, 3] (というより (0, 1, 2, 3) ) かな.
ロジック以外の理由でコードの書き方を変えるなんて,手間も気配りもデバッグも面倒くさそう.本当に効率上がると思う?

「何千行,何万行とコードを書くようになったら大変だ」と思ってるのかもしれないけど,実際その規模のコードをメンテナンスするようになったら,逆にタイプ数の差なんてどうでもよくなると思うよ.
35デフォルトの名無しさん:2005/11/30(水) 00:20:03
まぁ、range()はなるたけ使わないように心がけるべきだと思うよ。
もちろん、[0, 1, 2, 3]もだけど。
36デフォルトの名無しさん:2005/11/30(水) 00:25:53
>>35
では,あなたは range を使わないでどうやって範囲を表すのですか?
37デフォルトの名無しさん:2005/11/30(水) 00:32:31
>>35,36
xrange(4)とか(0,1,2,3)を使えって意味なんだろうか.
38デフォルトの名無しさん:2005/11/30(水) 00:34:00
>>36
だから、なるたけって。

そもそも、範囲を表すってなんの範囲?リスト?
リストだったら、
for obj in objs[3:10]:
みたいにすればいいわけだし。

当然、純粋に数字列が必要な時は絶対必要だけどね。
39デフォルトの名無しさん:2005/11/30(水) 00:56:10
for i in range(10): hoge(objs[i]) みたいなコードを Python で書く人がいるなんて考えてすらいなかった
40デフォルトの名無しさん:2005/11/30(水) 01:03:55
python使い始めたころは、
for i in range(len(objs)): hoge(objs[i])
とか、格好悪いことやってたな。そういえば
41デフォルトの名無しさん:2005/11/30(水) 04:35:04
「あの女と私のどっちがいいのよ!」という質問に「俺はなるべくどっちともつき合わない」と答える。

それが>>35クオリティ。
42デフォルトの名無しさん:2005/11/30(水) 08:21:56
>40
でも前はその書き方で正しかったんじゃないの?
for i in objs: って書けても
今度はindex counter が欲しいと思ったりすることもあるし。
43デフォルトの名無しさん:2005/11/30(水) 08:42:01
>>40 >>42
正しいも何も、チームメンバーのスキルがばらばらの場合、
リストの要素を1つずつ処理するということを記述する際には、
その書き方がいい場合もあると思うが?
特にC/Java/Basic系の経験者が多い場合。
そりゃ、もっと効率というかPython的書き方もあるだろうけど、
ベタなコーディングしたほうがいい場合もある。
44デフォルトの名無しさん:2005/11/30(水) 08:45:51
>>41 どっちも大事
45デフォルトの名無しさん:2005/11/30(水) 09:20:51
>>42
インデックスカウンタが欲しいなら今は
for i, obj in enumerate(objs):
46デフォルトの名無しさん:2005/11/30(水) 10:21:34
メンバ変数だけでいいんだけど、変数の宣言の強制ってできますか?
(VBでいうとこのOptionExplicitみたいな感じ)

ローカル変数ならともかく、
クラスのメンバ変数があちこちで(クラス内部、外部含めて)作られてしまうと
さすがにソースを追いにくいです。
(selfをgrepかけて対応しているけどデバッグがキツイ。綴り、大文字小文字間違いとか)

#でも、Python脳だと、この仕様が利点なのかな?
47デフォルトの名無しさん:2005/11/30(水) 11:35:29
use strict;
48デフォルトの名無しさん:2005/11/30(水) 13:00:01
>>46
使ったことないけど、PyChecker はどうだろう。
http://pychecker.sourceforge.net/

でも、ところかまわず新しい変数が出現するのは文法エラーではないから
使えないような気もするなー
49デフォルトの名無しさん:2005/11/30(水) 14:13:03
>>46
__slots__の事?

class C(object):
__slots__ = ["test"]

def __init__(self):
self.test = 1

>>> c = C()
>>> c.test = 2
>>> print c.test
2
>>> c.typo = 3
Traceback (most recent call last):
File "test.py", line 37, in ?
c.typo = 3
AttributeError: 'C' object has no attribute 'typo'
50デフォルトの名無しさん:2005/11/30(水) 14:23:05
みなさんIDEつかってますか?
Eclipseにはいくつかプラグインがあるようですね
51デフォルトの名無しさん:2005/11/30(水) 14:38:10
>>50
IDLE
52デフォルトの名無しさん:2005/11/30(水) 14:40:34
私はpydev使ってます
http://pydev.sourceforge.jp/

便利なんだけど、補完が遅いことがあるのが玉に瑕
(PCのスペックが低いわけではないはず)

探せばもっと便利なプラグインもありそう
他のIDE使ってる方のお話も聞きたいです
53デフォルトの名無しさん:2005/11/30(水) 14:41:37
すいませんURLはこっちが正しいです
http://pydev.sourceforge.net/
54デフォルトの名無しさん:2005/11/30(水) 14:46:45
IDLE一筋
55デフォルトの名無しさん:2005/11/30(水) 14:59:13
Eric使ってマ
56デフォルトの名無しさん:2005/11/30(水) 15:15:05
IDLEは良くできてるよなぁ。
57デフォルトの名無しさん:2005/11/30(水) 15:45:13
osx の idle は日本語使えない。
58デフォルトの名無しさん:2005/11/30(水) 16:06:13
WindowsでPythonスクリプトをIDLEで開くと、スクリプトごとにシェルウィンドウが開いてうざいです
59デフォルトの名無しさん:2005/11/30(水) 16:58:16
>>58
拡張子を.pywにするとシェルウィンドウを開かなくできる。
で、すでにidle.pywもあるはずだし、それを起動するidle.batも
あるはず。
6059:2005/11/30(水) 17:00:24
あ、間違った...orz
>>59は無視してください。
61デフォルトの名無しさん:2005/11/30(水) 17:08:31
>>57
> osx の idle は日本語使えない。
えー。Tk自体はかなり前からUnicode(UTF-8)対応じゃなかったっけ?
フォントの設定がおかしいだけじゃないの?
62デフォルトの名無しさん:2005/11/30(水) 17:42:00
Windowsでのことなんですけど、2.4系と2.3系で共存できますか?
普段は2.4系をポツポツ使ってるんですけど、2.3オンリーのよさげなモジュールがあったんで・・・。
63デフォルトの名無しさん:2005/11/30(水) 18:17:48
2.4に移植する以外にない
だよな?みんな
64デフォルトの名無しさん:2005/11/30(水) 19:10:47
PYTHONPATHをうまくスイッチしてやれば共存できるんじゃないか?
65デフォルトの名無しさん:2005/12/01(木) 04:03:56
>>61

かな漢字変換が入らないんだよ。
66デフォルトの名無しさん:2005/12/01(木) 10:44:42
>>50
いい振りをありがとう

Ericの存在を知る機会と、IDLEの良さを見直すきっかけになったよ
67デフォルトの名無しさん:2005/12/01(木) 13:45:34
今Tips、小技集のPerl CookbookのPython版 ってやつやってんですけど
http://pleac.sourceforge.net/pleac_python/index.html

これのStringsのAccessing Substringsのとこで下みたいなやつがあるんですが
http://pleac.sourceforge.net/pleac_python/strings.html
これって「こんなことはやるな」って例なんでしょうか?
だとしたらなんでやっちゃいけないかわかんないんですがすいません教えてください

# DON'T DO THIS: In-place modification could be done using character arrays
import array
mystr = array.array("c", "This is what you have")
mystr[5:7] = array.array("c", "wasn't")
# mystr is now array('c', "This wasn't what you have")
68デフォルトの名無しさん:2005/12/01(木) 14:19:33
unPythonicだから。
>Examples which translate the original Perl closely but which are unPythonic are prefixed with a comment stating "DON'T DO THIS". In some cases, it may be useful to know the techniques in these, though it's a bad solution for the specific problem.
69デフォルトの名無しさん:2005/12/01(木) 20:18:36
>>68
ありがとうございました
お手数おかけしました
70デフォルトの名無しさん:2005/12/01(木) 23:48:47
Ericってマスコットが気持ち悪い奴だっけ。何で顔からちんちん生えてんねん。
71デフォルトの名無しさん:2005/12/01(木) 23:52:15
ericって名前の由来は、モンティ・パイソン の エリック・アイドル からきてるのかな。
72デフォルトの名無しさん:2005/12/02(金) 00:23:00
>>65
そりゃ、Linuxも同じだな。

そろそろ、PyGTKも標準で含めてくれないかなぁ。
で、IDLEをPyGTKに移植して欲しい。
73デフォルトの名無しさん:2005/12/02(金) 01:03:29
>>72
Debian Sarge の idle-python23 (idle 1.0.5) で試してみましたが、
日本語入力もprintも問題ないですよ。
74デフォルトの名無しさん:2005/12/02(金) 01:35:37
>>49
亀でスマソ(ちと、悪名高い携帯PJに飛ばされてしまって。しょっぱなから徹夜。。。orz)

それです、それ。
それがほしかった。

ありがとうございました。
7572:2005/12/02(金) 21:01:25
>>73
お?Debianはできるのか。
こっちは、FC4+SCIM-Anthyだけどダメだ。SCIM-Anthyにする前も
確かダメだった気が。
うーん、よくわからん。
76デフォルトの名無しさん:2005/12/02(金) 21:31:12
mod_pythonってメモリへのキャッシュ機能はついてますか?
77デフォルトの名無しさん:2005/12/03(土) 16:43:56
PythonならApacheよりZopeとかじゃないの?
78デフォルトの名無しさん:2005/12/03(土) 17:21:36
mod_python侮れないぞ。
79デフォルトの名無しさん:2005/12/05(月) 08:16:26
>>75
FC4+uim-SKK、Python 2.4.1 IDLE 1.1.1だけども、
ファイルの編集と表示、実行は問題ないように見える。
# ただ、他のエディタでencodingを書いておいて
# 保存したのを開いた場合。他の場合はわからない。
## あと、sys.defaultencoding='utf-8'になってる。
IDLE上のPythonプロンプトはダメくさい。
# もしかしたらそういうものなのかもしれないけれども。
以下、IDLEでの結果。
>>> import sys ; print sys.getdefaultencoding()
utf-8
>>> s = "テスト" ; u = u"テスト"
>>> s
'\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88'
>>> u
u'\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88'
>>> t = unicode('テスト','utf-8')
>>> t
u'\u30c6\u30b9\u30c8'
>>> print t
テスト
80デフォルトの名無しさん:2005/12/05(月) 18:23:02
>>79
> IDLE上のPythonプロンプトはダメくさい。
> # もしかしたらそういうものなのかもしれないけれども。
それが正しい動作なんだろ。

print文以外で "テスト" とか表示できたのは、
PyJUGが出してた 「Python 2.3.4 日本語環境用インストーラ(Win32)」
くらいしかなかったはず。

print文以外でも "テスト" と表示させるようにしたいのであれば、
「0から〜」スレ#186 を参考にするといいかも。
http://pc8.2ch.net/test/read.cgi/tech/1126073956/186
81デフォルトの名無しさん:2005/12/08(木) 23:38:20
|∀・)・・・・・
82デフォルトの名無しさん:2005/12/09(金) 13:09:50
冬眠か。
8379:2005/12/09(金) 16:06:14
>>80
いや、
print文以外で"テスト"とか表示させるのは期待していないんだけども。
どっちかというと、
s = "テスト";u = u"テスト" ; t = unicode('テスト',sys.getdefaultencoding())
の結果がu == tではないのがIDLEの正しい動作なのかな、と。
84デフォルトの名無しさん:2005/12/09(金) 17:00:07
>>83
>>79と同じ環境で、site.pyを書き換えてsys.getdefaultencoding()が
utf-8を返すようにしたら、u == tはTrueになったけど。
ちなみに、s == tでもある。
85デフォルトの名無しさん:2005/12/09(金) 17:32:24
ムチャクチャだな。
86デフォルトの名無しさん:2005/12/09(金) 20:18:12
s == t の場合、暗黙で unicode(s) == t になるであってる?
87デフォルトの名無しさん:2005/12/09(金) 20:31:50
"テスト" == unicode("テスト", sys.getdefaultencoding()) はあり得ないと思われ。

確認だけど、IDLEのシェル(対話モード)のリテラルの話をしているんだよね?
だったら多分>>83の言う通り「u != tがIDLEの正しい動作」でFA。
8879=83:2005/12/09(金) 20:50:39
>>84
# site.py内のsys.defaultencodingは'utf-8'にしてある状況で
端末上だと確かにこちらでもそうなりました(s == u == t)。
IDLEの対話モードだとs != u、u != t、s == tになってます。
>>87
はい。IDLEの対話モードの話です。
どうもありがとうございます。
89デフォルトの名無しさん:2005/12/09(金) 20:55:52
パッチあったよ
[ 1061803 ] Source code encoding in IDLE console
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1061803&group_id=5470
90デフォルトの名無しさん:2005/12/09(金) 23:11:59
>89
GJ!
9184:2005/12/10(土) 15:01:00
>>87
えーと、すみません。
IDLEで実行はしたけどシェルモードではなかった...orz

それに、coding: utf-8も指定してた。
92デフォルトの名無しさん:2005/12/10(土) 15:05:00
IDLEのヘルプとか日本語の情報とかありますか?
93デフォルトの名無しさん:2005/12/10(土) 15:57:05
>>92
調べてみた。残念ながら日本語のはないなー。
IDLE内臓のデバッガの説明なんかは、英語のマニュアルを読むほかない。

基本的な使い方を知るだけでよいなら、「Pygame実況中継 第一回」のムービーを見ると
良いよ。(日本語)


英語でもよければ、こんなのもあるよ。

One Day of IDLE Toying: (簡単なガイド)
http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/

Using IDLE: (詳細なマニュアル)
http://www.python.org/idle/doc/idlemain.html
94デフォルトの名無しさん:2005/12/10(土) 16:53:13
新しい IDLE では、インテリセンスみたいな補完機能がつくらしい。
# まあ Scintila や PyAlaMode ではすでにやってることなんだけど

ちょっとやってみた図。
http://www.uploda.org/file/uporg257566.png
95デフォルトの名無しさん:2005/12/10(土) 17:11:21
前からなかったっけ?
96デフォルトの名無しさん:2005/12/10(土) 17:28:42
癖のあるエディタに慣れちゃったおかげで他のもの使えねえ・・・
9794:2005/12/10(土) 17:44:20
>>95
> 前からなかったっけ?
まじすか。sys の後に ドット. を打っただけでぴろっとリストが出てきたことに感激して
たんだけど。現行のIDLEでも何かキーを打てばできたのかな。
98デフォルトの名無しさん:2005/12/10(土) 17:46:22
pythonwinって人気ないの?
その、ぴろっとリストが出てくるのもできるよ
99デフォルトの名無しさん:2005/12/10(土) 18:36:09
pythonwinは、"open(" とか打った時に、関数の引数リストとか簡単な説明が
出てこないから使わなくなった。

IDLE だとこんなのがでる
ttp://www.uploda.org/file/uporg257658.png

ちなみに PyAlaMode だと docstring を全部表示する
ttp://www.uploda.org/file/uporg257659.png
100デフォルトの名無しさん:2005/12/10(土) 18:41:12
calltipがでないのはアレだけど、pythonwinのデバッガは便利だった気がする。
101デフォルトの名無しさん:2005/12/10(土) 23:54:26
emacsでPython-modeに慣れてしまって他所に移れん‥‥‥。
102デフォルトの名無しさん:2005/12/11(日) 00:15:55
pythonwin は default.cfg ファイルをエディタで書き変えることで key assign ができます
IDLE は key assign ができますでしょか?
103デフォルトの名無しさん:2005/12/11(日) 00:18:46
できる
104デフォルトの名無しさん:2005/12/11(日) 00:34:56
emacsに呪われた漏れは、IDLEでもemacsライクなキーバインドを選択しています。
でも、本当はemacsにインテリセンスが欲しい…。

>>101
python-mode使ってる? どんな感じですか?
105104:2005/12/11(日) 01:53:31
python-mode入れてみた。
○speedbarでクラスの内部構造とかも表示してくれるのは便利だ。
○emacs内でPythonShellも動かせて便利だ。
△デバッグとかはpdbとの連携でやるらしい(pdbは入れてない)
○手がなじんでしまったemacsでコードが書けるのがイイ!
×コード補完がない…。インテリセンスがほしい…。

知らないライブラリをあれこれ探りながらやるときには、補完機能があると
安心感がちがうんだよなー。
106デフォルトの名無しさん:2005/12/11(日) 08:12:28
IDLE の key assign のために、どのファイルを弄れば良いのか、教えていただけますでしょうか。

いろいろと調べたのですが判りません。
107デフォルトの名無しさん:2005/12/11(日) 09:28:53
python-mode 使いこなしガイドみたいなの誰か書いてないのかな?
108デフォルトの名無しさん:2005/12/11(日) 10:52:50
>>106
Option->Configure IDLE->key
109デフォルトの名無しさん:2005/12/11(日) 14:31:57
>>106
C:\Python24\Lib\idlelib\config-main.def
に、以下のように書いてあった

# user configuration
# -------------------
# ~/.idlerc/config-main.cfg the user general config file
# ~/.idlerc/config-extensions.cfg the user extension config file
# ~/.idlerc/config-highlight.cfg the user highlighting config file
# ~/.idlerc/config-keys.cfg the user keybinding config file
#
# On Windows2000 and Windows XP the .idlerc directory is at
#Documents and Settings\<username>\.idlerc
#
# On Windows98 it is at c:\.idlerc
110デフォルトの名無しさん:2005/12/11(日) 17:15:55
>108さん, 109さん、御教授ありがとうございます。

Win2K 上の python2.3/idle1.0.2 では python\lib\idlelib\ ディレクトリに config ファイルがありました。

でも、一番使う cursor の left/right, up/down の設定はできないようです。矢印キーを使いたくないならば「自分で python source なりに手をいれるべし」とのことのようです。

ありがとうございました。
111デフォルトの名無しさん:2005/12/11(日) 17:16:58
教示
112101:2005/12/11(日) 17:18:01
>104

> python-mode使ってる? どんな感じですか?

ただのEmacsに毛が生えたぐらいの使いごこちです。
いろいろ補完してくれるのもいいんだけど、どうせjavaと違って
あまり長いキーワードはないので打っても苦になりにくいというのも
ある。(M-/とかもあるし)

xemacs -nw なのでSpeedbarとかは使ったことないや。

113デフォルトの名無しさん:2005/12/11(日) 22:55:41
Python でフリーソフトを作りまくるスレ
http://pc7.2ch.net/test/read.cgi/software/1134298991/
114デフォルトの名無しさん:2005/12/12(月) 00:03:58
>>110
> でも、一番使う cursor の left/right, up/down の設定はできないようです。
キーバインドを Built-in Key Set の 「IDLE Classic UNIX」 にすると、

「Ctrl-p で ↑」, 「Ctrl-n で ↓」, 「Ctrl-f で →」, 「Ctrl-b で ←」

とかできてますが。
115デフォルトの名無しさん:2005/12/12(月) 00:10:05
  tp://uo.lycaeum.net/archives/008155.html
を見て思ったんだけど、UOってあからさまにクリスマスとか書かれること無いよね?
あ、どーみてもFormosaです。ありがとうございました。
116デフォルトの名無しさん:2005/12/12(月) 00:10:44
背 誤爆
117デフォルトの名無しさん:2005/12/12(月) 13:09:12
>114
>「Ctrl-p で ↑」, 「Ctrl-n で ↓」, 「Ctrl-f で →」, 「Ctrl-b で ←」
>とかできてますが

御指摘ありがとうございます。でも IDLE1.0.2 では出てきませんでした。version up が必要なようです。

MayaVi などが使える Enthought のパッケージを使っています。そのため python が 2.3 のままです。
2.4 との混在に挑戦すべきかと迷っています。
118デフォルトの名無しさん:2005/12/13(火) 00:34:10
emacs厨はlispで動作をいじれないと納得しないことが多いかと思われ。
119デフォルトの名無しさん:2005/12/13(火) 00:35:26
pymacs...
120デフォルトの名無しさん:2005/12/13(火) 16:42:40
あるオブジェクトのメソッドをループを使って実行することはできますか?
dir(Obj) = [A, B,・・・] となるとき
Obj.A(), Obj.B(),・・・と実行していきたいのです。
質問を言いかえれば、メソッド名を変数に入れて実行できますか? ともなります。
for Method in dir(Obj):
 Obj.Method #とか
という感じで出来ませんか?
121デフォルトの名無しさん:2005/12/13(火) 17:25:21
import types
for name in dir(Obj):
  if name[0:2] == "__":  # is builtin
    continue
  Method = getattr(Obj, name)
  if type(Method) == types.MethodType:
    Method()

Obj.var = Obj.Method とかしてたらどうしよう
122デフォルトの名無しさん:2005/12/13(火) 17:32:35
>>121
なるほど、getattrってのがありました。
ありがとうございます。
123デフォルトの名無しさん:2005/12/13(火) 17:32:46
>>121
builtinの正確な定義はこうだな。

if name[0:2] == "__" and name[-2:] == "__": # is builtin
124デフォルトの名無しさん:2005/12/13(火) 17:43:40
Objのメソッドかどうか判定するには
if Method.im_self == Obj:
でok?
125デフォルトの名無しさん:2005/12/13(火) 21:51:19
>>123
if name.startswith('__') and name.endswith('__'): # is builtin
の方が良くないか。一時オブジェクトが少ないし。
126デフォルトの名無しさん:2005/12/14(水) 15:28:19
>>125
なるほど、そうだね。
127デフォルトの名無しさん:2005/12/14(水) 15:30:41
def recurse(n):
  if n == 0: return
  for i in range(n):
    yield i
  recurse(n - 1)
print list(recurse(3))
  => [0, 1, 2]
ジェネレーターと再帰関数は混ぜられないですか?
128デフォルトの名無しさん:2005/12/14(水) 15:47:24
>>127
再帰呼び出しで得られたものを yield してないのが問題なのでは。
なにを得たいか分からないんだけど、例えば recurse(n - 1) を
yield recurse(n - 1) とか for i in recurse(n - 1): yield i と
すればよい。

129デフォルトの名無しさん:2005/12/14(水) 15:49:08
訂正。
誤:yield recurse(n - 1) とか
正:yield list(recurse(n - 1)) とか
130デフォルトの名無しさん:2005/12/14(水) 15:57:23
>>127
def recurse(n):
if n == 0: return
for i in range(n):
yield i
for x in recurse(n - 1):
yield x
print list(recurse(3))
=> [0, 1, 2, 0, 1, 0]

こうする以外ない(はず)。
これは、ジェネレーターのドキュメントで見たような気がする。
131デフォルトの名無しさん:2005/12/14(水) 15:57:59
ありがとうございます。
recurse(n - 1)でもrecurse(3)と同じようにジェネレーターが返ってきてたわけですね。
気付いてみれば当たり前なんだけど、うっかりしてました。ムズカスィ。
132デフォルトの名無しさん:2005/12/14(水) 21:56:17
CPANとRAAのソースコード検索がうやましいです。
http://gonzui.sourceforge.net/sites.html

どこかにPythonのソースコード検索ができるとこないかなぁ。
133デフォルトの名無しさん:2005/12/14(水) 23:21:11
これとか?
http://koders.com/
134デフォルトの名無しさん:2005/12/14(水) 23:34:20
お勉強wikiがRSSを導入しましたが、
FSwikiの生成するRSSって全然役に立たないな。
なんでdescriptionに更新時間が入ってるんだ。

あんなしょぼい情報を生成するために負荷がかかるくらいなら無い方がマシだ。
135デフォルトの名無しさん:2005/12/15(木) 00:30:39
>>133
ありがとー
136デフォルトの名無しさん:2005/12/15(木) 00:36:15
>>134
てゆーか外部からアクセスすると怒られるしねー
いや、管理人タンが悪いわけじゃない。わかってるんだ。

追記しとくとWikiのRSSなんてどれもあんなもんだよ。
137デフォルトの名無しさん:2005/12/15(木) 00:47:28
HikiのRSSはけっこうちゃんとしてると思う
138デフォルトの名無しさん:2005/12/15(木) 01:34:59
>>136
> 追記しとくとWikiのRSSなんてどれもあんなもんだよ。
ごもっとも。

FSwikiじゃロクなRSS出力できないし、負荷を気にするならあきらめなよ > 管理人タン

# Hiki並みにリッチなRSSを吐けるというなら欲しいけど
139デフォルトの名無しさん:2005/12/15(木) 11:18:03
スレ違いかもしれませんが、
reStructuredText で 取り消し線(HTMLでいうところのdel)を書くにはどうすればいいのでしょう?
適切なスレあったら誘導してくださいm( )m
140デフォルトの名無しさん:2005/12/15(木) 17:20:48
チュートリアルにもある、GNU Readlineの支援を得た「行編集機能」をもつインタプリタをインストールするにはどうすればいいんでしょうか?
環境はFedora3 + Python2.4.2です。
141デフォルトの名無しさん:2005/12/15(木) 18:04:59
>>140
普通にディストリのrpmでインストールした奴は
最初っからreadline対応じゃないのか?

python起動して何か実行したあとにctrl+P(or up arrow)で
以前に実行されたコマンドが再表示されて編集できるかやってみれ
142デフォルトの名無しさん:2005/12/15(木) 20:19:16
>>139
rst QuickReference とかには載ってないね。ひょっとしてマジでないのか?

以下スレならば、もっとよく知っている人がいるかもしれない。

「UNIX板: 自分の情報整理スタイルを晒そうよ 3」:
http://pc8.2ch.net/test/read.cgi/unix/1082802636/

「ネット関係 > WebProg板: Zopeってどうよ」:
http://pc8.2ch.net/test/read.cgi/php/1079778836/

俺もreStructuredTextでのドキュメント管理に興味あるんで、なにか分かったら教えて
ほしいです。
143デフォルトの名無しさん:2005/12/15(木) 20:44:26
>>140
行編集機能が欲しいなら、IPythonをインストールするというのもアリかと。
144デフォルトの名無しさん:2005/12/15(木) 23:37:49
ところでIDLE以外の統合環境でリファクタンリングを備えてるIDEの
オススメのやつってあるかね。

IDLEでTDDはなかなかキツイ。
145デフォルトの名無しさん:2005/12/16(金) 00:43:32
>>144
EclipseのPydevにリファクタリング機能がついてるらしい。

ところで、IDLEにリファクタリング機能があるなんてのが初耳なんだが。
IDLEではどうやって使うの?
146デフォルトの名無しさん:2005/12/16(金) 00:48:07
>>144
> IDLEにリファクタリング機能がある
とは言っていないような・・・。
147デフォルトの名無しさん:2005/12/16(金) 00:50:29
>>144
eric3 もリファクタリング機能とユニットテストをサポートしてるみたい。
148デフォルトの名無しさん:2005/12/16(金) 00:57:06
>>146
マジでそう読んじゃって、「おお、IDLEスゲー」とか思いました…。
いや、IDLEでリファクタリング機能がないならないでいいんだ。はやとちりしてごめん。
IDLEにそんなのまで要求しちゃいかんな。
149デフォルトの名無しさん:2005/12/16(金) 04:07:53
import this
150140:2005/12/16(金) 04:18:02
>>141]
直接ソースをコンパイルしたためはまってしまったようです.
rpmでインストールしなおしたらうまくいきました.
151デフォルトの名無しさん:2005/12/16(金) 05:00:15
>>150
readline-devel パッケージが入ってないでしょ?
readline-devel をインストールしてコンパイルすれば
支援機能が有効なPythonをコンパイルでける.

もちろん,rpm版でも別に問題無いけど.

152デフォルトの名無しさん:2005/12/16(金) 09:23:47
>>145
>EclipseのPydevにリファクタリング機能がついてるらしい。

確かにPyDevにリファクタリング機能は付いてるけど、現時点では完璧じゃないお
変数の名前変更やってみたら、中途半端に置換されて困った
153デフォルトの名無しさん:2005/12/16(金) 12:14:41
VIPPERか?
154デフォルトの名無しさん:2005/12/16(金) 14:10:09
童貞か?
155デフォルトの名無しさん:2005/12/16(金) 17:07:31
>>139
通常のシンタックスにはないみたいだけど、HTML 出力だけなら default.css に
span.del { text-decoration: line-through; }
を加えて、カスタムロール?を使えば

.. role:: del

あいうえお :del:`かきくけこ` さしすせそ

こんな感じで使うことができる
因みに .. role:: xxx をドキュメント内に記述しておくと
:xxx:`...` を <span class="xxx">...</span> に変換する
156デフォルトの名無しさん:2005/12/17(土) 03:39:56
恐縮ですがwindows XPにおいて
PySol Solitaireを遊ぶための知識を伝授してください
157デフォルトの名無しさん:2005/12/18(日) 02:14:40
>>156
何とか気合でやってみた。
とりあえず。soundのエラーがでまくるのでimport pysolsoundserver
をつぶしまくる。
gamedb.pyの422行目の
    if not isinstance(gi, GameInfo):

        raise GameInfoException, "wrong GameInfo class"
を例外を投げずにreturn。

main.pyの250行目付近の
init audio 2)
をばっさり削除。

カードセットは下から落としてきた奴のdataフォルダの中身をsrcにぶちまければOK
http://ftp.ccc.uba.ar/download/pub/linux/debian/debian/pool/main/p/pysol/

python pysol.py --nosound
でとりあえず、最初のゲームは、できるようになった。

でも、ゲームを変えようとすると落ちるorz。
158デフォルトの名無しさん:2005/12/18(日) 02:48:35
>157

自己レス。
ちなみにcygwinでやった。
コマンドラインから起動しようとすると失敗する。

一応、ほとんどのゲームが遊べた。
何個かのゲームが落ちるっぽい。

落ちたらcygwinのホームディレクトリの.pysolってディレクトリを消して再起動すればOKっぽい。
159デフォルトの名無しさん:2005/12/18(日) 04:54:02
coLinux入れたほうが手っ取り早い悪寒
160デフォルトの名無しさん:2005/12/18(日) 22:49:23
py 初心者です。質問。

引数で指定したファイル内の単語をそれぞれ数えるスクリプトを作るつもりで以下のように書いてみました。
perl の hash のつもりで、辞書を使おうと思ったのですが、エラーになってしまいます。

import sys

d = {}
for arg in sys.argv[1:]:
    f = open(arg)
    for word in f.read().split():
        d[word] = d[word] + 1
    f.close()

for word in d.keys().sort():
    print word + " : " + d[word]

d[word] = d[word] + 1 の行がエラーとなり、メッセージは「KeyError」です。
辞書の使い方がまずいのかなとは、思いますが、どう書くのが正しいのか教えてください。
161デフォルトの名無しさん:2005/12/18(日) 22:58:39
d[word] = d.get(word, 0) + 1
かな.get()ならwordってキーが見つからなかったときの値を
指定できる.詳しくは,以下を参照してください.

http://www.python.jp/doc/release/lib/typesmapping.html
162デフォルトの名無しさん:2005/12/18(日) 23:22:13
>>161
ありがとうございます。
あと、sort()の戻り値はリストじゃなのか・・

for word in d.keys().sort():

はだめで、

keys = d.keys()
keys.sort()
for word in keys:

と、テンポラリが必要なんですね。
163デフォルトの名無しさん:2005/12/18(日) 23:26:28
Python 2.4 以降なら
sorted(d.keys())
でリストが返る
sorted(d.iterkeys())
にすると上の方より効率がよくなる
164デフォルトの名無しさん:2005/12/18(日) 23:48:17
>>160
> for word in d.keys().sort():
sort() メソッドは None を返すので、上記の行でもエラーになる。
書き換えの候補としては、
for word in sorted(d.keys()):
もしくは、
word_list = d.keys(); word_list.sort()
for word in word_list:
でしょうか。

# d.keys().sorted() とは書けない…。
# さらに sorted() はPython2.4からしか使えないらしい

参考: http://www.python.jp/pipermail/python-ml-jp/2004-September/003009.html
165デフォルトの名無しさん:2005/12/18(日) 23:48:53
かぶったorz
166デフォルトの名無しさん:2005/12/19(月) 07:37:45
たしか副作用があることを使う人に意識させるように、
sort()は値を返さないんだよな。
167デフォルトの名無しさん:2005/12/19(月) 10:36:47
sortedみたいなことをやりたい場合には
mylist.sort() or mylist
と書く人もいるんだよな。mylistが変更されちゃうけど。
168デフォルトの名無しさん:2005/12/19(月) 11:37:30
ruby の変な記号をつけるメソッドはカッコ悪いが
sort() と sorted() もカッコイイとは言えないね
169デフォルトの名無しさん:2005/12/19(月) 12:27:12
PythonもRubyもカッコ重視でプログラムしないしな。







Lispじゃないんだから。
170デフォルトの名無しさん:2005/12/19(月) 13:18:05
Lisp カッコイイ!
171デフォルトの名無しさん:2005/12/19(月) 13:24:24
Lispython
172デフォルトの名無しさん:2005/12/19(月) 16:17:57
>>171
おまい天才だな
173デフォルトの名無しさん:2005/12/19(月) 17:05:50
検索すると幾つかヒットするな…
174デフォルトの名無しさん:2005/12/21(水) 17:27:18
>>157
>>159
回答ありがとうございます
linuxに触ったこともなく、むずかしくてだめでした
175デフォルトの名無しさん:2005/12/22(木) 08:03:12
176デフォルトの名無しさん:2005/12/22(木) 09:34:02
うは... 現役 hacker 皆 google 集結則かよ
177デフォルトの名無しさん:2005/12/22(木) 09:51:20
ぜんぜん詳しくないのだけれど,
他にどういった有名人がいるの?
178デフォルトの名無しさん:2005/12/22(木) 18:52:47
>>177
現役っていうと、日本人ならsatoru氏とか。
(gonzui,namazuを作ったり、最近はBinary2.0とか言いだした人)
179デフォルトの名無しさん:2005/12/23(金) 00:09:14
ずっとテツだと思ってた
180デフォルトの名無しさん:2005/12/23(金) 00:50:33
お前は俺か?
181さらさ ◆SARAHxmkr. :2005/12/23(金) 06:24:14
>>> number = [1, 2, 3, 4, 5]
>>> print number[0:5]
[1, 2, 3, 4, 5]
>>> print number[:5]
[1, 2, 3, 4, 5]
>>> print number[:-1]
[1, 2, 3, 4]
>>> print number[:-2]
[1, 2, 3]

プログラミング初心者なのでpythonで学ぶプログラミング作法という本から
読み始めたのですが、サンプルプログラムが上のように配列の要素を
取り出せる事を前提に書かれてて、それが理解できなくて物凄い自分で
色々試して苦労しました。それも勉強だと思えば価値あったのかなと思い
ますが、初心者向けにはちょっと難しいような・・・
182デフォルトの名無しさん:2005/12/23(金) 10:18:56
前提を説明していないとしたら初心者向きではないな、その本は。
183デフォルトの名無しさん:2005/12/23(金) 12:14:52
トミヤテツというのも読み方違うので驚いた
184デフォルトの名無しさん:2005/12/23(金) 15:31:42
>181
すみません、何が分からない(説明不足)と思われたのかが
分からないんですが...

"配列の部分(要素)を取り出す機能がありますね"、
ということの紹介みたいな部分ではないの?
185デフォルトの名無しさん:2005/12/23(金) 17:15:22
for line in sys.stdin:
 sys.stdout.write(line)

このコードを端末からインタラクティブに実行すると、
EOFを送るまでiteratorが何も返さないようで、1行
入力しても出力が表示されません。
stdinをline-bufferedにするにはどうすればいいのでしょう?
186デフォルトの名無しさん:2005/12/23(金) 17:59:32
input() か raw_input() を使ってみては?
187デフォルトの名無しさん:2005/12/23(金) 18:55:29
>>186
ありがとうございます。inputだとstdin以外のオブジェクトに
適用できないんですよね。

調べてみると、fileクラスの入力iteratorをline-bufferedに
できないのはそういう仕様のようなので諦めました。それで、
1行だけ読む関数のiteratorでラップすると上手く行きました。

for line in iter(sys.stdin.readline, ''):
 sys.stdout.write(line)
 sys.stdout.flush()

ただ心情的にはsys.stdin.setvbuf(IOLBF)とかしたい…
188デフォルトの名無しさん:2005/12/23(金) 21:20:04
189デフォルトの名無しさん:2005/12/23(金) 21:39:57
おぉ!!
すごいことなのか?
190デフォルトの名無しさん:2005/12/23(金) 23:07:06
Pythonはクラスの継承をすると、親クラスのコンストラクタを
自動で呼ばないのを今日知りましたが、この設計はどういう
理由によるものなんでしょうか。
191デフォルトの名無しさん:2005/12/23(金) 23:26:50
HTMLParser で <SCRIPT> タグの中身を抜き出しているのですが、
document.write('</a>') のような JavaScript が開始タグの
イベントとして通知されてきて困っています
これを止める方法はないでしょうか?
192デフォルトの名無しさん:2005/12/23(金) 23:36:10
スクリプト内部かどうかを示すフラグを保持して
スクリプト内でのイベントだったらデータとみなす、とかかなあ…。
193デフォルトの名無しさん:2005/12/24(土) 09:46:16
>>190
たぶん、
PythonはC++やJavaみたいにメソッドオーバーライドができず、
コンストラクタはたったひとつしか書けないので、親クラスには
自動で呼べるコンストラクタ=引数なしで呼べるコンストラクタ
を必ず用意しなければならない、という制限はきつすぎるから
だと思う。
194デフォルトの名無しさん:2005/12/24(土) 10:22:50
オーバーロードのことじゃなくて?
195デフォルトの名無しさん:2005/12/24(土) 10:38:49
>>194
うん。ごめんよ。
196デフォルトの名無しさん:2005/12/24(土) 11:45:00
>コンストラクタはたったひとつしか書けない

その代わりメソッドに可変長引数、キーワード引数が使えるから漏れはあんまり
不便な思いはしてないですが。。

なにか決定的に不便なシチュエーションってあるんですかね?興味あります。
197デフォルトの名無しさん:2005/12/24(土) 13:23:11
親クラスのコンストラクタを
自動で呼ばない
198デフォルトの名無しさん:2005/12/24(土) 13:58:56
呼ばれなかったなら、呼びにいけ
199デフォルトの名無しさん:2005/12/24(土) 14:12:45
父ちゃーん!
200デフォルトの名無しさん:2005/12/24(土) 21:00:31
おまえは俺の子クラスじゃない。
201デフォルトの名無しさん:2005/12/24(土) 23:55:41
え…うそ…うそだ…そんなの嘘だ!
嘘だと言ってよ父ちゃん!



>>196
たぶんこんなシチュエーション
202デフォルトの名無しさん:2005/12/25(日) 00:06:25
pythonではwhileの条件式に代入文を書けませんよね

while data = infile.read(100):
 print data

これはダメで

while True:
 data = infile.read(100)
 if not data:
  break
 print data

と書くと思うんですが、どうもしっくり来ません。
これはこういうものと割り切るしかないでしょうか?
203デフォルトの名無しさん:2005/12/25(日) 00:35:17
助長に感じるのはCに染まりきってるからかも。

個人的には代入文が式を返すのは気持ち悪いです。
Delphiとか等号記号が = の言語をやってると特に。
204デフォルトの名無しさん:2005/12/25(日) 00:36:04
×代入文が式を返す
○代入文が値を返す
205デフォルトの名無しさん:2005/12/25(日) 00:55:31
>>202 はCの誤解されやすい点を忠実にふさいだだけだと思う
206デフォルトの名無しさん:2005/12/25(日) 01:08:03
むしろ、>>202のような状況ではfor使う手を考えろってことでは?
207デフォルトの名無しさん:2005/12/25(日) 01:08:52
>202

iteratorで書くのが今日日のpython流なんだろうけど、read(100)する
iterator作るのもウゼェってのもあるかもね。
208デフォルトの名無しさん:2005/12/25(日) 01:47:30
>>196-201
わろた
209202:2005/12/25(日) 02:22:41
なるほど for+iterator ですか。

for data in iter(lambda: infile.read(100), ""):
 print data

一応これで意図通り動くようですが、
これが今後のPython流?
それともwhile True推奨なのか…
210デフォルトの名無しさん:2005/12/25(日) 07:46:08
個人的にはwhile True推奨。
シンプルに、バカっぽく。
211デフォルトの名無しさん:2005/12/25(日) 10:06:28
lambda 廃止とか言ってなかったっけ?
212デフォルトの名無しさん:2005/12/25(日) 10:32:15
>>211
誰が?
213デフォルトの名無しさん:2005/12/25(日) 12:07:25
廃止ってのとは違うのか。ちょっと勘違いしてたかも

http://wiki.python.org/moin/AlternateLambdaSyntax
214デフォルトの名無しさん:2005/12/25(日) 13:14:38
Guidoは廃止したいみたいね

http://coreblog.org/ats/610

ごっごる!
215デフォルトの名無しさん:2005/12/25(日) 14:24:31
list で [ 2,3, 4,5, 10,11, 15,16 ]
みたいな一次元データがあります。

でも実際には [ (2,3), (4,5), (10,11), (15,16) ]
みたいな構造のデータで
for pair in [ (2,3), (4,5), (10,11), (15,16) ]:
print pair[0], pair[1]
みたいにしたいです。

この場合って index counter を回すんじゃない
記法があるんでしたっけ?

216デフォルトの名無しさん:2005/12/25(日) 14:59:05
>>215
for i, j in pairs:
print i, j
217デフォルトの名無しさん:2005/12/25(日) 15:04:39
>>215
こういうことですか?
for left, right in [ (2,3), (4,5), (10,11), (15,16) ]:
  print left, right
218デフォルトの名無しさん:2005/12/25(日) 15:20:50
>>203
K&Rでは推奨されていないので,使わない人も多いのでは
ほんとに間違いの元ですね.

Cならまだしも,PHPなどでこれをやられると,エンバグしやすいし,デバッグが困難
だから,Pythonが言語使用的にこれができなくなっているのは,
生産性あげると思う
219デフォルトの名無しさん:2005/12/25(日) 15:38:13
>>215

>>> from itertools import *
>>> a = [ 2,3, 4,5, 10,11, 15,16 ]
>>> for x, y in zip(islice(a, 0, None, 2), islice(a, 1, None, 2)):
... print x, y
...
2 3
4 5
10 11
15 16
>>>

または

>>> for x, y in zip(a[:-1:2], a[1::2]):
... print x, y
...
2 3
4 5
10 11
15 16
>>>
220デフォルトの名無しさん:2005/12/25(日) 17:30:49
a.apple = apple
a.orange = orange
a.melon = melon
...
っていうパターンがいっぱいあるのですが、
どうすればイテレータなどでまとめることができますか?
221デフォルトの名無しさん:2005/12/25(日) 18:15:52
dictionary
222デフォルトの名無しさん:2005/12/25(日) 21:24:51
windowsで使うなら
・cygwin環境
・PyJUGにあるWindows用
・ActivePython
のどれがよいのでしょう?というかどういう違いがあるのでしょうか?
223215:2005/12/25(日) 21:42:31
>219
thx!
1つめで、そっか zip か、と思いつつもそれだけじゃだめなのか、
と思いつつ 2つ目の記法は ???

調べてみまっす。
224`:2005/12/25(日) 21:49:15
from itertools import *
a = range(500000)

(5.4s) for i,j in zip(a[::2],a[1::2]): print i,j
(4.6s) for i, j in zip(islice(a, 0, None, 2), islice(a, 1, None, 2)): print i, j
(3.2s) for i, j in izip(islice(a, 0, None, 2), islice(a, 1, None, 2)): print i, j
(3.5s) i = 0 ; n = len(a)
while i < n: print a[i], a[i+1] ; i += 2
()内は実行時間
225デフォルトの名無しさん:2005/12/25(日) 22:21:04
>>222
「0から教えてください」スレからコピペ

一番の違いは python が何でコンパイルされているかでしょう。

cygwin版 ⇒ 当然 gcc
日本語Python、ActivePython ⇒ MSC

なので、新しいモジュールインストール時に MSC のコンパイラが
ないと下の2つは辛いかも。ただし、下の二つには Windows 用の
拡張モジュールが使えるという利点があります。Python から Excel を
立ち上げるとか普通にできておもしろいです。 ActivePython は始めから
この機能が使えます。(当たり前か) 日本語Python は後から追加が必要
だけど MSC は不要です。ただ、PyJUG に置いてあるのは少し古いので
ちゃんと最新版を入れた方がいいでしょう。

ということで。。。

とにかく日本語をトラブルなく使いたい!⇒日本語Python
2.4 を使いたい。MSC は持ってない。⇒cygwin Python
Windows 機能を使いたい。⇒日本語Python、 ActivePython

となると思います。
226デフォルトの名無しさん:2005/12/26(月) 00:52:03
s = "abc"
s is not None => True
s = None
s is not None => False

いったいどこから評価してるんだよ。。。
き、きんもーっ☆
227デフォルトの名無しさん:2005/12/26(月) 01:02:17
たしかにキモイな
ttp://docs.python.org/ref/comparisons.html

a is (not b) じゃなくて a "is not" b なのな
228デフォルトの名無しさん:2005/12/26(月) 01:10:18
なんか趣味に走ってるよね。
そのくせ、
flag is not not True
みたいなのは文法エラーとかぬかすし。
229デフォルトの名無しさん:2005/12/26(月) 01:34:49
初歩的な質問ですが、
gtk2とpangoを使っているpythonアプリを
高速なwindowsネイティブexeにコンパイルすることはできますか?
230デフォルトの名無しさん:2005/12/26(月) 01:45:23
>228

趣味に走るのは作った奴の特権。
うやらますぃ。

231デフォルトの名無しさん:2005/12/26(月) 03:27:54
何がきもいのか直ぐには分からず素直に受け止めた俺
232デフォルトの名無しさん:2005/12/26(月) 04:24:57
>>231
それが普通。
233デフォルトの名無しさん:2005/12/26(月) 08:33:12
最初は評価順が気持ち悪かったが、>>227が示してくれているドキュメント読んで納得した俺。
ドキュメントが整備されているって、なんて素晴らしいんだと改めて認識ますた。
234デフォルトの名無しさん:2005/12/27(火) 00:10:19
pythonでEUC-JPの文字例を16進数で表すときはどうすればいいですか?
できればその逆もお願いします。
235デフォルトの名無しさん:2005/12/27(火) 00:57:35
>>234
"\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9"  # EUC-JPで "こういうこと?"
236234:2005/12/27(火) 01:06:34
そういうことです。
237デフォルトの名無しさん:2005/12/27(火) 05:29:50
string.join(map(lambda c: string.replace(hex(ord(c)), '0x', '\\x'), "あいうえお"), '')
238デフォルトの名無しさん:2005/12/27(火) 05:51:00
"".join(["\\x%02x" % ord(c) for c in "あいうえお"])
239デフォルトの名無しさん:2005/12/27(火) 08:39:19
ぎゃくは?
240デフォルトの名無しさん:2005/12/27(火) 11:46:17
eval()
241デフォルトの名無しさん:2005/12/27(火) 12:00:55
>>> eval("\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<string>", line 1
こういうこと?
^
SyntaxError: invalid syntax
242デフォルトの名無しさん:2005/12/27(火) 13:05:32
>>> eval('"\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9"')
'\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9'
>>> print eval('"\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9"')
こういうこと?
>>>
243234:2005/12/27(火) 15:02:58
出来ました!
丁寧にありがとうございました。
244デフォルトの名無しさん:2005/12/28(水) 00:38:52
print "\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9"

では何故だめだったのか知りたい
245デフォルトの名無しさん:2005/12/28(水) 13:07:28
input() とか eval でユーザから数値入力を受け付けると、ゼロ詰めで痛い目にあうね。
>>> while 1:
... print input("input number?")
...
input number? 100
100
input number? 0100
64
246デフォルトの名無しさん:2005/12/28(水) 16:00:17
ありがちな誤用だね。
247デフォルトの名無しさん:2005/12/28(水) 16:31:16
知らんかった…。
248デフォルトの名無しさん:2005/12/28(水) 23:51:21
input() は設計ミス
あんな関数が平気で転がってるのが見てらんない
249デフォルトの名無しさん:2005/12/29(木) 00:19:42
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;
  ヾ;;;ハ    ノ       .::!lリ;;r゙
   `Z;i   〈.,_..,.      ノ;;;;;;;;>
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f    そんなふうに考えていた時期が
   ~''戈ヽ   `二´    r'´:::. `!   俺にもありました
250デフォルトの名無しさん:2005/12/29(木) 03:03:04
マイナーな関数だし、べつにいいんでね?>input()
それともBASICの呪いを思い出しそうになってイヤになるとかか?
251デフォルトの名無しさん:2005/12/29(木) 03:59:57
raw_inputがデフォルトならよかったのに
んでinput廃止
252デフォルトの名無しさん:2005/12/29(木) 07:31:12
廃止には、したがってるようなんだけど。
253デフォルトの名無しさん:2005/12/29(木) 12:11:14
生で入力
254デフォルトの名無しさん:2005/12/29(木) 14:16:46

( ゚д゚)

(゚д゚ )

( ゚д゚ )ぬるぽ
255デフォルトの名無しさん:2005/12/29(木) 22:42:54
Pythonで書かれた、コーディングの良いお手本になるようなソフトウェアって
何がありますかね?
256デフォルトの名無しさん:2005/12/29(木) 22:50:51
>>255
Zope
257デフォルトの名無しさん:2005/12/29(木) 23:07:00
いきなりZopeは。。。もう少し短いものはないですか?
さくっと読めて、コーディングのコツはしっかり吸収できるような。
258デフォルトの名無しさん:2005/12/29(木) 23:10:38
標準ライブラリとかでいいんじゃね?
259デフォルトの名無しさん:2005/12/29(木) 23:17:45
>>258
なるほど。。その手がありましたね
題材も豊富で参考になりそうです
アドバイスありがとうございました
260デフォルトの名無しさん:2005/12/30(金) 00:18:19
>>255
そりゃネタにもならんよ〜。
Zopeはある意味Pythonの範疇を超えちゃっている世界だし。Zope3でさらに独自の世界に行っちゃってるし。
いっそのことJavaとかで再実装→判子握っているオッサンの評価向上 とか考えてくれてもよさそうなものを。
261デフォルトの名無しさん:2005/12/30(金) 00:18:54
うは、アンカーミス。>>256だった。
(゚д゚)マズー
262デフォルトの名無しさん:2005/12/30(金) 00:20:02
>260
>いっそのことJavaとかで再実装

つ [言い出しっぺの法則]
263デフォルトの名無しさん:2005/12/30(金) 01:07:52
>>260
あんたすげえよ。がんばれ。
264デフォルトの名無しさん:2005/12/30(金) 11:02:27
またsuckitか。
265デフォルトの名無しさん:2005/12/30(金) 12:50:38
266デフォルトの名無しさん:2005/12/31(土) 13:26:55
>>225
なにも考えずにpython.orgにある2.4のwin版をインスコしたんだけど、なにか
違いあるの??いまのところ日本語も問題なく使えてるお
267デフォルトの名無しさん:2005/12/31(土) 14:06:26
違いはある。問題はない。
268デフォルトの名無しさん:2005/12/31(土) 14:09:18
違いはある。問題はない。
269デフォルトの名無しさん:2005/12/31(土) 14:35:35
IronPython更新されたいみたいね、誰か使ってる人いる?
ライブラリは.NET FrameWorkのしか使えないのかな
270デフォルトの名無しさん:2005/12/31(土) 14:55:38
これか。
IronPython-1.0-Beta1.zip
http://www.microsoft.com/downloads/details.aspx?FamilyID=94082d26-e689-4f7f-859b-fec6dacf3ae8&DisplayLang=en

ライブラリはPythonのも使えたと思う。
Jythonのときもそうだったけど、継承なんかも乗り入れ可能。
271デフォルトの名無しさん:2006/01/01(日) 01:31:42
みんなプログラム書くエディタは何使ってるの?マックとウィンドウズで
使えるのってvi,emacsぐらいしかないのかな
272デフォルトの名無しさん:2006/01/01(日) 01:48:40
あけおめ
win:Idle、linux:emacs、mac:持ってない
273デフォルトの名無しさん:2006/01/01(日) 01:52:37
みみかき
274デフォルトの名無しさん:2006/01/01(日) 01:54:35
Komodoってどうよ
275デフォルトの名無しさん:2006/01/01(日) 09:13:08
http://dada.perl.it/shootout/sieve.python.html
このコード動かないんですけど・・・。なんか直し方わかんないんですけど・・・。
276デフォルトの名無しさん:2006/01/01(日) 11:14:03
>>275
んじゃあきらめろ
277デフォルトの名無しさん:2006/01/01(日) 12:55:16
インデントがおかしい.
278277:2006/01/01(日) 13:19:23
このプログラム,インデントだけじゃなくて,アルゴリズム自体おかしいね.
素数の数を調べる範囲を NUM=int(sys.argv[1]) で引数から拾ってるくせに,
ふるい処理では範囲が8192だし,for foo in xrange(): のループも無意味.
もとの書き方にできるだけ合わせて書くと,正解はこうなるはず:
def main():
  NUM = int(sys.argv[1])
  flags = (NUM+1)*[1]
  count = 0
  for i in xrange(2, NUM+1):
    if flags[i]:
      k = i + i
      while k<= NUM:
        flags[k] = 0
        k = k + i
      count = count + 1
  print "Count:" , count

main()
279277:2006/01/01(日) 14:09:24
set() 型を使ってちょっとPython風に書いてみた.

import sys

def sieve(sieve_size):
  """
  Returns sequence of the primes.

  The algorythm is based on the Sieve of Eratosthenes.
  
  """
  non_primes = set()
  for i in range(2, sieve_size+1):
    if i not in non_primes:
      # populate non-primes with multiples of the prime i
      non_primes = non_primes.union(range(i+i, sieve_size+1, i))
  return sorted(set(range(2, sieve_size+1)).difference(non_primes))


if __name__=="__main__":
  ssize = int(sys.argv[1])
  primes = sieve(ssize)
  print "Number of primes up to %d: %d" %(ssize, len(primes))
280デフォルトの名無しさん:2006/01/01(日) 14:11:37
御苦労。
281デフォルトの名無しさん:2006/01/01(日) 14:20:53
>>279
ご苦労さん。動けばいいのでこらなくてもいいですよー
282277:2006/01/01(日) 14:21:50
dictでも書けた.

def sieve(sieve_size):
  ndict = dict((i, None) for i in range(2, sieve_size+1))
  for i in xrange(2, sieve_size+1):
    if i in ndict:
      for k in range(i+i, sieve_size+1, i):
        if k in ndict:
          ndict.pop(k)
  return sorted(ndict.keys())
283デフォルトの名無しさん:2006/01/01(日) 15:25:03
>>225
Excelを使えると便利そうなので、コマンドを教えてください。
284デフォルトの名無しさん:2006/01/02(月) 18:30:54
スタート -> ファイル名を指定して実行 -> excel.exe と入れて[OK]汁
285デフォルトの名無しさん:2006/01/03(火) 01:15:55
>>238
import win32com.client
xls = win32com.client.Dispatch("Excel.Application")
xls.Visible = True
ここから後ろはVBAのコードになる罠
286デフォルトの名無しさん:2006/01/03(火) 12:34:00
VBAというか、COMなので。
MSDNのリファレンスがそのまま使いまわせてかなりウマーです。
COMってすげーなと思った。
287デフォルトの名無しさん:2006/01/05(木) 02:22:11
Pythonスクリプトを実行形式のファイルへ変換できるようですが、
その場合、スクリプトのソースはどの程度隠避できますか?
288デフォルトの名無しさん:2006/01/05(木) 03:45:34
.pyc 程度じゃね?
289デフォルトの名無しさん:2006/01/05(木) 10:46:04
>>287
pt2exe使ってみたけど,string丸見えだった
290デフォルトの名無しさん:2006/01/05(木) 14:11:13
stringくらい普通のコンパイラでも
丸見えじゃねーのかな
291デフォルトの名無しさん:2006/01/05(木) 15:19:16
うん、○三重
292デフォルトの名無しさん:2006/01/05(木) 20:00:08
>>287 そもそも何のために隠すのさ?
293デフォルトの名無しさん:2006/01/05(木) 20:11:39
せいぜい考えられるのは、
1) 商業用途での配布
2) 「HSPの方から来ました」
3) 「VBの方から来ました」
294デフォルトの名無しさん:2006/01/05(木) 20:18:20
VB〜HSPを経てPythonへたどり着きました
シェアウェアなんでソース見られると困ります
おしえてください!!!!
295デフォルトの名無しさん:2006/01/05(木) 20:51:05
>>294
模範解答かよwww
296デフォルトの名無しさん:2006/01/05(木) 21:47:05
.NET IronPython 1.0 ベータリリース
http://slashdot.jp/developers/06/01/05/1219258.shtml
297デフォルトの名無しさん:2006/01/05(木) 22:02:12
Iron Pythonのいいところって何だろう?
298デフォルトの名無しさん:2006/01/05(木) 22:19:18
>>297
今までのC/C++でPythonを拡張したり、逆にC/C++でPythonの機能を呼び出したりする
といったことを.NET Frameworkで出来るようになること

具体的には、現状だとCのWin32APIの関数を使うような場面で、より使いやすい
.NET Frameworkのライブラリを使うことが選択肢に入ってくる、とか

あとはJITと最適化による速度面の向上に期待ですかね
299デフォルトの名無しさん:2006/01/05(木) 23:28:14
マイクロソフト、オープンソースのスクリプティング言語をサポート
ttp://headlines.yahoo.co.jp/hl?a=20060105-00000003-cnet-sci
300デフォルトの名無しさん:2006/01/05(木) 23:37:42
>>298
ふむふむ…説明ありがとうございました。
今まではC++をUNIXで使ったりしてきて
Pythonはほとんど使ったことがないのですが、
Pythonの知名度も上がったりして!
301デフォルトの名無しさん:2006/01/06(金) 01:55:15
>>299
リンク先のYahooのページに「UNIX版Pythonを開発する
Salim Fadhleyによると」って書いてあるんだけど,
Guido先生じゃないのかよ.

Salim Fadhleyって誰だ?俺が知らないだけで,
実はPython界隈では有名人?

302デフォルトの名無しさん:2006/01/06(金) 02:39:40
Guidoは教祖であってディベロッパーではない
303デフォルトの名無しさん:2006/01/06(金) 09:56:20
とりあえず python は MS 公認言語になったということでよろしいか?

(といってもおいらは unix 人だけど)
304デフォルトの名無しさん:2006/01/06(金) 20:17:52
Kid使ってるんですが…
Kidでテンプレートを読みこむ

pythonインタプリタを終了せずにテンプレートの方を更新

Kidでふたたび読みこみ

しても,変更が反映されないんですが,なぜ?
キャッシュを消しても同じ.Pythonインタプリタを終了して,もう一度読みこむと
反映されてます.load_template(file="XXX", cache=0)でも変らず.

ちょろっとソース見てみたけどわからねっす
305デフォルトの名無しさん:2006/01/06(金) 22:11:31
ironpythonとjythonどっちがいいんだろ。
306デフォルトの名無しさん:2006/01/06(金) 22:26:47
Javaみたいにならなければいいね・・・
307デフォルトの名無しさん:2006/01/06(金) 23:05:19
そうだよね。jythonちゃんとしてからやればいいのに。
もうjythonどうでもいいのかな。
308デフォルトの名無しさん:2006/01/06(金) 23:14:48
ちがうよ。JVMの独自拡張でSunと確執を生んだみたいに
MSが突っ走らなければいいねってことだよ。
309デフォルトの名無しさん:2006/01/06(金) 23:34:14
>>308
それは大丈夫じゃない?
MicrosoftがPythonを独自拡張して突っ走ったとしても
別に誰とも確執は生まないと思う。

111111111111111111111111111111

2
310デフォルトの名無しさん:2006/01/06(金) 23:38:16
cpythonユーザーは嫌がるんじゃないの
311デフォルトの名無しさん:2006/01/07(土) 00:17:35
まぁ、C#使うけどな。
312デフォルトの名無しさん:2006/01/07(土) 00:40:27
Python for .NETのほうがつかえそう
313デフォルトの名無しさん:2006/01/07(土) 01:08:39
そもそもPythonにCやJavaやC#みたいな厳密な言語仕様があるの?
314デフォルトの名無しさん:2006/01/07(土) 01:13:17
CやJavaやC#と比較してどうかは知らないが、
DocumentationのところにLanguage Specificationはちゃんとあるよね。

ときどきわかんなくなって参照するが、language lawyerの素質がないのか
ますますわからなくなる。

315デフォルトの名無しさん:2006/01/07(土) 21:26:02
yield ってどう実装されてるんでしょうか?
316デフォルトの名無しさん:2006/01/07(土) 21:41:00
>>313
スクリプト系言語の中では厳密な方
317デフォルトの名無しさん:2006/01/07(土) 23:10:10
確実に言えるのはPEPS読んでないってことだな。
318デフォルトの名無しさん:2006/01/08(日) 01:07:53
^←ってなんでしょうか?
べき乗のつもりで使ったら変な数が
べき乗は**なんですね

319デフォルトの名無しさん:2006/01/08(日) 01:10:47
>>318
xor?
320デフォルトの名無しさん:2006/01/08(日) 09:57:06
>>319
あーざっす
321デフォルトの名無しさん:2006/01/08(日) 17:36:07
IronPythonはオリジナルのPythonの1.7倍の性能、らしい
ttp://www.rubyist.net/~matz/20050802.html#p02

期待age
322デフォルトの名無しさん:2006/01/08(日) 17:48:20
IronPythonとcPythonの互換性テストとかあんの?
323デフォルトの名無しさん:2006/01/08(日) 19:17:00
初心者をうまくひきつけられるような環境とかができればいいね。
324デフォルトの名無しさん:2006/01/09(月) 00:33:14
ActiveStateのVisualPython消えてたのかー。
325デフォルトの名無しさん:2006/01/09(月) 07:39:10
次期Visual StudioにVisual Pythonが採用されるからとか
326デフォルトの名無しさん:2006/01/09(月) 12:49:17
なんか盛り上ってきたな。
とりあえず、互換性だけは死守してほしいもんだ。
Linuxで作ったものが、Winで動かなかったりするのは
悲しいし。その逆も然り。
327デフォルトの名無しさん:2006/01/09(月) 12:59:11
そんなに盛り上がってはいないだろ。
いうなればツール厨状態。プログラミングする人は少ないまま。
328デフォルトの名無しさん:2006/01/09(月) 13:04:34
言語仕様はオープンかつフリーです。
でも、ライブラリはプロプライエタリでーす。

.NETのときに騙されたからなぁ。
329326:2006/01/09(月) 13:21:19
>>327
まぁまぁ。Pythonは入門者用言語でもあるわけだし。
入り口が増えることはいいことだヽ(´▽`)ノ
330デフォルトの名無しさん:2006/01/09(月) 17:39:31
Pythonは入門者用言語だなんて冗談だよね
331デフォルトの名無しさん:2006/01/09(月) 17:57:40
C言語に比べれば入門だろ
332デフォルトの名無しさん:2006/01/09(月) 18:02:48
ラムダとか内包とか使ってゴリゴリ書けば C よりひどいワンライナーになるけどな・・・
333デフォルトの名無しさん:2006/01/09(月) 18:12:42
そんなこと言ってたらC言語なんてインラインアセンブラ書けるし
そうでなくても,複雑なポインタ操作するだけで十分難読になる
334デフォルトの名無しさん:2006/01/09(月) 18:20:06
>>332
Python入門の本やサイトでそれはないだろ
そこまで出来るんだったら入門レベル卒業だよ
335デフォルトの名無しさん:2006/01/09(月) 18:30:53
>>329-334
Python はプログラミングの初学者にとって学びやすい(=入門しやすい)言語だということだよね?
「入門者用言語」というと語弊があると思われ。
336デフォルトの名無しさん:2006/01/09(月) 18:31:06
>>333
インラインアセンブラが書けることは C の仕様に規定されてないので例として不適切
ポインタもそんな悲惨になることは滅多に無いと思うけどなあ
337デフォルトの名無しさん:2006/01/09(月) 18:34:45
>>336
じゃあ,言うまでもない指摘をするけど,
C言語は改行なくてもプログラムになりますから

続きの結論は自分で考えてね
338デフォルトの名無しさん:2006/01/09(月) 18:36:57
>>337
つ indent

分かって言ってると思うけどさ その可読性の無さは本質的じゃないよね
339デフォルトの名無しさん:2006/01/09(月) 18:37:28
休日はレベルが低いですね
340デフォルトの名無しさん:2006/01/09(月) 18:45:25
はいはい頭良いね
341デフォルトの名無しさん:2006/01/09(月) 19:03:53
一意なファイル名をつけたいとき、どの様な名前を付けますか?
例えば、時間と、urlを元に、hashみたいな一意のファイル名を付けたいです。
あんまり00001.jpgみたいな名前ではなくて、xq0b02fb.jpgみたいなので、重複しない名前を付けたいです。
342329:2006/01/09(月) 19:23:22
>>335
そういうことだけど、「入門者用言語」じゃ限定しちゃうからまずいかな。
学びやすい言語って事です。

>>341
import tempfile
を使うべきなんじゃない?
343デフォルトの名無しさん:2006/01/09(月) 19:39:37
ファイルの入力空間を提示しないと回答不能
344341:2006/01/09(月) 19:55:02
>>343 入力空間って何でしょう?

webから、jpgファイルをひたすら集めるアプリを作っていて、MySQLを使って、urlやhtmlとファイル名を関連付けたいです。
select jpgname where url='hogehgoe.html';
みたいなSQLで、xq0b02fb.jpgというファイル名が取れれば、それをアプリで利用できると考えています。
それで一意なファイル名が欲しいなって思いました。
345304:2006/01/09(月) 20:53:44
>>342
レスどうもです
import tempfileって、load_templateとか
Template(file="tempfile").serializeとかの単なるラッパーだと
思ってたんですけど違うもんなんでしょうか?
346デフォルトの名無しさん:2006/01/09(月) 21:43:28
単に一意なだけなら1から順に数字で付ければいいじゃん
347デフォルトの名無しさん:2006/01/09(月) 21:51:20
時間とurlでmd5はいかんの?最初言ってるけど。
348デフォルトの名無しさん:2006/01/09(月) 22:25:47
349デフォルトの名無しさん:2006/01/09(月) 22:39:47
>時間と、urlを元に、hashみたいな一意のファイル名を付けたいです。

>>347の言う通り自己解決してるみたいだけど、
極まれな重複時の振る舞いを考える必要はあるね。

tempfileは条件満たしてないっしょ。
350デフォルトの名無しさん:2006/01/09(月) 22:54:30
MD5の衝突確率だって無視できる程度だろうけど、心配ならSHA-256とか使えば?
351デフォルトの名無しさん:2006/01/09(月) 23:01:38
>>344
MySQLみたいなDBMSを使うんだったら、一意なファイル名とかめんどくさいこと考えずに
1.URLの構造を保ったままどこかのディレクトリにJPGを保存していく
2.そのフルパスをDBに順次格納していく

これでいいんじゃないですかね?
DBのスキーマがちゃんとしてれば、SQLを発行することで複雑な集計もできますし。
手段はさておき、やりたいことを実現するにはこれで十分な気がします。
352デフォルトの名無しさん:2006/01/09(月) 23:03:59
×フルパス
○1.の「どこかのディレクトリ」からの相対パス
353341:2006/01/09(月) 23:24:09
レスどうもです。md5でやってみます。
>>351
レスどうも。なんか、ディレクトリが深くなりそうです。
ディレクトリを含めたファイル名って、最長何バイトでしたっけ?
なんかファイル名が長くなりそうだなって思って。

354デフォルトの名無しさん:2006/01/10(火) 02:14:21
単に一意でいいのなら、
ランダムで名前つけてかぶったらずらすとかやり直すとかすせばいいのでは?
355デフォルトの名無しさん:2006/01/10(火) 02:56:29
いや、だから一意なだけなら1から順に数字つければええやん・・・
356デフォルトの名無しさん:2006/01/10(火) 03:08:06
剥げ堂
ごちゃごちゃした文字列出さないとダメだとか
思ってる馬鹿がこんなにいるとはwww
357デフォルトの名無しさん:2006/01/10(火) 08:06:51
>>>print '一意な名前'
一意な名前
358デフォルトの名無しさん:2006/01/10(火) 08:12:29
>>355-356
ところがどっこい、>341には、
「00001.jpgみたいな名前ではなくて」と
書かれていよう。
これは心の問題なのです。
359デフォルトの名無しさん:2006/01/10(火) 10:57:45
>>358
ロボット対策とか、生成と削除を繰り返したりとかかな。
360デフォルトの名無しさん:2006/01/10(火) 11:42:06
すいません、どなたかPythonによるソケットプログラミングについて解説しているサイト知りませんか?
361デフォルトの名無しさん:2006/01/10(火) 14:03:08
>>360
ライブラリが使いやすすぎて
マニュアルで十分

11.25 asyncore -- 非同期ソケットハンドラ
http://www.python.jp/doc/nightly/lib/module-asyncore.html

必要ないかもしれないが,
ソケットプログラミング自身の解説はこれがおすすめ

UNIXソケットプログラミング入門(1)
http://hp.vector.co.jp/authors/VA003991/kouza/senior/kouza_socket.html
362デフォルトの名無しさん:2006/01/11(水) 00:24:06
>>361
同期でお願いします。
363デフォルトの名無しさん:2006/01/11(水) 08:33:10
>>362
うえのソケットプログラミング入門読んで、socketモジュール使って書けばいいだけ。
selectシステムコールも selectモジュールでOKなので、Cで書かれた例をPythonで
書き換えて実験してみるといい。
仕事は自分でやろうな。
364デフォルトの名無しさん:2006/01/11(水) 11:27:38
>353
ひとつのdirectoryにファイルが溢れる方が、ファイルシステムによっては問題だと思うが。
ところで、エロ画像DBでも作ってんの? :-)
365デフォルトの名無しさん:2006/01/11(水) 19:54:05
プログラムを書くのに,PythonWinを使ってます.
プログラムを修正しながら作っていると,
変数がいつまでも開放されず,結果がおかしくなります.
Pythonに付属しているIDLEのように,プログラム実行の度に変数等を全てクリアするような方法あるでしょうか?
現時点では,PythonWinを再起動するしか方法を思いつかないのですが….
366デフォルトの名無しさん:2006/01/11(水) 20:11:34
reload
367デフォルトの名無しさん:2006/01/11(水) 20:54:36
del
368デフォルトの名無しさん:2006/01/12(木) 06:36:53
無限ループの中でキー入力があったら
それに応じた処理をするにはどうすればいいでしょうか?
369デフォルトの名無しさん:2006/01/12(木) 09:39:52
>>368
コンソールアプリなのか、何らかのGUIツールキット使うのかを示してくれないとなんとも。
370デフォルトの名無しさん:2006/01/12(木) 11:07:18
>>369
すいません.コンソールです.
Python は Cygwin で Python 2.4.1 を使っています.
371デフォルトの名無しさん:2006/01/12(木) 13:08:19
君が知りたいのは kbhit() のことかな?
372デフォルトの名無しさん:2006/01/12(木) 23:22:42
>>371
それです.
でもCygwin版にはmsvcrtモジュールがなくて使えませんでした.
Win32版じゃないと駄目なんでしょうか?
unixではこういう場合どうするんでしょうか?
cursesとか勉強しないといけないんでしょうか?
373デフォルトの名無しさん:2006/01/12(木) 23:48:23
>>372
その通り
374デフォルトの名無しさん:2006/01/13(金) 00:47:56
cygwinならstdinをselectできるんじゃないだろうか。
例えばUNIXなら下のような感じで。
import select, sys, tty
tty.setraw(sys.stdin)
while 1:
 irdy, ordy, erdy = select.select([sys.stdin], [], [], 0)
 if sys.stdin in irdy:
  c = sts.stdin.read(1)
  if c=='q': raise SystemExit
  print 'you typed %s' %(sys.stdin.read(1))
375デフォルトの名無しさん:2006/01/13(金) 01:05:09
OSがWindowsである以上、selectは無理だろ
376デフォルトの名無しさん:2006/01/13(金) 01:06:32
>>375
windowsはPOSIX互換OS
377デフォルトの名無しさん:2006/01/13(金) 01:10:14
>>375
Cygwinのライブラリがエミュレートしてるはず。
378デフォルトの名無しさん:2006/01/13(金) 01:38:32
>374,375
そのコードでうまくいきそうですが少し問題があります.

まず,while の中で
print time.strftime("%H:%M:%S")
time.sleep(1)
としている場合,raw モードにしていると
$ ./test.py
01:28:16
    01:28:17
        01:28:18
こんな風にずれていきます.
これは setraw の代わりに setcbreak を使えば直りましたが,
プログラム終了も raw/cbreak モードが解除されません.

もうひとつはキーをタイプしたとき1回では反映されず,
1回目の入力後はループが停止してしまい,
2回目の入力で1回だけ you typed がプリントされます.

Linux で実行しても同様の現象でした.
どちらの場合も Windows の ck 上でテストしています.
379デフォルトの名無しさん:2006/01/13(金) 03:31:46
#include <curses.h>
int main(int argc, char *argv[])
{
  initscr();
  noecho(); cbreak(); keypad(stdscr, 1);
  printw("Hit any key...\n");
  refresh();
  printw("You typed 0x%02x\n", getch());
  refresh();
  echo(); nocbreak();
  endwin();
}

import curses
stdscr = curses.initscr()
curses.noecho(); curses.cbreak(); stdscr.keypad(1)
stdscr.addstr("Hit any key...\n")
stdscr.refresh()
stdscr.addstr("You typed 0x%02x\n" % stdscr.getch())
stdscr.refresh()
curses.echo(); curses.nocbreak()
curses.endwin()

参考文献:http://www.amk.ca/python/howto/curses/
380デフォルトの名無しさん:2006/01/13(金) 03:47:33
fd = sys.stdin.fileno()
old = tty.tcgetattr(fd)
...
tty.tcsetattr(fd, tty.TCSANOW, old)
じゃダメ?
381デフォルトの名無しさん:2006/01/13(金) 04:29:58
動けば何でもいいです.
382デフォルトの名無しさん:2006/01/13(金) 06:00:01
>>379
cursesのサンプルありがとうございます.
まずはselectでなんとかならないかやってみます.

>>380
最初に属性を保存しといて終了時に戻すということですね.
それで q で終了したときはうまくいきましたが,
Ctrl-C するとまずいですね.
例外処理でなんとかするんでしょうか.

また,キー入力が1回では反映されない問題は依然として同じで,
以下のような挙動をします.
$ ~/test.py
05:54:28
05:54:29 <= 'o' を入力すると停止
you typed p <= 'p' を入力すると表示
05:54:32
05:54:33 <= 'o' を入力すると停止
you typed q <= 'q' を入力すると表示
05:54:34
05:54:35 <= 'q' を入力すると終了
383デフォルトの名無しさん:2006/01/13(金) 06:31:02
import sys, tty

def my_getc():
  fd = sys.stdin.fileno()
  old = tty.tcgetattr(fd)
  try:
    tty.setcbreak(fd)
    c = sys.stdin.read(1)
  finally:
    tty.tcsetattr(fd, tty.TCSANOW, old)
  return c

while 1:
  c = my_getc()
  if c=='q': raise SystemExit
  print 'you typed %s' % c

無駄が気になるかも
384デフォルトの名無しさん:2006/01/13(金) 06:34:28
あ、これじゃブロックしちゃうから駄目なのか。
threadやeventやらと併用すればいちおう。
385デフォルトの名無しさん:2006/01/13(金) 09:05:19
自然数 N が与えられたとき、
1 から N までの数字を N 個並べる組み合わせをすべて
列挙するプログラムは Python で書くとどうなりますか?

例えば N = 3 のとき
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
となるようにです。
よろしくおながいします。
386デフォルトの名無しさん:2006/01/13(金) 09:11:15
解法を教えてくれたら書いてあげます
387デフォルトの名無しさん:2006/01/13(金) 10:16:24
>>385
最近は小学校の宿題もPythonなのか? 凄い時代だな。
388デフォルトの名無しさん:2006/01/13(金) 10:20:30
>>387
小学校で教えるならむしろSmalltalakoきbんぬ。
389デフォルトの名無しさん:2006/01/13(金) 11:22:18
小学校ならLogoだろLogo
390デフォルトの名無しさん:2006/01/13(金) 12:19:32
既出だと思うんだが。
391デフォルトの名無しさん:2006/01/13(金) 14:09:58
392デフォルトの名無しさん:2006/01/13(金) 15:59:52
>>385はwshスレにもあったから
何かの調査だろ
393デフォルトの名無しさん:2006/01/13(金) 16:22:38
しくだいわじぶんでやれ
394デフォルトの名無しさん:2006/01/13(金) 18:55:59
395デフォルトの名無しさん:2006/01/14(土) 00:24:21
Python で http://mixi.jp/home.pl からログインした後のページを
ダウンロードしたいのですが,どうすればいいのでしょうか?
396デフォルトの名無しさん:2006/01/14(土) 00:44:54
urllib2かhttplibかsocketを使ってmixi.jpとhttpでしゃべればいい
397デフォルトの名無しさん:2006/01/14(土) 00:53:25
氏いわく、「まずググれ」
"python mixi"でググったらそのものずばりがトップにでるんですが。
398デフォルトの名無しさん:2006/01/14(土) 00:54:56
mixiのセッション管理はcookie?
だったらドキュメントのcookielibのところに例あるよ
399デフォルトの名無しさん:2006/01/14(土) 01:24:36
>>396-398さん
できました.Python ほど他人のソースコードが読み易い (作業効率のよい) 言語はありませんね.
すばらしい
400デフォルトの名無しさん:2006/01/14(土) 01:31:02
読み易くするのに結構時間使ってるけどね。
私は書き易さPerl、読み易さPythonだな。
401デフォルトの名無しさん:2006/01/14(土) 04:04:14
Perlはぐだぐだになるので書ける気がしない‥‥‥
402デフォルトの名無しさん:2006/01/14(土) 08:10:03
>>401
それ単純に設計なりコーディングが悪いだけです。
403デフォルトの名無しさん:2006/01/14(土) 09:37:28
>>399が言語の記述力の話をしているのに
>>402は記述者の能力の話をしているので
404デフォルトの名無しさん:2006/01/14(土) 11:00:59
誰が書いても同じ形になるのがPythonのアピールポイントの一つだろ。
他の言語でも全員が必ず使う同一ルールの整形ツールがあれば別だけども。
405デフォルトの名無しさん:2006/01/14(土) 11:25:56
俺もPerlは書ける気がしないなぁ。(数十行レベルじゃなくて千行以上の話ね)
ちゃんと自分のスタイルを確立しちゃえばいいんだろうけど。
406デフォルトの名無しさん:2006/01/14(土) 11:33:32
やさしいPythonが出れば絶対にPython人口も増えるのに!
407デフォルトの名無しさん:2006/01/14(土) 12:12:59
Python
比較的新しい言語
好き者がオンラインドキュメント読んで手を出す
使える
ハカーが群がっておもちゃにする
開発が四方八方に進んでゆく
常に発展途上
本を書いてもすぐに時代遅れ
408デフォルトの名無しさん:2006/01/14(土) 13:04:36
Pythonのどこが新しい言語なんだ
409デフォルトの名無しさん:2006/01/14(土) 14:37:13
Python
依然として比較的利用者の少ない言語
410デフォルトの名無しさん:2006/01/14(土) 15:27:10
やらしいPythonの方が人気出るんじゃね?
411デフォルトの名無しさん:2006/01/14(土) 15:30:16
おもしろいPython
略しておっぱい
412デフォルトの名無しさん:2006/01/14(土) 15:56:53
>>410
ど、どんな内容だろう。(わくわく)
413デフォルトの名無しさん:2006/01/14(土) 16:00:48
そういえば結城さんが 「ツンデレPython」 という本を・・・
414デフォルトの名無しさん:2006/01/14(土) 16:00:54
>>412
長大なワンライナーをはじめとしたダーティーハックがてんこもり
415デフォルトの名無しさん:2006/01/14(土) 16:08:51
>>413
まじだ……(今ぐぐった
か、かなわねぇw
416デフォルトの名無しさん:2006/01/14(土) 16:17:02
>>414
確かにやらしいな。
417デフォルトの名無しさん:2006/01/14(土) 16:18:10
常に開発中というのもマイナーの一因だよな
安定した仕様が存在しない言語は
学習と業務適用に難があるから広まらない
418デフォルトの名無しさん:2006/01/14(土) 16:39:24
>>417
逆に聞きたいが、言語仕様が確定してから広まった言語ってなにがある?
俺の知る限りメジャーな言語は時代によって変化していったものしか無いのだが
419デフォルトの名無しさん:2006/01/14(土) 16:43:22
JavaとかPHPとかは開発中だけどメジャーだな

Perl6って今どうなんだろう?
420デフォルトの名無しさん:2006/01/14(土) 16:43:49
>>408
90年代以降だぜ?
421デフォルトの名無しさん:2006/01/14(土) 17:03:52
>>410
表紙は蛇にからみつかれた裸女です。
422デフォルトの名無しさん:2006/01/14(土) 17:23:07
>>421
モンティーパイソンのアニメにありそうだなソレ
423デフォルトの名無しさん:2006/01/14(土) 18:02:45
>>418
アセンブラ・C言語・PASCAL・BASIC
424デフォルトの名無しさん:2006/01/14(土) 18:10:08
>>423
その4例すべてメジャーになって以降に言語仕様がころころ変っている。
425デフォルトの名無しさん:2006/01/14(土) 18:46:16
COBOL
426デフォルトの名無しさん:2006/01/14(土) 18:50:28
機械語
427デフォルトの名無しさん:2006/01/14(土) 20:43:58
>>424
C言語の仕様は登場時から変わってないと聞いたが
428デフォルトの名無しさん:2006/01/14(土) 20:46:54
lispは
429デフォルトの名無しさん:2006/01/14(土) 20:57:47
>>427-428
ワロス
430デフォルトの名無しさん:2006/01/14(土) 21:07:02
>>427
デマだ。K&R初版なんて読んだら卒倒するぞ。
431デフォルトの名無しさん:2006/01/14(土) 21:27:09
>>427
C99 とか知らない?
432デフォルトの名無しさん:2006/01/14(土) 22:07:38
ANSI と K&R とかね。
あと、C は実装が違いすぎるから autoconf とゆーバッドノウハウが。
433デフォルトの名無しさん:2006/01/14(土) 22:30:28
言語仕様は変わっても大丈夫だけど、ベストプラク
ティスがころころ変わる言語は広まらない。
434デフォルトの名無しさん:2006/01/14(土) 23:00:52
Lisp屋の俺から見ればPythonなんて十分広まっている言語だと思うのだが。
435デフォルトの名無しさん:2006/01/14(土) 23:38:57
Lispって.emacsを記述してるヤツですか?
436デフォルトの名無しさん:2006/01/14(土) 23:43:54
クレープ屋の俺から見ればemacs-lispなんて十分広まっている言語だと思うのだが。
437デフォルトの名無しさん:2006/01/15(日) 00:16:12
PHP4 と PHP5 ではオブジェクト指向の書き方で互換性がないけど
438デフォルトの名無しさん:2006/01/15(日) 00:42:16
>>436
クレープのほうが広まってると思う。
439デフォルトの名無しさん:2006/01/15(日) 01:13:57
クレープ屋のが圧倒的に多いだろ
スケール考えろよ
440デフォルトの名無しさん:2006/01/15(日) 01:20:20
Crepe >> (超えられない壁?) >> Python
441デフォルトの名無しさん:2006/01/15(日) 01:30:32
クレープって言語があるんじゃないのか?
442デフォルトの名無しさん:2006/01/15(日) 02:41:09
そこにオレ言語屋登場
443デフォルトの名無しさん:2006/01/15(日) 03:10:16
みんな仕事首になったの?
444デフォルトの名無しさん:2006/01/15(日) 04:12:53
いや,これからなるところだけど?
445デフォルトの名無しさん:2006/01/15(日) 05:37:43
>>382,383,384
結局,curses 使って以下のようにすることにしました.

import curses, curses.ascii, time

def main(stdscr):
  curses.noecho()
  curses.cbreak()
  stdscr.timeout(1000)
  stdscr.scrollok(1)
  while 1:
    stdscr.addstr(time.strftime("%H:%M:%S\n"))
    stdscr.refresh()
    c = stdscr.getch()
    if c == -1:
      continue
    if curses.ascii.isprint(c):
      stdscr.addstr("%c\n" % c)
      stdscr.refresh()
    if c == ord('q'):
      break
  return 0

curses.wrapper(main)
446デフォルトの名無しさん:2006/01/15(日) 17:13:37
隠れGHC(言語の方)学習中の俺がやってきましたよ。
447デフォルトの名無しさん:2006/01/15(日) 17:17:06
戦後GHQとの折衝で苦労した俺もやってきましたよ。
448デフォルトの名無しさん:2006/01/15(日) 17:18:20
>>447
ギブミーチョコレート。とか?
ガイジンサンイッカイ5円ダヨーとか。
449デフォルトの名無しさん:2006/01/15(日) 17:22:41
産後のセックス(NHK教育)を見て半勃起した俺までやってきましたよ
450デフォルトの名無しさん:2006/01/15(日) 19:18:27
いつもシングルクォーテーション使ってるんだけど
シングル・ダブルを使い分ける場合ってどんな時だろ?
451デフォルトの名無しさん:2006/01/15(日) 19:28:58
print "--'こういう時'---"
452450:2006/01/15(日) 19:44:07
その書き方はエラーになると思ってた。
どっちも等価な shortstring だったのか。
ありがとん。
453デフォルトの名無しさん:2006/01/15(日) 20:44:26
めんどくさいんで大抵 """ """ を使ってる
454デフォルトの名無しさん:2006/01/15(日) 22:42:01
"""〜"""の時に先頭1文字が改行だったら、その改行を無視してくれればいいのにと思うのであった
455デフォルトの名無しさん:2006/01/15(日) 23:56:41
そういう時は
"""\
...
...
"""
みたいにしている
456デフォルトの名無しさん:2006/01/16(月) 19:27:18
python に perl -x みたいなオプションないの?
457デフォルトの名無しさん:2006/01/16(月) 19:33:38
なにそれ
458デフォルトの名無しさん:2006/01/16(月) 19:42:10
-x[directory] strip off text before #!perl line and perhaps cd to directory
459デフォルトの名無しさん:2006/01/17(火) 02:27:09
pythonには(正確には)代入はない、と聞いたのですが、
再束縛し放題、束縛ごとのスコープ生成も無いように見え、代入そのものにしか見えません。
どこらへんが代入と違うのでしょうか。
460デフォルトの名無しさん:2006/01/17(火) 02:50:55
ポインタ渡しを代入と言うか否かで答えが変わってくるような…
461デフォルトの名無しさん:2006/01/17(火) 02:56:02
>>459
はじぱいを立ち読みすれば最初の方にちゃんと書いてあるよ。
イデア界にある値に参照を作るみたなイメージ。
462デフォルトの名無しさん:2006/01/17(火) 02:59:09
メモリを書き換えないからかな。
463デフォルトの名無しさん:2006/01/17(火) 03:01:21
>>> a = 1
>>> b = 1
>>> a == b
True
>>> a is b
True
>>> a = 10 ** 10
>>> b = 10 ** 10
>>> a == b
True
>>> a is b
False
464デフォルトの名無しさん:2006/01/17(火) 03:20:42
>>462
C風に言えば、ポインタ変数の割当たったメモリを書き換えまくリングでは。
465デフォルトの名無しさん:2006/01/17(火) 09:46:20
代入ではなくて、名前付けと言ったほうがいいような気がする。
466デフォルトの名無しさん:2006/01/17(火) 12:25:30
ユニコード文字列から実体参照の文字列に変換するにはどうすればできますか?
467デフォルトの名無しさん:2006/01/17(火) 12:36:37
>>463 の
>>> a = 1
>>> b = 1
>>> a == b
True
>>> a is b
True

って代入じゃないの?

つーか、Java厨に言わせれば、
>>> a = 10 ** 10
>>> b = 10 ** 10
>>> a == b
True
>>> a is b
False
だって代入じゃん、て感じ。

言語によらない「代入」の定義ってあんのかね。

←綺麗 変数束縛 = Lispの変数束縛 ⊃ Pythonの変数束縛 = Javaの変数代入 ⊃ Cの変数代入 →汚い
こんな感じか?
468デフォルトの名無しさん:2006/01/17(火) 13:14:30
Scheme だと
代入:
(set! a 10)
(set! f (lambda () a))
(set! a 20)
(f)
=> 20
束縛:
(let ((a 10))
(let ((f (lambda () a)))
(let ((a 20))
(f))))
=> 10
となるので、Python の
>>> a = 10
>>> def f(): return a
>>> a = 20
>>> f()
20
は代入に見える
469デフォルトの名無しさん:2006/01/17(火) 13:27:08
>>> a=1
>>> b=a
>>> a is b
True
>>> a += 1
>>> b
1
>>> a is b
False

aの値を変えたら bの値も連動して変えたいときってどうするの?
470デフォルトの名無しさん:2006/01/17(火) 13:46:18
お話の途中ですが質問です。
Python2.3をアンインストールして、Python2.4をインストールしました。
PythonWinも入れ直して、無事に動くのですが、
Python2.4に付属のIDLEが起動しなくなりました。
具体的には、起動しても何の表示も出ずに、スルーされる感じです。
デバック中に、エラーの部分で変数情報を表示するツール(StackViewer?)を使いたいのですが・・・。
471デフォルトの名無しさん:2006/01/17(火) 15:17:53
>>466

>>> u"∴"
u'\u2234'

ってのを ∴ のような文字実体参照に変換したいってこと?
472デフォルトの名無しさん:2006/01/17(火) 15:19:06
うげ、文字時実体参照は &there4; だ。
473デフォルトの名無しさん:2006/01/17(火) 15:27:47
MutableとImmutableという差が全てなのかと思いきや、

>>> a = [1, 2, 3]
>>> b = a
>>> a.append(4)
>>> b
[1, 2, 3, 4]
>>> a = "Hello World"
>>> b = a
>>> a += "."
>>> b
'Hello World'

感覚としてはこれでOKなんだが、なんか釈然としないな。
474デフォルトの名無しさん:2006/01/17(火) 15:29:27
あ、Pythonの文字列はImmutableだった。
恥ずかし。
475デフォルトの名無しさん:2006/01/17(火) 16:28:59
小さめのオブジェクトはキャッシュに入れといてそこへの参照を返す
って確かはじパイに書いてあった

>>> a = 'spam'
>>> b = 'spam'
>>> a == b
True
>>> a is b
True

>>> a = 'Vorpal Bunny'
>>> b = 'Vorpal Bunny'
>>> a == b
True
>>> a is b
False
476デフォルトの名無しさん:2006/01/17(火) 16:36:29
タコな質問でごめん。 is ってどんな場合に使えばいいの?
なんか上の結果見てると is の結果を有効に使えそうなケースが思いつかないんだけど。
477デフォルトの名無しさん:2006/01/17(火) 17:19:02
>>476
"is"で十分であれば"is"のほうがずっと速い。
478デフォルトの名無しさん:2006/01/17(火) 17:58:42
>>477
漏れは質問者じゃないけど
そぅだったのか。

確かにオブジェクトの内容の一致を取るよりも
オブジェクトのIDの一致取る方が遥かに速そうだな
479デフォルトの名無しさん:2006/01/17(火) 18:24:13
そんなかんじです。
あるいは、番号による表記です。
480デフォルトの名無しさん:2006/01/17(火) 18:26:38
実体参照か値参照かはまったく別物なのに、速い遅いだけで判断するのはいかがなものかと。









なーに、かえって判断力がつく。
481デフォルトの名無しさん:2006/01/17(火) 18:35:32
>>479
"".join(["&#%d;" % ord(c) for c in s])
482デフォルトの名無しさん:2006/01/17(火) 19:45:43
equal と eq の違いだろ
483デフォルトの名無しさん:2006/01/17(火) 23:12:04
>>470
関連付けを確認してみな。
ひょっととするとひょっとしてスペースが言われ忘れてたりする。
484デフォルトの名無しさん:2006/01/18(水) 08:43:13
breakについて質問です。
while <test>
while<test2>
if <test3>
break
else:
<statements1>
else:
<statements2>
else:
<statements3>

<statements4>
がある時、4行目のbreakが実行されたあと実行されるのは何ですか?

プログラミングは大学で習う程度(C言語)の知識しかありません。
よろしくお願いします
485デフォルトの名無しさん:2006/01/18(水) 08:50:04
あれ・・・すいません。
1番目のelseはtest3ifと同じ深さで
2番目のelseはtest2のelseと同じ、
3番目のelseはtest1のelseと同じ深さです
breakはifにネストしてあります。
あとwhile、ifに:を付け足してください
486デフォルトの名無しさん:2006/01/18(水) 09:03:12
試してみたらいいじゃん・・・
487デフォルトの名無しさん:2006/01/18(水) 09:13:49
<statements3>
488デフォルトの名無しさん:2006/01/18(水) 09:39:00
>>486
そうでした・・・

>>487
ありがとうございます。
489デフォルトの名無しさん:2006/01/18(水) 12:21:32
>>483
レスありがとうござました。
ただ、私の知識では何をどうしろ、とおっしゃっているのかちょっとわかりません。
よろしければ、もう少し詳しく教えて頂けますか?
490デフォルトの名無しさん:2006/01/18(水) 12:41:03
>>489
Pythonのコマンドラインからidle.pyを実行したらエラーでる?
491デフォルトの名無しさん:2006/01/18(水) 13:04:40
import hoge と from hage import hoge とではメモリロードに違いとかあるんでしょうか?
492デフォルトの名無しさん:2006/01/18(水) 13:56:50
あるよ
どう使い分けるかってのは置いといて、簡単に見えるとこだけ言うと
前者はモジュールごと取り込むから参照はhoge.hageになるけど
後者はそのオブジェクトだけを取り込むからhageとなる

493デフォルトの名無しさん:2006/01/18(水) 15:31:48
>>490
ありがとうございます。
コマンドラインから実行すると、以下のエラーが出ます。

Warning: configHandler.py - IdleConf.GetThemeDict -
problem retrieving theme element 'builtin-background'
from theme 'my custom'.
returning default value: '#ffffff'

Warning: configHandler.py - IdleConf.GetThemeDict -
problem retrieving theme element 'builtin-foreground'
from theme 'my custom'.
returning default value: '#000000'

これが10回ぐらい繰り返された後、一応Idleの起動はしますが、
何かする度に、コマンドプロンプトにエラーが出ます。
何が原因なんでしょうか?
494デフォルトの名無しさん:2006/01/18(水) 23:42:02
ActivePython 2.4.2 で https 扱うのどうすればいいのでしょうか?
Cygwin 版だとあった、urllib2 の HTTPSHandler がないんですが...
socket の ssl もないし ActivePython ってそーゆーもんなんでしょうか?
495デフォルトの名無しさん:2006/01/19(木) 00:43:16
>>494
つ M2Crypt
496494:2006/01/19(木) 01:06:53
>>495

ありがとうございます。
M2Crypto 試そうとしたんですが、 Python 2.4&Windows は無料
じゃないんですね... というわけで別案を探します。 どうもでした。
497デフォルトの名無しさん:2006/01/19(木) 01:32:09
>496
SVNリポジトリからもらってきたM2Cryptoをコンパイルすればいいんじゃないの?
498デフォルトの名無しさん:2006/01/19(木) 02:59:30
まとめwiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/

これいいですね
でも鯖の調子が悪いのかな
入れない所がいっぱいあるw
499デフォルトの名無しさん:2006/01/19(木) 03:05:53
そういうのは自分で作った方がいいような
500デフォルトの名無しさん:2006/01/19(木) 07:53:13
>>493
何が原因って…。書いてあるじゃん。

自分で作った'my custom'というHilighting Themeの
定義でエラーが出ているんじゃないの?
501デフォルトの名無しさん:2006/01/19(木) 09:58:46
>>500
どうもありがとうございます。
残念ながら、'my custom'に関する定義ファイルに覚えがありません。
そもそも、Idleを立ち上げる際に読み込むべきファイルを編集するだけの技量もないですし…。
何か、他のインストールされたソフトが、どこかで影響しているんですかね。
502デフォルトの名無しさん:2006/01/19(木) 14:58:32
>>501
IDLEの設定はWindowsなら全部%HOME%\.idlercディレクトリにある。
そこのconfig-main.cfgとconfig-hilight.cfgを
見たら何が起こっているかは分かるはず。
503デフォルトの名無しさん:2006/01/19(木) 23:37:59
すいません。助けてください。

Googleは検索文字列をutf-8に変換するとのことで、例えば『森博嗣』は『%E6%A3%AE%E5%8D%9A%E5%97%A3』となります。
なにのPythonだと、

>>> a = "森博嗣"
>>> a
'森博嗣'
>>> a.encode("utf-8")
'譽ョ蜊壼離'

となってします。Googleのような文字列に変換するにはどうしたらよいでしょうか?
またスクリプト内でエンコードを行う場合、スクリプト自体のエンコーディングも関係するのでしょうか?
504デフォルトの名無しさん:2006/01/19(木) 23:58:01
urlencodeで探ればよさそう。
505デフォルトの名無しさん:2006/01/20(金) 00:01:34
>>503
ファイルがShift JISだと仮定して、
import urllib
a = unicode('森博嗣', 'Shift-JIS')
print urllib.quote(a.encode('utf-8'))
506デフォルトの名無しさん:2006/01/20(金) 00:15:15
>>> import urllib
>>> a =
>>> urllib.urlencode({'q':u'森博嗣'})
'q=%E6%A3%AE%E5%8D%9A%E5%97%A3'

507503:2006/01/20(金) 00:19:04
実際なにが起こっているのか良くわかりませんが、ご指摘の方法で解決いたしました。
ありがとうございます。
508デフォルトの名無しさん:2006/01/20(金) 00:24:05
>>503
『森博嗣』→『%E6%A3%AE%E5%8D%9A%E5%97%A3』 のように、
「Googleのような文字列に変換する」操作は 「URLエンコード」という名前の操作 である事も
知っておいた方がいいと思う。
509デフォルトの名無しさん:2006/01/20(金) 01:33:43
初めてワンライナーを一行野郎と呼ぶことを知った35さいの冬…
510デフォルトの名無しさん:2006/01/20(金) 09:38:46
カタカナで書かれると列車の名前っぽくない?
511デフォルトの名無しさん:2006/01/20(金) 09:53:41
女の子の場合は一行乙女で。
512デフォルトの名無しさん:2006/01/20(金) 12:11:40
>>510

つ伊勢志摩ライナー
513デフォルトの名無しさん:2006/01/20(金) 17:32:52
ワンライナーワイランナー
514デフォルトの名無しさん:2006/01/20(金) 20:12:19
一筆書き?

とりあえず動けばいい一発ネタのことを「ワンライナー」と思っていた。
515デフォルトの名無しさん:2006/01/20(金) 20:37:52
ワンライナー≒便所の落書き
516デフォルトの名無しさん:2006/01/20(金) 20:59:44
2chの書き込みとほぼ等価ってことか
517デフォルトの名無しさん:2006/01/20(金) 23:23:52
二度と読み返さないという点では同じかも。
518デフォルトの名無しさん:2006/01/21(土) 00:15:10
泣きなさーいー、わんらいなーぁさぁい♪
519デフォルトの名無しさん:2006/01/21(土) 00:53:05
0点。退場。
520デフォルトの名無しさん:2006/01/21(土) 02:41:29
本体の機能はシンプルに、使いたい拡張は自発的に導入&可読性重視
そんな主義に共感して、機械伯爵の読み物を軽く理解してみようとしたが、
#4で頭脳の限界を感じた。
職業で必要に迫られていない数学ダメだった30歳には、あの生徒役の登場人物の
センスが信じられない。
521デフォルトの名無しさん:2006/01/21(土) 15:03:56
てゆーか、あの文章が可読性低い。
スタイルシートぐらい使ってほしい。
522デフォルトの名無しさん:2006/01/21(土) 16:28:34
件の読み物はしらんが、公式?のリファレンスで入門は十分だと思う。
523デフォルトの名無しさん:2006/01/21(土) 17:25:21
Pythonハンドブックの人、PDF版つくってくれないかなー。
印刷して使えたら便利なんだけど。
524デフォルトの名無しさん:2006/01/22(日) 22:24:26
>>523
個人的にWindows用のActive Pythonマニュアルが比較的見やすくて印刷できる形式にも
なっているから気に入っているんだけど。HOWTOも結構あるし。
しかし、リファレンスの理想はJavaDoc形式かも。Pythonのは総じて見難い(気がする、どうせソース見るからええけど)
525デフォルトの名無しさん:2006/01/22(日) 23:57:09
Active Python for win32 のマニュアルって、Python.orgの公式マニュアルじゃないの?
526524:2006/01/23(月) 23:45:41
>>525
プラスαが書いてある。キーワード検索などもできるようになっていたりする。
まあ、英語だけど中学英語と片手辞書で読めるから。
527デフォルトの名無しさん:2006/01/24(火) 14:57:38
これですね。
http://aspn.activestate.com/ASPN/docs/ASPNTOC-APYTH2.4.0/

ざっと見たところ、ActivePythonの付属マニュアルは、Python.org版に付いてくるオフィ
シャルドキュメントに以下の分が追加されてる模様。

ActivePython 2.4 - Online Docs と Python.orgの差分
- Python COM

- PyWin32 Documentation
- Win32 API
- ISAPI filters and extensions

- ActivePython User Guide
- Installation Guide
- Release Notes
- What's Included
- Getting Started
- FAQ

- Helpful Resources
- Non-Programmer's Tutorial for Python
- Dive Into Python
- Python FAQs
- Python HOWTOs
- Python Enhancement Proposals(PEPs)
- Pythonwin and win32ui
528デフォルトの名無しさん:2006/01/24(火) 15:00:04
リスト字下げして書いたのにめちゃくちゃ orz
529デフォルトの名無しさん:2006/01/24(火) 23:37:16
三項演算ってどうなったんだろ?2.5でのるはずなんだけど。
530デフォルトの名無しさん:2006/01/24(火) 23:48:46
ちょうど良くこんな記事拾った
http://brianray.chipy.org/Python/pythonconditionalexpressions.html

ちなみに三項演算子(trinary operator)じゃなくて条件式(conditional expression)ね。
531デフォルトの名無しさん:2006/01/25(水) 00:06:08
>>530
What's New in Python 2.5をざっとよんだだけでした....
532デフォルトの名無しさん:2006/01/25(水) 01:37:44
27 ** (1 / 3)が1ってなんでだよ…。
()の中をどっちか小数点にすると、ちゃんと3になるんだが納得できん。
533デフォルトの名無しさん:2006/01/25(水) 02:03:07
1/3 == 0だから
534デフォルトの名無しさん:2006/01/25(水) 02:10:02
pyid3tagを使って大量のmp3ファイルのメタデータを読み込んだら、
2200曲オーバーぐらいのところで
Fatal Python error: deallocating None
とか出て終了しちゃいました。
どうやら参照カウントが問題らしいとは分かったのですが、
Python/C API リファレンスマニュアルを見ても、そもそもCが分からんので
どこが悪いのか分かんないです。どなたか教えていただけないでしょうか。
535デフォルトの名無しさん:2006/01/25(水) 02:26:14
>>534
作者にバグを報告して直してもらえばいいジャマイカ。
536デフォルトの名無しさん:2006/01/25(水) 04:39:03
もっと怪しいところを絞り込もうぜ
537デフォルトの名無しさん:2006/01/25(水) 09:09:44
Py_None返してるとこでPy_INCREFするようにしたら、
ファイル一つ読む毎に4ぐらい減ってたのが1になった。
まだ見落しがあるみたいだが、ま、いっか。
538デフォルトの名無しさん:2006/01/25(水) 09:27:34
>>530
ナイス記事ポインタ。
しかし、なんか気持ち悪いな。
文は値を持たないっていうPythonの大原則が・・・・。
これやるんだったら、代入文も値持つようにしてくれないと、納得いかないよ!
539デフォルトの名無しさん:2006/01/25(水) 16:50:58
>>530のリンク先にあったリンク先にこんなのがw
http://www.pycontest.net/job
http://www.pycontest.net/ranking/
540デフォルトの名無しさん:2006/01/25(水) 21:01:47
とにかく一番短く書いたやつが優勝というのはいかがなものか。
541デフォルトの名無しさん:2006/01/25(水) 22:17:43
質問です.
最近になってようやく2.4をいれてみたんですが,
デコレータってみなさんどんな時に使ってますか?
用例をググッてみても型チェックやログ取りぐらいしか
なくて,いまいちどんな時につかうといいのかなと、、、
542デフォルトの名無しさん:2006/01/25(水) 22:36:55
ごめんなさい僕つかってません、に一票いれときます。
543デフォルトの名無しさん:2006/01/25(水) 22:44:51
Javaのannotationと同じような物だね。
O/RマッパとかとかXMLマッパとか作ると面白いのではないかと思う。
544デフォルトの名無しさん:2006/01/25(水) 22:56:33
ていうか引数に関数を取って関数を返す関数ってあんまつかわね
545デフォルトの名無しさん:2006/01/25(水) 23:50:21
そうですか,あまり使かわないですか。。。
どこかで,デコレータつかうとアスペクト指向っぽくなる
ってあったんですが,AOP自体あんまり理解してないもので、、、

たとえば,WyPy(pythonでかかれたコード最小のwiki)の作者
のSean B. Palmerさんが書いてるAzimuthっていうblosxomに
似たblog用のスクリプトを見つけたんですが,

ttp://inamidst.com/inside/notes/azimuth

この中でdispatcherって関数がデコレータとして使われてる
るんですが,別にデコレータにしなくてもいいんじゃないかと、、、
546デフォルトの名無しさん:2006/01/25(水) 23:57:04
>>538
文に見えても、式ですから。
547532:2006/01/26(木) 02:52:55
>533
ホントだ。目から鱗。この時点でもう、プログラムが怖くなるよ。
これはbinaryの特性で「全部の数値(小数)は2のべき乗で作ってる」のが
原因なんだろうかね。他のスクリプト言語でもこんなんだったら、
こういうものとして覚悟するしかないかぁ。
548デフォルトの名無しさん:2006/01/26(木) 02:57:13
>>547
スクリプト言語では少数派かもしれんが、普通のプログラム言語(Cなど)
では一般的挙動。だから注意するのが普通のプログラマの常識。
549デフォルトの名無しさん:2006/01/26(木) 02:59:53
そういえば//の導入に伴ってPython 3.0?では挙動が変わるんだっけか。
550デフォルトの名無しさん:2006/01/26(木) 04:57:35
WinXP,Python2.3使ってます。
os.environ['QUERY_STRING']以外にGETで渡された内容を取得する方法はないですか?
551デフォルトの名無しさん:2006/01/26(木) 07:59:26
>>546
だから、>>538は一見文に見えちゃう式が気持ち悪いと言っているんだと思うんだけどな。
リスト内包とか、ジェネレータ式は [ ] とか ( ) で囲まれているから、まだ目視ですぐに
判断できるんだけど、あれは目印が少なすぎるかと。
552デフォルトの名無しさん:2006/01/26(木) 23:54:42
import cgi
or
import mod_python
553デフォルトの名無しさん:2006/01/27(金) 02:00:41
>549

// ってコメント?

>547

Write Great Codeを嫁。
554デフォルトの名無しさん:2006/01/27(金) 02:10:29
>>553
//は切捨て割り算だよ。
現状(2.4)では
>>> 1/3, 1//3, 1.0/3, 1.0//3
(0, 0, 0.33333333333333331, 0.0)
のようになるが、Python 3あたりで1/3は1.0/3と同じになる予定なので
明示的に切り捨てたいときは//を使っておきましょうってことになってる。
555デフォルトの名無しさん:2006/01/27(金) 02:12:42
>>554
ちなみに2.4でも
>>> from __future__ import division
>>> 1/3, 1//3, 1.0/3, 1.0//3
(0.33333333333333331, 0, 0.33333333333333331, 0.0)
となる。
556デフォルトの名無しさん:2006/01/27(金) 17:11:59
質問です。
XAMPP
http://www.apachefriends.org/en/xampp-windows.html


xampp-python-addon-2.3.5
http://prdownloads.sourceforge.net/xampp/xampp-python-addon-2.3.5-installer.exe?download

をインスコして何の設定もいじらずにブラウザでlocalhost/python/index.pyにアクセスしてみてもpythonが動いてくれてないみたいなんですが・・・
どなたかどこら辺をいじれば動くようになるかご存じないでしょうか・・・
557デフォルトの名無しさん:2006/01/27(金) 18:35:12
IronPython 1.0 Beta 2出てんじゃん
558デフォルトの名無しさん:2006/01/27(金) 19:31:27
>554

えー。ヘンな仕様。
切り捨てであることを前提に書いてるコードなんて山ほどあると思うが、
どうすんだろ。forとか。
559デフォルトの名無しさん:2006/01/27(金) 19:46:13
むしろ//が小数除算だと思ってた...
560デフォルトの名無しさん:2006/01/27(金) 19:50:50
そのうち有理数サポートが入ったら、1/3は浮動小数点数0.333...じゃなく
3分の1になるんじゃなかったっけ。
561デフォルトの名無しさん:2006/01/27(金) 19:51:02
>>558
Python の未来のことを考えて,自然な割り算に自然な割り算記号を割り当てたかったんだろうな.
過去書かれたコードはとりあえず __past__ みたいなので凌いでもらって.

仕様のヘンさで言うと,1/3 が 0 になるのは相当気持ち悪く思えたなあ.今はだいぶ慣れちゃったけど.
562デフォルトの名無しさん:2006/01/27(金) 23:59:15
Write Great Codeね。高いけど買うわ。切り捨てだから0だったんだね、忘れてたw
563デフォルトの名無しさん:2006/01/28(土) 00:02:31
>>561
python以外の言語経験は?
564デフォルトの名無しさん:2006/01/28(土) 00:04:34
VHLLの入門者がハードウェアとの関係まで勉強する必要性ってどーよ。
知識は無駄じゃないにせよ、Cとかほど必須じゃねえしよ。
あんま手を広げても、一杯一杯になるのがオチじゃねえの。
あせんねえで無理せずコツコツやってけば、十分じゃね?まあ、他人事だがよ。
565デフォルトの名無しさん:2006/01/28(土) 00:18:18
今日初めて知ったトリビア。

IBM PredesktopにはPythonが含まれている。

既出だったらスマソ。
566デフォルトの名無しさん:2006/01/28(土) 15:04:22
よしパパ、有理数を扱うための新しいnotation

\[ \frac{1}{3} \]

を提案しちゃうぞー。
567デフォルトの名無しさん:2006/01/28(土) 15:15:10
>>566
そんな打ちにくくて読みにくいのは嫌だ。
568デフォルトの名無しさん:2006/01/28(土) 16:09:27
どうみてもLaTeXです
h(ry
569デフォルトの名無しさん:2006/01/29(日) 00:09:46
質問です。
python.exe -c "print '%02d' % 3"
このコマンドを実行したらこんなエラーが出ます。
Traceback (most recent call last):
File "<string>", line 1, in ?
TypeError: not all arguments converted during string formatting
対話モードだったらちゃんと実行されるのですが・・・
何が原因なんでしょうか?
570デフォルトの名無しさん:2006/01/29(日) 00:15:56
>>569
うちでは動くぞ。何か変なシェルを使ってエスケープされてるとか。
試しに echo "print '%02d' % 3" とかやってみれば?
571デフォルトの名無しさん:2006/01/29(日) 00:23:24
>>570さん ありがとうございました。
Nyacusが%0をエスケープしていたようです。
cmdではちゃんと動きました。
572デフォルトの名無しさん:2006/01/31(火) 01:20:02
x = 'String'のあと、
x<enter>だと"String"と出て、print xだとそのままStringと出るのは面白い。
なんか使い分けの使い道(??)ありそうだ。
ところでみんな、=とかの前後って必須じゃない時も半角スペース入れてる?
573デフォルトの名無しさん:2006/01/31(火) 01:23:38
>>572
PEP 8 -- Style Guide for Python Code
http://oldriver.org/python/pep-0008j.html
574デフォルトの名無しさん:2006/01/31(火) 01:30:43
>>572
ま、好き好きなんだけど、故意に独自のスタイルにして得られるものはほとんどない。
これから学ぶならば>>573のような標準的スタイルに慣れたほうがいいと思う。
575デフォルトの名無しさん:2006/01/31(火) 01:38:13
じゃあ全てのコメントは英語で書かないといけないね。
576デフォルトの名無しさん:2006/01/31(火) 01:42:07
そういうこと。
577デフォルトの名無しさん:2006/01/31(火) 01:53:00
>>575
ストレス無く可能ならばそのほうがいい。
君のプログラムを読むのは日本人だけだと限定する理由はあまりないでしょ?
578デフォルトの名無しさん:2006/01/31(火) 02:42:13
Guidoだってオランダ語で書かずに英語書いているじゃん。
579デフォルトの名無しさん:2006/01/31(火) 06:29:37
Why don't you speak English in this thread too?
580デフォルトの名無しさん:2006/01/31(火) 06:48:33
Guidoだって英語で書かずにオランダ語書いているじゃん。
581デフォルトの名無しさん:2006/01/31(火) 07:54:11
>>575 みんなそうしてるじゃん。
582デフォルトの名無しさん:2006/01/31(火) 09:01:15
きょうび、一行80文字ルールは無理があると思うのだが‥‥‥。
583デフォルトの名無しさん:2006/01/31(火) 13:33:16
>>582
そうでもないよ。個人的には守ってる。
584デフォルトの名無しさん:2006/01/31(火) 13:35:45


  >>584から日本語のレスは禁止です


 
585デフォルトの名無しさん:2006/01/31(火) 14:04:00
na、nandatte-!?
586デフォルトの名無しさん:2006/01/31(火) 14:05:23
>>585
それ日本語だし。w
というわけで早くも解禁。
587デフォルトの名無しさん:2006/01/31(火) 15:29:38
カタ、ミシャラーニ ベンオ ト サタミミ?
588デフォルトの名無しさん:2006/01/31(火) 16:36:22
気の毒な日本人ばかり.
589デフォルトの名無しさん:2006/01/31(火) 21:23:35
I was pen.
590デフォルトの名無しさん:2006/01/31(火) 21:33:51
Sorry, Japanese only.
591デフォルトの名無しさん:2006/01/31(火) 21:52:45
>>589
Reincarnated to a human being? To a computer?

592デフォルトの名無しさん:2006/01/31(火) 22:56:52
>>591
I am penis.
593デフォルトの名無しさん:2006/01/31(火) 23:16:52
A : Is this a pen?
B : No, that is an apple.
A : Oh! sorry, apple...this is an apple...
B : Yes, that is an apple.
A : By the way, is this a pen?
B : No!!! That is an apple!!
A : Oh! sorry! This is an apple!!
B : Yes, good. you are smart. good..good.
A : Yes, this is an apple...But is this a pen?
B : Nooo!!! that is an apple!! apple!! apple!!!
A : Pen!! this is a pen!!! pen!!! pen!!!
B : NOOOOOOOOO!! NO!!!!! Fuck!!! apple!! apple!! apple!!! this is an apple!!!!!
A : Fuck!!This is Fucking pen!! pen!! Fuck pen!!
594デフォルトの名無しさん:2006/01/31(火) 23:24:29
>>593
9行目ぐらいでワロタ
595デフォルトの名無しさん:2006/01/31(火) 23:36:52
壮絶なキレ合いワロスw
596デフォルトの名無しさん:2006/01/31(火) 23:49:41
おめーらくだらねぇ論議してるヒマあったら早くWxPythonとTwisted使ってPython版かちゅーしゃ作れよ!
うるせーIronPython野郎!
キレェオだろ?お前なんで所詮はキレェオなんだろ?早く言えよ!カミングアウトしちまえよ!
抜くぞ?いいのか?抜かれちまうぞ?本当にいいんだな?絶対だな?
証拠出せよ!早く出せよ!
Numericとnumarrayの互換性が無い事くらいド素人でもしってるんだよ!
それを何がPyPIだ?Pychinko以下!Pymanko未満!タプルたんに土下座して謝れよ!馬鹿!
日9ゲそえよ!見えねーじゃねぇだんろ?う?あ?あ?あ?
597デフォルトの名無しさん:2006/02/01(水) 00:26:02
あっぷるぺん>>596
598デフォルトの名無しさん:2006/02/01(水) 00:32:37
>>592
so tiny...
599デフォルトの名無しさん:2006/02/01(水) 01:37:27
>>593
やべ。天才的だw
600デフォルトの名無しさん:2006/02/01(水) 02:30:19
A : これってペンだよな?
B : ちげーよ。 りんごジャンw。
A : おー わりー, リンご...これはりんご...
B : そう りんご。
A : あのさ, これペンだよな?
B : ちげーって!!! りんごだって!!
A : おー! わりー!! りんごだ!!
B : そうだよ わかってんジャン。 イイジャンイイジャン
A : そう りんごだ...ペンだよな?
B : ハァァァァ!!! リンゴジャン!! リンゴ!! リンゴ!!!
A : ペンだ!! これぺンダ!!! ペン!!! ペン!!!
B : ハァァァァァァァァァァ!! ちっげって!!!!! 調子こいてんじゃねーぞ!!! リンゴ!! リンゴ!! リンゴ!!! リンゴ!!!!!
あとよろしく
601デフォルトの名無しさん:2006/02/01(水) 02:36:53
リンゴがSPAMってこと?
602デフォルトの名無しさん:2006/02/01(水) 02:53:46
笑いのツボが分かんないんだが、MLに似た趣旨のスレッドでもあるのか?
603デフォルトの名無しさん:2006/02/01(水) 02:57:13
関係無いけど、Apple ][ と Pentium!!! の罵り合いに見えた。
604デフォルトの名無しさん:2006/02/01(水) 03:05:14
以上コピペですた
605デフォルトの名無しさん:2006/02/01(水) 03:25:17
>>603
えらい時代の違うもの同士が罵り合ってるんだな。w
606デフォルトの名無しさん:2006/02/01(水) 03:47:48
MacBook持ってるマカーと素人の会話だろ。
607野暮チンですが:2006/02/01(水) 10:02:11
>602
たしか中学英語の教科書で一番最初にでてくるのが
>593(の前半部)みたいなのがあったんで
それを思い出して笑う、と
608デフォルトの名無しさん:2006/02/01(水) 12:27:05
A : これはペンでございましょうか?
B : いいえ、リンゴでございます。
A : これはこれは!申し訳ありません。リンゴ…これはリンゴでございますね。
B : ええ、リンゴでございます。
A : ところで、これはペンでございましょうか?
B : いえいえ! それはリンゴでございます!
A : これはこれは!申し訳ありません! これはリンゴでございましたか!
B : ええ、そうでございます。ご賢明であられますね。天晴れ天晴れ。
A : なるほど、これはリンゴでございます…しかし、ペンでございますね?
B : いえいえ!! これはリンゴでございます!リンゴ!リンゴ!!
A : ペン!これはペンでございます! ペン!ペン!!
B : いえいえいえいえいえ! お死にあそばせ! リンゴ!リンゴ!リンゴ! リンゴでございます!!!
A : ご逝去なさって!! これはペンでございます! ペン! ペン!!!
609デフォルトの名無しさん:2006/02/01(水) 17:08:10
なんで標準的な記述方法の流れがリンゴとペンに化けるんだよぉw
610デフォルトの名無しさん:2006/02/01(水) 17:47:28
pythonに関係のある何かを揶揄してるの?
そうでなきゃ、このスレと関係もないしそもそも面白くもない。
611デフォルトの名無しさん:2006/02/01(水) 17:50:07
>>575から発展(脱線?)した英語ネタだな。もはやほとんどPythonには関係ない。
612デフォルトの名無しさん:2006/02/01(水) 17:53:28
中1の英語教科書ネタってパイクンソンクンってお笑い芸人がやってな
613デフォルトの名無しさん:2006/02/01(水) 20:30:34
Python と言えば、 The Hungarian Phrasebook sketch を思い浮かべた。
614デフォルトの名無しさん:2006/02/01(水) 22:50:56


※このスレ住人の英語力は厨房レヴェルです

 
615デフォルトの名無しさん:2006/02/01(水) 22:55:13
そうそうネイティブの厨房レベルだ
616デフォルトの名無しさん:2006/02/01(水) 23:03:08
ぺらぺらでやんす
617デフォルトの名無しさん:2006/02/02(木) 03:51:52
CraftLaunchExをいじりはじめたらPythonが面白くてたまらない
618デフォルトの名無しさん:2006/02/02(木) 04:19:00
うすっぺらみたいな?
619デフォルトの名無しさん:2006/02/02(木) 15:11:34
Pythonが組み込まれてるソフトウェアって、どんなのがあるの?

* Blendar
* OpenOffice
* KaaEDIT

これくらいしか知らん。たしかGimpでもつかえるとか聞いたんだが。
620デフォルトの名無しさん:2006/02/02(木) 15:40:42
> たしかGimpでもつかえるとか聞いたんだが。

使えるよ。
Gimp-Python (http://www.jamesh.id.au/software/pygimp/) とゆーのがあって
Gimp のプラグインを Python で書くことができる。

同様のことが Skencil (http://www.skencil.org/) でも可能だけど
こちらは Skencil 自体が Python で書かれているので、
「Python が組み込まれている」というとちょっと語弊があるかも。

http://ja.wikipedia.org/wiki/Python の「Pythonが組み込まれている製品」の
項目も見るべし。
621デフォルトの名無しさん:2006/02/02(木) 15:40:47
英語版のWikipediaとか見れば良いじゃん
622デフォルトの名無しさん:2006/02/02(木) 15:41:47
むむ、閉じ括弧がURLの一部になっちゃった。スマソ
623デフォルトの名無しさん:2006/02/02(木) 15:51:54
Iriaにもあったけど、IrvineでJavaScriptに乗り換えられた
624デフォルトの名無しさん:2006/02/02(木) 15:59:32
>>619
Poserの拡張言語がPythonだよん
http://www.e-frontier.co.jp/poser/index.html
625デフォルトの名無しさん:2006/02/02(木) 17:06:47
626デフォルトの名無しさん:2006/02/02(木) 19:22:06
確かTrueSpaceもPython使えたよね

ってググったらWikiPediaに書いてあったw
ttp://ja.wikipedia.org/wiki/Python
627デフォルトの名無しさん:2006/02/02(木) 22:13:33
PaintShopProとか
Metasequoiaとか
Nokiaのケータイとか……あ、これハードウェアか
628デフォルトの名無しさん:2006/02/02(木) 22:31:30
Poserもね
629デフォルトの名無しさん:2006/02/02(木) 23:50:21
そういやNDSでPython動かそうってのは、結局どうなったんだろう。
前に記事を目にした時は、エミュレータでは問題なく動くのに、実機ではなぜか
安定しないって話だったけど。
630デフォルトの名無しさん:2006/02/03(金) 00:36:30
いまいちメリットとデメリットが見えないけど
(他環境でズレるズレないとか?)、tab押下時に
埋め込むコードは、半角スペース4(8)個と
タブ文字とあり、前者推奨混ぜるな危険。
選べないようなエディタもあると思うんだが、
俺が使ってるのを調べたらその設定があった。安心。
ただ、python用の色分け設定(分かりづらいね。
でも正式な呼び方分かんない)がないんだ。
色分けしてくれるけど、IDLEは重すぎる。
自作できるけど、使える三色を何に割り振ると
いいのか考えると億劫だ。
631デフォルトの名無しさん:2006/02/03(金) 01:01:38
ttp://ja.wikipedia.org/wiki/Python
のリスト見たけど、3DCG用のソフトに偏ってるな。
632デフォルトの名無しさん:2006/02/03(金) 01:09:16
公式wikiあさったら、Pythonできるソフトウェアのリストをはっけんした。
http://wiki.python.org/moin/AppsWithPythonScripting

# これもPythonParadoxっていうんだろーか... いわないよな...
633デフォルトの名無しさん:2006/02/03(金) 01:40:51
>>631
天下のILM御用達だからな。w
昔はSymbolicsとかLisp系が牛耳ってた分野だ。
634デフォルトの名無しさん:2006/02/03(金) 02:35:08
他言語で宗教論争になるハードタブとソフトタブ関連でも
平穏なのがpythonのいいところかもね。
Guidoに次善と言われつつも、俺はハード派だけどさ。
635デフォルトの名無しさん:2006/02/04(土) 18:31:51
すいません。mod_pythonについて質問です。

通常、httpd.conf内に
<Directory "D:/http/Apache2/htdocs/python">
  AddHandler mod_python .py
  PythonHandler mod_python.publisher
  PythonDebug On
</Directory>
と記述し『action.py』というスクリプトに関数『search』があるとすると、
ブラウザからはhttp://localhost/python/action.py/search?mode=aaa&type=bbb
という形でアクセスすると思います。

それを『スクリプト名+.py』ではなく,
http://localhost/python/action/search?mode=aaa&type=bbb
とすることは出来ないでしょうか?

要は『.py』をなくしたいのですが、可能でしょうか?
636デフォルトの名無しさん:2006/02/04(土) 18:46:06
つ RewriteEngine
637デフォルトの名無しさん:2006/02/04(土) 19:24:33
大学生の春休みは長いぜーふぉー!
ということでPythonはじめます!
チュートリアル見てきますね!
638635:2006/02/04(土) 19:42:21
>>636
ありがとうございます。このモジュールで出来そうです。
が、試したところ上手く行かないので、つづきはApacheスレで聞いてきます。
639デフォルトの名無しさん:2006/02/05(日) 03:41:37
WinXP、python 2.4.2、Japanese Codec Packなしの環境下で、

arg = u"some.exe 日本語名.txt"
pin, pout = os.popen4 (arg, "t")

とやると、some.exe には "譌・譛ャ隱槫錐.txt" というふうに、
引数の"日本語名.txt"が化けて渡されてしまうんだけどなんで?
sys.getdefaultencoding () は utf-8 で、
sys.getfilesystemencoding () は mbcs になってるんだけど関係あるかな
640デフォルトの名無しさん:2006/02/05(日) 05:14:48
>>637
学生時代に休みを数えたら半年あった。
今は土曜日も休みだから、7ヶ月近くが休みなのかな。
641デフォルトの名無しさん:2006/02/05(日) 12:17:41
>>639
2.4以降ならCJKCodecsがデフォルトで入っているので、
os.popen4(args.encode(sys.getfilesystemencoding()), "t")
とすればいいのではないかな。
642デフォルトの名無しさん:2006/02/05(日) 12:41:35
>>639
プログラムの冒頭に
# -*- coding: ms932 -*-
と書くべし。
643デフォルトの名無しさん:2006/02/05(日) 12:50:46
>>639
ソースの最初の行に
# -*- coding: Shift-JIS -*-
って書くと直ったりしない?
(ソースをShift JISで書いている場合)
644デフォルトの名無しさん:2006/02/05(日) 12:51:27
ありま。かぶった。
645637:2006/02/05(日) 13:40:52
チュートリアルもいいけど,
tibet.que.ne.jp/otani/2004python/2004pythonmenu.html
こっちもよさげです.Cをかじった程度なのでそれを超えるように頑張ろう.

shis-jisじゃなくてeuc-jpで書いてもいいのでしょうか.
646デフォルトの名無しさん:2006/02/05(日) 15:09:26
>>645
PythonやるならPEPは全部見ておいた方がいいお。

Style Guide for Python Code
http://www.python.org/peps/pep-0008.html

Defining Python Source Code Encodings
http://www.python.org/peps/pep-0263.html
647デフォルトの名無しさん:2006/02/05(日) 15:50:36
>>> '20060101' > '2005'
True
>>> '20060101' > '2007'
False

この動作はずっと保証されると考えてよいのかな
648デフォルトの名無しさん:2006/02/05(日) 15:55:37
てゆーか、保証されるか迷うくらいなら別の確実な方法をとるべきだと思うな。
649デフォルトの名無しさん:2006/02/05(日) 16:03:05
書いてから気付いた。
ただの文字列ソートとかに使われる規則そのままか。
時刻だからとか、文字列の長さがとか考えすぎた。
お騒がせ致した。
650639:2006/02/05(日) 16:57:23
>>641-644 ありがd

冒頭にはいつもUnicode宣言しているので大丈夫と思う
# -*- coding: utf_8 -*-

あと args.encode(sys.getfilesystemencoding()) を使うと、
日本語名.txt では問題ないんだけど、中国語名 だと
"cp932 コーデックはエンコードできません:不正なバイト列です"
と怒られるんだよな

やっぱり、try 文を多用してそれぞれの文化圏の文字に
合わせてコーデックを指定してあげないといけないのかな?
651639:2006/02/05(日) 20:24:26
何がやりたいかと言うと、テキストエディタ xyzzy のような
インターフェースと拡張性をもつ、ファイラ他、いろんな機能を
もったアプリを作ってみたいのね

で、それにTTA (オーディオファイルコーデック) のフロントエンド機能を
実装しているところなんだけど、>>650 に書いた問題で1週間悩んでるんです

もしよかったらソースを見ていただいて、何か良いご指摘いただけそうで
あればお願いします (解凍パスはpython)
http://sund1.sakura.ne.jp/uploader/source/up3763.zip

wxPython が必要。main.pyw 実行後、シェルに「tta.FrontEnd ()」と
打つと問題の小窓が開きます
652デフォルトの名無しさん:2006/02/05(日) 22:01:27
うごかねーんだけど.(OSX Python2.3.5 wxPython 2.5) あと,#===== にかなり引いた.

Traceback (most recent call last):
 File "main.pyw", line 76, in ?
  execfile (siteinit)
 File "./site/siteinit.py", line 9, in ?
  import tta
ImportError: No module named tta

それはそれとして,wxPython-unicode で GetText したら,unicode オブジェクトじゃなくて utf-8 の string が返ってくるんじゃないの.ひょっとして wxPython-ansi 使ってるのかな?
653デフォルトの名無しさん:2006/02/05(日) 22:32:36
>>651
Windows では unicode オブジェクトをそのままファイル名として
open() に渡せるので、encode() する必要はないのでは?
654639:2006/02/05(日) 22:59:47
>>652
sitecustomize.py が起動時に読み込まれてないみたい
sitecustomize の中でsiteinitをパスに追加するのを行ってるので。。

あと、wxPython 自体はunicode 使ってます
引数もprint type (arg) 等でunicode 型なのは確認してるんだよね
#===== はカンベンw

それと、tta.py の161行目が、
× os.system (fi.encode (sys.getfilesystemencoding ()))
○ os.system (arg.encode (sys.getfilesystemencoding ()))
と修正でした、スマン
そのままだと指定ディレクトリ内の全ファイルをどんどん実行してしまう

>>651
そのままだと、DOS窓のエンコードと合わないと聞いたので
エンコード指定してた
http://lowlife.jp/nobonobo/zine/5/6.html

でも、エンコード指定しなくてもエラーになっちゃうんだよ
655639:2006/02/05(日) 23:25:31
>>652
すまん、sitecustomize.py の、
gettext.install ("main", os.path.join (os.getcwdu (), "locale"), True)
が原因だたよ

削除してくれ、すまん
656デフォルトの名無しさん:2006/02/06(月) 00:50:23
診断:ポストン症候群

主な症状:
1.周囲の人をバグ取りに動員する。
2.自己解決する。
657639:2006/02/06(月) 01:24:17
ごめんよー、ここなら同じことで悩んだ先輩もいるかと思って

まだ解決はしていないのだけど、まあ、
おそらくDOS窓がユニコード受け付けてくれないのかなー、と
いうことで結論しときます thx
658デフォルトの名無しさん:2006/02/06(月) 02:06:15
ちょっとおもしろいから続けちゃだめかな。

問題を整理すると、以下のような感じだとおもう。
os.system() や os.popen4() に、unicode文字列を上手に渡すにはどうしたらいいんだろうか。

-------- ここから nihao.py --------
# -*- coding: utf-8 -*-
import os

# "c:\temp\中文的〓好.txt" を作成 (※「〓」 -> 「イ尓」)
ustr_nihao = u'c:\\temp\\\u4e2d\u6587\u7684\u4f60\u597d.txt'

file_nihao = open(ustr_nihao,"wb")
file_nihao.write("nihao !")
file_nihao.close()


## ここからが問題
## notepad.exe で "c:\temp\中文的〓好.txt" を 開く

## 失敗1 : os.system() + encode("utf-8")
# utf-8で渡すと文字化け
# 「ファイル c:\temp\荳ュ譁・噪菴■螂ス.txt が見つかりません。」
str_exec = 'notepad.exe ' + ustr_nihao.encode("utf-8")
os.system(str_exec)

-------- ここまで nihao.py --------
659639:2006/02/06(月) 02:22:37
>>658
そう、それが言いたかった!

一つの解決策としては、 win32com.client 等で notepad.exe を
com 操作してファイルをオープンさせるとか
=> ただし可搬性がない、os が限定される
660デフォルトの名無しさん:2006/02/06(月) 02:29:25
Windows 限定だけど
GetShortPathName でショートネーム取得すれば認識されるんじゃない?
661658:2006/02/06(月) 02:33:59
>639
最初からこんな風にして欲しかったな…。

なんとなく、os.system() や os.popen4() にunicode文字列を渡すのは無理な気がするよ。
現実的な解としては、
1. tta_enc.exeを呼び出す前に"hogehoge.$$$"みたいな無難なファイル名にリネーム
2. tta_enc.dll を直接使う
3. win32com.client を使用して、COM経由で呼び出す
くらいかもねー。
662639:2006/02/06(月) 02:53:06
>>660
はじめてwin32api.GetShortPathName (path) を使ってみたけど、
なぜか英語以外の path の場合はエラーになるみたい
この関数の使い方もうちょい調べてみます

>>658
すまんぽ。書きながら自分で頭の整理ができてきたっていうのもあって。。
それと、解1がとてもベストな気がするね
win32comはできれば使いたくないし

>>641-661 長い間悩んで、結局無理とわかったのだけど、
無理とわかっただけでも楽になったよ
本当にどうもありがとう
663デフォルトの名無しさん:2006/02/06(月) 02:54:19
import codecs
os.system( 'notepad.exe ' + codecs.mbcs_encode( ustr_nihao )[0] )
↑で動くと思うが
Windowsの内部エンコーディングはUTF-8じゃなくてUCS-2
664639:2006/02/06(月) 03:07:28
winXP, Python2.4.2 の環境だけど、
残念ながら "中文的?好 は見つからない" となってしまう
665デフォルトの名無しさん:2006/02/06(月) 03:40:02
encode("mbcs") すると、「イ尓」に相当するはずの文字が 半角の「?」 になっちゃうね。
これがどうも気になるんだけど。変換テーブルまわりの問題かな。

>>> ustr_nihao = u'c:\\temp\\\u4e2d\u6587\u7684\u4f60\u597d.txt'
>>> ustr_nihao
u'c:\\temp\\\u4e2d\u6587\u7684\u4f60\u597d.txt'
>>> ustr_nihao.encode("mbcs")
'c:\\temp\\\x92\x86\x95\xb6\x93I?\x8dD.txt'
666664:2006/02/06(月) 04:12:21
openだとうまくいくからその辺追えばいいんじゃまいか
667デフォルトの名無しさん:2006/02/06(月) 04:13:11
>666は名前663
668639:2006/02/06(月) 06:25:07
python で作られたファイラーとか、ファイルをダブルクリックした時に
どのようなコマンドで実行しているのか気になって探してみたんだけど、
os.startfile (file) でやってるみたいね

これも同様に日本語の場合はOKで、中国語の場合は動作しない
試したヤツ↓
http://cheeseshop.python.org/pypi/twander/3.195
他のファイラなども調べて、参考になるの探してみる
669デフォルトの名無しさん:2006/02/06(月) 13:53:57
>>665
日本語Windowsなら当然の動作だと思われ。この場合mbcsとは実質的に
ms932のことだから中国語の文字は表せない(?に置き換えるしかない)。
670デフォルトの名無しさん:2006/02/06(月) 13:58:39
>>659
Unicode なファイル名はそもそも OS 依存。
OS 依存なものを扱おうとしているのだから可搬性がないのは当たり前。
671デフォルトの名無しさん:2006/02/06(月) 15:22:07
Jythonならうまくいったりしないかな。
672639:2006/02/06(月) 19:14:46

Jython 2.1 on java1.5.0_04 (JIT: null)

>>> import java.lang
>>> import os
>>> r = java.lang.Runtime.getRuntime ()
>>> r.exec (u"中文的你好.txt")
Traceback (innermost last):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~略
java.io.IOException: java.io.IOException: CreateProcess: 中文的?好.txt error=2

>>> os.system (u"中文的你好.txt")
'中文的?好.txt' は、内部コマンドまたは外部コマンド、~~~~

嗚呼
673デフォルトの名無しさん:2006/02/06(月) 19:56:31
だめかー
674デフォルトの名無しさん:2006/02/06(月) 20:03:44
win32api.GetShortPathName は unicode 渡しても str に変換されるみたいなので
ctypes を使って GetShortPathNameW を使えば
unicode のファイル名から短い名前を取得することはできる
で、この短い名前を使えば startfile でも正常に呼び出せたよ

import ctypes
import os

ustr_nihao = u'u4e2d\u6587\u7684\u4f60\u597d.txt'

GetShortPathNameW = ctypes.windll.kernel32.GetShortPathNameW
shortName = ctypes.create_unicode_buffer(256)
GetShortPathNameW(ustr_nihao, ctypes.byref(shortName), ctypes.sizeof(shortName))
print shortName.value

os.startfile(shortName.value)
675658=665:2006/02/06(月) 20:40:34
>>674
すばらしい。勉強になりました。

>>663 & >>666
open() では Unicode文字列を問題なく扱えるので、実装を調べてみたよ。
windows環境での核心部分は fileobjects.c #165 の _wfopen() あたりだな。

http://pxr.openlook.org/pxr/source/Objects/fileobject.c?v=2.4.2#165
165: f->f_fp = _wfopen(PyUnicode_AS_UNICODE(f->f_name),
166:                   PyUnicode_AS_UNICODE(wmode));

でも、 os.system() の中身がどこに書いてあるか見つけられないので、比較できん。
だれかおしえてー。
676デフォルトの名無しさん:2006/02/06(月) 20:50:28
Modules/posixmodule.c の posix_system じゃないかな
ちなみに startfile は同じファイルの win32_startfile
ともに PyArg_ParseTuple で文字列を取得するときにユニコードから変換される
fileobject.c の open_the_file の実装みたいにユニコードかチェックして
_wsystem、ShellExecuteW を呼び出してくれれば多分エラーにならない
677658:2006/02/06(月) 21:11:42
>>676
ありがとう、見つけられました。

ほんとだ。PyArg_ParseTuple() → system() / ShellExecute() してる。
これじゃあ、そのままやってダメだったのも納得だなー。

http://pxr.openlook.org/pxr/source/Modules/posixmodule.c#1963
1963:         sts = system(command);

http://pxr.openlook.org/pxr/source/Modules/posixmodule.c#7281
7281:         rc = ShellExecute((HWND)0, NULL, filepath, NULL, NULL, SW_SHOWNORMAL);
678デフォルトの名無しさん:2006/02/06(月) 21:13:44
つまるところ、http://www.python.org/peps/pep-0277.html に書いてある
open その他の関数以外は unicode オブジェクトを受け付けない(与えると
ascii コデックでエンコードしようとして死亡)ということか。

PEPとパッチを書いて開発者を動かさないと状況は改善しないかもね・・・。
679639:2006/02/06(月) 21:19:07
>>674
これいいね、ありがとう!使ってみます!

>>675-677
すごいことにやってるね。。
これってPython側のバグだたの?
できれば、どういう事だったのか教えて欲しい

それにしてもマクロだらけになったCのコードを追っかけてると、
Python 使えることに感謝
680658:2006/02/06(月) 22:04:43
>>678
PEPが最後にでてくるか。泣けるなぁ…
681デフォルトの名無しさん:2006/02/07(火) 03:59:27
ttp://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html
Pythonではまず無い…、んだよね?
682デフォルトの名無しさん:2006/02/07(火) 09:40:03
Chief Executive ワロス
683デフォルトの名無しさん:2006/02/08(水) 01:38:28
Pythonにちょっと興味があったのでKomodo Professionalの評価版とSPEというのを
ちょっといじってみたのですが、フリーのSPEの方が便利そうな印象を受けてしまいました。
純粋にPythonだけにフォーカスしてるからなのでしょうか。結構なお値段するのに>Komodo
逆にPythonしか使わなくてもKomodoじゃなきゃやってらんねぇぞゴルァって機能があれば
教えてください。参考にしたいので。
684デフォルトの名無しさん:2006/02/08(水) 08:50:38
>>683氏のレスを見て初めてSPEというものを知り、を試してみたのですが、
かなりイイですねこれ。今までなんで話題に上らなかったんだろうってくらい。

Eclipseのpydevプラグインから乗り換えました。ありがとうございました。
685デフォルトの名無しさん:2006/02/08(水) 18:22:44
すいません。助けて下さい。

やりたいこと:VPサーバー(Linux)にtelnetもしくはssh経由でPython2.3.5をインストール。

やったこと: usr/local にPython-2.3.5.tgzを解凍し、新しく出来た usr/local/Python-2.3.5 内で configure を実行。結果は、
checking MACHDEP... linux2
checking EXTRAPLATDIR...
checking for --without-gcc... no
checking for --with-cxx=<compiler>... no
checking for c++... no
checking for g++... no
checking for gcc... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl... no
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
./configure: sort: command not found
./configure: sort: command not found

との表示でインストール出来ません。
同じような環境でインストールしたことのある方いましたら知恵を貸してください。Pythonのバージョンは異なっても構いません。
686デフォルトの名無しさん:2006/02/08(水) 18:44:30
>>685
エラーの通り、gccがインストールされてないのでは?
シェルで where gcc とかやって、コンパイラがインストールされているかを確認して、
入ってなかったらパッケージからインストールすればいい。
687デフォルトの名無しさん:2006/02/08(水) 18:44:40
>>685
>configure: error: no acceptable C compiler found in $PATH
・外部接続者がコンパイルできないように、パスからgccを見えなくしてある
・gccそのものを入れていない
688デフォルトの名無しさん:2006/02/08(水) 18:46:40
↑ whereis gcc だな。
インスコされてれば gcc: /usr/bin/gcc みたいな感じの結果が表示される。
689685:2006/02/08(水) 19:03:57
ありがとうございます。
完全なunix初心者で全くわからない状態ですが、
puttyっていうソフトで接続(おそらくssh)し、試したところ、
sh-2.05$ whereis gcc
sh: whereis: command not found

と表示され、『where』『whereis』ともにコマンドがないとの事で実行できませんでした。
また、FTPで接続し、いろいろ探してみましたが『gcc』は見当たりませんでした。

恐らくインストールされていないので、それをクリアしてから再度試してみます。

ちなみに『gcc』を必要としないもっと簡単なインストール方法っていうのはないでしょうか?
例えばローカル(WinXP使用)でインストールしてからアップロードするですとか…
690デフォルトの名無しさん:2006/02/08(水) 20:08:15
mxcgipython使えば?
691690:2006/02/08(水) 20:11:57
mxCGIPythonていうのは、Pythonのパッケージ一式を1個のファイルに固めたもの。
バイナリをもらってくるかローカルでビルドして、サーバにもっていけばいいと思います。

mxcgipython:
http://www.egenix.com/files/python/mxCGIPython.html
692デフォルトの名無しさん:2006/02/08(水) 20:27:49
693685:2006/02/08(水) 21:55:03
>>690
ありがとうございます。

gccのインストールはディスク容量不足で不可能と判明。
mxcgipythonも調べましたが、
配布されているバイナリが拡張子『.gz』となっており、ローカルでもサーバー上でも解凍不可でした。

最終的にはmod_pythonをインストールしたかったのですが、自分の知識では無理そうです。
素直にレンタルサーバの運営会社に問い合わせることにします。

ご迷惑おかけしました。
694デフォルトの名無しさん:2006/02/08(水) 21:59:34
>配布されているバイナリが拡張子『.gz』となっており、ローカルでもサーバー上でも解凍不可でした。
だれか何か言ってあげて
695デフォルトの名無しさん:2006/02/08(水) 22:03:07
>>694
もう済んだことだ、あいつのことは忘れろ!
彼女を捨てて海外で医者になることを選んだのだから!
696デフォルトの名無しさん:2006/02/08(水) 22:22:01
レンタルサーバーの中の人もこういう客相手に大変だなあ・・・
697デフォルトの名無しさん:2006/02/08(水) 23:39:41
echo "それが商売ですから"
698デフォルトの名無しさん:2006/02/08(水) 23:45:07
gzipすら入ってないサーバってあるの?
699デフォルトの名無しさん:2006/02/09(木) 04:31:49
>>698
HI-UXには入ってなかったなー
700デフォルトの名無しさん:2006/02/09(木) 09:52:15
>698
gzip を知らない香具師には入っていても使えまい
701デフォルトの名無しさん:2006/02/09(木) 13:03:13
ことによってはbz2だった,とかいうオチもありそうだな
702デフォルトの名無しさん:2006/02/09(木) 13:29:42
うちではできた。chmod する以外には、特に気をつけるとこはなかったぞ。

$ wget http://phd.pp.ru/Software/Python/misc/mxCGI/cgipython-2.4.1-Linux-2.4.29-i686-with-debian-3.0.gz
$ wget http://phd.pp.ru/Software/Python/misc/mxCGI/mxCGItest.py

$ gzip -d cgipython-2.4.1-Linux-2.4.29-i686-with-debian-3.0.gz
$ chmod +x cgipython-2.4.1-Linux-2.4.29-i686-with-debian-3.0
$ mv cgipython-2.4.1-Linux-2.4.29-i686-with-debian-3.0 cgipython

$ ./cgipython mxCGItest.py
('__builtin__', '__main__', '_codecs', '_csv', '_locale', '_socket', '_sre', '_symtable', '_weakref', 'array', 'binascii', 'cPickle',
'cStringIO', 'cmath', 'errno', 'exceptions', 'fcntl', 'gc', 'gc', 'grp', 'imp', 'imp', 'marshal', 'math', 'md5', 'mmap',
'operator', 'parser', 'posix', 'pwd', 'select', 'sha', 'signal', 'struct', 'sys', 'syslog', 'thread', 'time', 'unicodedata',
'zipimport', 'zlib')
703デフォルトの名無しさん:2006/02/09(木) 14:43:42
いや、そういうことじゃなくて・・・
704デフォルトの名無しさん:2006/02/09(木) 23:50:25
もうすぐ PyCon2006 desune.
http://us.pycon.org/
http://wiki.python.org/moin/PyCon2006/Talks

いってみたいなぁ。
705デフォルトの名無しさん:2006/02/10(金) 05:14:28
>>694
ブラウザとかのダウンロードを使ったせいで,
実は伸張済のアーカイブファイルだったというオチを思いついた
706デフォルトの名無しさん:2006/02/10(金) 08:21:25
いまでもそんなアホな挙動するブラウザってあるんかな?
707デフォルトの名無しさん:2006/02/10(金) 10:44:00
IronPython 使い始めた人いる?
あれ、すごいらしいよね
708デフォルトの名無しさん:2006/02/10(金) 10:56:22
どうすごいんですか?
プログラミング初心者に優しくて,上級者のハートをつかんで離さない
といった具合なのでしょうか.
709デフォルトの名無しさん:2006/02/10(金) 11:41:24
Windowsプログラミングが超簡単になるという点で「すごい」らしい。
http://d.hatena.ne.jp/Wacky/20051127 読んでみればちょっとはわかるよ。

http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20051110PythonJH/manifest.xml
で IronPython のデモが見れる。俺は英語圏に住んでるから
全部理解できたけど、そうじゃなくても大体何言ってんのかわかると思う
710デフォルトの名無しさん:2006/02/10(金) 11:50:42
見てみます,さんくす
711デフォルトの名無しさん:2006/02/10(金) 12:04:50
C言語で数値計算くらいしかやったことないから,
さっぱりわからんかった…ウァアンb
712デフォルトの名無しさん:2006/02/10(金) 12:22:39
すげえ. 感動した.
713デフォルトの名無しさん:2006/02/10(金) 18:13:32
.NET+XAMLになった時点で相当に簡略化されると思うけど。
714デフォルトの名無しさん:2006/02/10(金) 19:53:18
>>711
数値計算てどうせ、

for (i = 0; i < 10; i++){
  printf("nibai: %d\n", i * 2);
}

みたいなのをCUIでやってみただけだろw
715デフォルトの名無しさん:2006/02/10(金) 21:33:50
>>714
自己紹介乙w
716711:2006/02/10(金) 22:13:56
多次元変数でのニュートン法とかだから対して変わらないね〜
pythonで何しようかなー
717デフォルトの名無しさん:2006/02/10(金) 22:16:48
>>716
特定しました。
718デフォルトの名無しさん:2006/02/10(金) 23:11:17
>>717
ホンマデスカ…京都の方?
719デフォルトの名無しさん:2006/02/10(金) 23:14:31
>>718
その通り。
720デフォルトの名無しさん:2006/02/10(金) 23:16:19
じゃあ特定されてないや
失礼します
721デフォルトの名無しさん:2006/02/10(金) 23:32:59
これで特定
722デフォルトの名無しさん:2006/02/10(金) 23:54:04
内輪な話はよそでやってくれよ
723デフォルトの名無しさん:2006/02/11(土) 00:17:47
IronPythonがVisual〜に追加されるとかいうニュースはないのか!?
724デフォルトの名無しさん:2006/02/11(土) 00:29:08
>>716
情報系の大学だと数値計算の授業があったりするね。
714はそういう事情を知らんのかな?(かなり痛い・・・)

> pythonで何しようかなー
そういうバックグラウンドがあるなら
H.P. Langtangen の「Python Scripting for Computational Science」とか
見てみると面白い鴨。
725デフォルトの名無しさん:2006/02/11(土) 00:34:41
読んでみます
726デフォルトの名無しさん:2006/02/11(土) 00:38:20
>>724
俺は711氏じゃないけど面白そうだね。注文しよっと。
727デフォルトの名無しさん:2006/02/11(土) 00:59:05
IronPythonおもしろいなこれ。
VisualStudioの中でブレークポイントしかけたりデバッグできちゃうのかよ!
728デフォルトの名無しさん:2006/02/11(土) 01:26:31
Visual Python .NETの予感
729デフォルトの名無しさん:2006/02/11(土) 08:51:55
MATLABの代わりにごりごり使えるような日が来るんだろうか
730デフォルトの名無しさん:2006/02/11(土) 10:40:49
>>728
これ、ほんとに出して欲しいよ。
フリーでなくてもいい。金出して買う。
731デフォルトの名無しさん:2006/02/11(土) 11:49:24
>>729
つ[scipy]
732デフォルトの名無しさん:2006/02/11(土) 12:14:07
どういう経緯でこうなってるのか知らないけど、現時点のscipyって実装が
中途半端じゃね?

リファレンスに記述があったとしても、実装がなされていない関数が多数ある
733デフォルトの名無しさん:2006/02/11(土) 13:25:25
>>724
面白そうだけど,一冊8000円超えるね.
学生にはきついんじゃなかろーか.
734デフォルトの名無しさん:2006/02/11(土) 20:38:42
def f(): f.x = 1
def g(): f() ; print f.x
g() # 1と表示

関数staticな変数のシミュレートができる?
そんだけ
735デフォルトの名無しさん:2006/02/11(土) 20:48:16
シミュレートでも何でもないね
何でこんなの書いたんだろう
736デフォルトの名無しさん:2006/02/11(土) 22:56:55
>>728
ttp://japan.cnet.com/news/ent/story/0,2000047623,20093901,00.htm
> Microsoftでは「Visual Studio」へのIronPythonのサポート追加をまだ表明していないが、同社がこれをサポートするというのが大方の見方だ。


CNETはよくはずれるから期待はしないでまつ
737デフォルトの名無しさん:2006/02/11(土) 23:00:14
MSに関わって欲しくない
徹底的に飼い殺しされて潰されるか
巧妙に乗っ取られてしまうぞ
738デフォルトの名無しさん:2006/02/11(土) 23:02:16
うむ。たぶんC++のようにはならんな。
OpenGLのような運命をたどるだろう。
739デフォルトの名無しさん:2006/02/11(土) 23:39:03
> Microsoftでは「Visual Studio」へのIronPythonのサポート追加をまだ表明していないが、同社がこれをサポートするというのが大方の見方だ。

最高。久しぶりに Visual Studio に戻れるかも
740デフォルトの名無しさん:2006/02/12(日) 10:23:49
2.5の予定が出てますよ
http://www.python.org/peps/pep-0356.html

今回の変更はでかいのが多いなぁ……
非互換はなさそうなのが幸いだ
741デフォルトの名無しさん:2006/02/12(日) 10:28:08
Python 作者が Google に入社したし、
MS 的にはもう Python に注力しなくなるんじゃね?
742デフォルトの名無しさん:2006/02/12(日) 10:41:05
Python 自体は Guido がグーグルに入社したかに直接影響はされないだろーが。
.NET にあるいろんなオブジェクトを簡単にいじくることのできる IronPython
はかなり魅力的。

ちなみに Guido は時間の 50% を Python の改良に費やし、他の 50% を Python を
使用した社内で使うツールなどのプログラミングをしている。
743デフォルトの名無しさん:2006/02/12(日) 10:47:24
.NetにIronPythonって、JavaにGroovyやBeanShellみたいな感じなんだけど、この先どうなるんだろう。
744デフォルトの名無しさん:2006/02/12(日) 10:49:08
>>740
2.5への変更点は俺がほしいと思っていた機能の追加/変更ばかり。
よさげだね

ちなみに IronPython って標準の Python より 1.8 倍速いらしいのな。
ってことは Windows 上だったらこれ使用したほうがいいってことになるな
745デフォルトの名無しさん:2006/02/12(日) 10:55:35

Java には完成度のかなり高い Jython があって、 C# には IronPython があるだろ?

多分無理だと思うが、これ二つ結合して Java も C# も自由自在に
操れるようにすれば、 Python は天下取れるんじゃね?
746デフォルトの名無しさん:2006/02/12(日) 11:27:34
>>744
> ちなみに IronPython って標準の Python より 1.8 倍速いらしいのな。
それ0.6頃の話でしょ。今はどうなのよ。
747デフォルトの名無しさん:2006/02/12(日) 11:52:32
既にC#があるのにPython.NETって意味あるの?
だってクラスライブラリなんて最初から.NETの方が豊富なわけで
748デフォルトの名無しさん:2006/02/12(日) 12:52:10
.NETのライブラリもpythonのライブラリも使えてコンパイル不要
749デフォルトの名無しさん:2006/02/12(日) 12:54:10
Python.NETは他のプラットフォームからのベタ移植用途以外には意味無いかもしれない。
IronPythonは.Net上で新規に書くならかなりいいと思う。
750デフォルトの名無しさん:2006/02/12(日) 13:09:25
.NETってなんやねん
751デフォルトの名無しさん:2006/02/12(日) 13:18:21
ドメイン名の一番右端じゃね?
752デフォルトの名無しさん:2006/02/12(日) 13:30:03
MS が Java を捨てたように
Python も捨てると思うなぁ。
Google ってライバルだし。
753デフォルトの名無しさん:2006/02/12(日) 14:25:59
- any()/all() builtin truth functions

なにこれ?述語論理?
754デフォルトの名無しさん:2006/02/12(日) 14:26:24
Microsoftの技術に乗っかる気ないんだけど
755デフォルトの名無しさん:2006/02/12(日) 16:13:57
>>753
def any(iterator):
756デフォルトの名無しさん:2006/02/12(日) 16:14:42
ごめん途中で書き込んだ。
757デフォルトの名無しさん:2006/02/12(日) 16:26:02
>>753
any - 渡されたイテレータの中身のどれかが真なら真を返す。全部偽なら偽を返す。
all - 渡されたイテレータの中身のどれかが偽なら偽を返す。全部真なら真を返す。

よく使われるような簡単なアルゴリズムを関数にまとめたんでしょ。
C++のSTLみたいな発想で。

……でも述語関数も欲しいです、先生……
758デフォルトの名無しさん:2006/02/12(日) 19:36:39
>>752
MSにとってはGoogleがライバルなのでなくてインターネットがライバルな印象

>>754
Pythonの移植品がMSに利用されるってだけでしょ
好きに利用させてあげれば良いじゃん

JavaScritpだてJScriptとかって別物として移植されたけどMSつかいこなせなったし
でも利用者がある程度いた事でAJAXに移行しやすかった人もいるみたいよ

MSが採用すればそれなにり利用者増えるでしょ。便利な物も出てくるよ。
本当に役にたたせるのはきっと別の会社なんだろうけど(
759デフォルトの名無しさん:2006/02/12(日) 20:50:14
MSと付き合い始めたらいろんな意味で使い辛くなりそうだな
760デフォルトの名無しさん:2006/02/12(日) 22:05:55
)
761デフォルトの名無しさん:2006/02/12(日) 22:07:09
print """

Hello, Python!!!

"""

というわけで今日はprint文とif文について学びました.
失礼
762デフォルトの名無しさん:2006/02/12(日) 22:15:37
>>> help
Type help() for interactive help, or help(object) for help about object.

フムフム


>>> help(None)
Welcome to Python 2.4!

!(゜∀゜)
763デフォルトの名無しさん:2006/02/12(日) 23:02:41
>>759
まあでもMSの仕込んだ使い辛い機能が本家の
Pythonにフィードバックする人もいないだろうし
本家のPython的には全然変わらないんじゃない?
764デフォルトの名無しさん:2006/02/14(火) 03:22:15
>>762
Python に Easter egg があったとは!!
765デフォルトの名無しさん:2006/02/14(火) 10:57:47
>762

すまんがそれ、

help()

のこと。


766デフォルトの名無しさん:2006/02/14(火) 15:28:22
どっちかってーと
import this
がそれに近いものだよね
767デフォルトの名無しさん:2006/02/14(火) 23:24:51
pythonで zope/plone以外のイカしたCMSありまつか?

zopeは多機能杉
768デフォルトの名無しさん:2006/02/15(水) 00:29:50
コンソールで書いてるとゴミが溜まってくるから、
遊び始める前にimport os<enter><tab>os.system("cls")
っておまじないをしてる。
ちょっと前にこういうの詳しい人が見たとき、理由の説明は無くて
「最後にreturn書けやヴォケ」と言われた。「無いと気持ち悪い」って。
書かなくても画面きれいになるけど、なんかダメ?
769デフォルトの名無しさん:2006/02/15(水) 00:56:07
>>768
ああ、いるね。そういう些末な作法の違いに
やたらこだわって茶々入れてくる人。
それでいて自分は肝心なところが抜けてんのな。
気にしないで適当にあしらっときゃいいよ。
770デフォルトの名無しさん:2006/02/15(水) 00:57:49
>>736-
スラド臭い流れだなwwwwwwwwwwwww
771デフォルトの名無しさん:2006/02/15(水) 01:04:36
>>768
コンソールで書くときなんて見せるのが目的じゃないんだから別に傍目は
気にしなくていいんじゃない?
772デフォルトの名無しさん:2006/02/15(水) 01:06:02
>>768
俺の環境では ^L できれいになるけど、そういう意味ではないのかな?
773768:2006/02/15(水) 01:22:55
動く分には問題ないですかー。宗教的な要素のようで安心しました。
戻り値が必要な場合でも.pyでもなし、機能するならそれでいいじゃない…。
ちなみにctrl-Lには、素のwin版プロンプト上ではバッファお掃除機能は
割当たってないみたいです。linux版は便利なんですね。
774デフォルトの名無しさん:2006/02/15(水) 01:42:10
>>773
cygwin版だとCtrl-L効くよ。
775デフォルトの名無しさん:2006/02/15(水) 07:21:11
少しスレ違いですが適切な場所が見つからなかったので質問させて下さい。
linuxでpython-2.4.2を自分でコンパイルしたら、pyexpatというパーサが
勝手にインストールされたんですが、2.3.5ではインストールされませんでした。
pyexpatを2.3.5から使いたいのですが、これは本体に含まれてるのでしょうか?
それとも別途ダウンロードが必要ですか?もし後者なら、DL先を教えてもらえる
と嬉しいです。

あと、pyexpatとpy/xmlは別物ですか?
776デフォルトの名無しさん:2006/02/15(水) 08:44:22
>>767
Django
777デフォルトの名無しさん:2006/02/15(水) 11:42:51
>>775
ちょうどXMLまわりについて調べてました。参考にどうぞ。

> pyexpatを2.3.5から使いたいのですが、これは本体に含まれてるのでしょうか?
ライブラリ・リファレンスのの 「13.5 xml.parsers.expat」
http://www.python.jp/doc/release/lib/module-xml.parsers.expat.html によると、
「このモジュールでは、Expatパーザへのアクセスを提供するために pyexpat
モジュールを使用します。 pyexpatモジュールの直接使用は撤廃されています。」
とある。ので、pyexpat を使いたい人は、 "import xml.parsers.expat" しなさい
ということらしい。

> あと、pyexpatとpy/xmlは別物ですか?
「py/xml」って、「PyXML」のことですか?
PyXML には expat 以外のパーサも入ってます。詳しくは、「Package
Overview (PyXML)」から "expat","parser" のキーワードを中心に見ていくと
分かるんじゃないでしょうか。

PyXML: http://pyxml.sf.net
Package Overview (PyXML) : http://pyxml.sourceforge.net/topics/howto/node10.html

他には、libxml2のSAXが 「compatible with early expat versions」 と称してます。
Pythonでは lxml というライブラリから使えるっぽい。lxml には ElementTree
も入ってて便利です。

lxml: http://codespeak.net/lxml/
libxml2: http://xmlsoft.org/
778デフォルトの名無しさん:2006/02/16(木) 07:00:05
>>777
分かりやすい解説どうもです。2.3.5にもpyexpatは含まれてました。
ありがとうございました。
779デフォルトの名無しさん:2006/02/17(金) 14:33:03
「0からPython」よりも下にあるのなんかゆるせんage
780デフォルトの名無しさん:2006/02/18(土) 00:45:02
>>779 ハァ?
781デフォルトの名無しさん:2006/02/18(土) 03:52:46
新しい方が良いって聞いたから日本語2.3.4消して
標準2.4.2入れたらヘルプまで英語かよ。 orz
チュートリアルとかよく見てたのに、上書き食らった。

.msiだからヘルプだけ抽出して戻せないしって、
ああ、日本人に誤解の元となるバージョン違いの
ヘルプを使わせないための親心か。 イラネ-
782デフォルトの名無しさん:2006/02/18(土) 04:11:48
日本ユーザー会のダウンロードにあるから、ドキュメントを探せ。
2.3でも2.4でも好きな系列選んでな。
Docディレクトリに入れれば、なおよし。ファイル名のケツからjp削って
Python24.chmを上書きし返すと、IDLEから呼べるようになるしな。
783デフォルトの名無しさん:2006/02/18(土) 16:38:12
俺は、http://www.python.jp/Zope/download/pythonsidebar これ使ってるお
784デフォルトの名無しさん:2006/02/18(土) 19:12:24
意見を聞かせてください。
Apache + mod_python と Zope ならどっちが高性能でしょうか?
或いはウェブ上でPythonを使うのにもっと良い組み合わせってありますか?
785デフォルトの名無しさん:2006/02/18(土) 19:24:45
自分で測定しよう
786デフォルトの名無しさん:2006/02/18(土) 20:47:54
>>784 に理解できるかどうか分からんが,少なくともZopeの方が高水準.
787デフォルトの名無しさん:2006/02/18(土) 21:05:45
>>784 に理解できるか判らんが、性能必要ならapacheで逆串とか刺せば?
788デフォルトの名無しさん:2006/02/18(土) 21:12:27
>>784
あなたの言う高性能がどういうことなのか説明してくれ
789デフォルトの名無しさん:2006/02/18(土) 22:25:55
みんな意地悪だな。
単純な単位時間あたりのPV数ってことで、性能って言っているんだと思うがな。

パフォーマンス勝負でも、下手に書かれたPythonプログラムをmod_pythonで動かすのと、
Zopeでうまく作ってやるのとでは、ほとんど変わらない場合もあると思われる。
ま、>>785のいう通りってこった。
790デフォルトの名無しさん:2006/02/19(日) 00:23:41
DjangoとTurboGearsとSubwayとかありますが、これらの比較記事とかどこかにないですか?

791デフォルトの名無しさん:2006/02/19(日) 00:34:36
http://subway.python-hosting.com/
もうsubwayの開発やめるって書いてある…。
理由はまねっこが2つも出てきてやる気なくしたからだって。
792デフォルトの名無しさん:2006/02/19(日) 00:55:21
下手なゲームより面白いな。
昔98でバッチファイルを書いてたのを思い出すぜ。
793デフォルトの名無しさん:2006/02/19(日) 11:11:56
>790
調べて次の python workshop で発表よろ
794デフォルトの名無しさん:2006/02/19(日) 11:26:22
>>791
そんな理由で開発やったり辞めたりする奴のプロダクトには依存したくないよねぇ。
795デフォルトの名無しさん:2006/02/19(日) 12:06:40
>>794
君が選択できるオプションは以下のとおりだ。

1)フレームワークから自分で作る
2)開発放棄されてもソース読んで自分でメンテする
3)クレクレ君であることを自覚し今後そういった文句は控える
796デフォルトの名無しさん:2006/02/19(日) 14:28:49
真のクレクレ君よ、私は君にはないオプションがあるんだよ。
4) 有料でサポートしてくれるフレームワークを使う。
797デフォルトの名無しさん:2006/02/19(日) 14:38:07
今月のSDのLL特集で、Python記事がないのに
JythonとTurboGearsはあったのはなんかバランス悪いね
798デフォルトの名無しさん:2006/02/19(日) 14:41:31
>>797
適当なライタがいなかっただけでしょ。
799デフォルトの名無しさん:2006/02/19(日) 16:31:16
そもそもフレームワークって何(に使うの)?RoRみたいなもの?
800デフォルトの名無しさん:2006/02/19(日) 18:44:03
おおすじでYes
801デフォルトの名無しさん:2006/02/19(日) 18:50:56
RoRがわからん… Rise of Rome
802デフォルトの名無しさん:2006/02/19(日) 20:21:22
Reverse OR
803デフォルトの名無しさん:2006/02/19(日) 21:17:32
Ruby off the Rails
804デフォルトの名無しさん:2006/02/19(日) 23:02:16
web.pyねぇ・・・。
具体的にどこら辺がいいんだろう。
805デフォルトの名無しさん:2006/02/19(日) 23:17:13
作者がおひとよし
806デフォルトの名無しさん:2006/02/20(月) 09:38:42
>>784
apache+mod_pythonの良い所は、他のモジュールと組み合わせる事が
出来る事じゃないかな。例えば、俺が作ってる加速器実験用の鯖だと、
apache+mod_gridsite+mod_ssl+mod_pythonで GSI authenticationかまして、
DNで jobの優先度を振り分けたりとかしてるよ。
807デフォルトの名無しさん:2006/02/20(月) 09:56:31
>>806
特定しますた
808デフォルトの名無しさん:2006/02/20(月) 10:22:11
時代はlighttpd+mod_fastcgiですよ
809デフォルトの名無しさん:2006/02/20(月) 11:58:18
IronPython1.0 beta3出てますよ
810デフォルトの名無しさん:2006/02/20(月) 15:13:21
Iron やべーな。。。俺 (IronPython経由での) .NET のプロになっちまいそう。。。
811デフォルトの名無しさん:2006/02/20(月) 16:06:18
正直リソースエディタがついてないと話にならん
812デフォルトの名無しさん:2006/02/20(月) 16:22:42
今 Visual Studio 2005 入れてます。 この上でIronPythonできるんだよね?
813デフォルトの名無しさん:2006/02/20(月) 23:01:19
無理だろ。
814デフォルトの名無しさん:2006/02/20(月) 23:14:59
できたよ
815デフォルトの名無しさん:2006/02/21(火) 00:21:32
816デフォルトの名無しさん:2006/02/21(火) 00:31:07
なんだExpressじゃできないのか
817デフォルトの名無しさん:2006/02/21(火) 01:23:50
試してわかった事。ifって書く順番も大事なんだ。
他の条件に含まれちゃうような限定された返り値が
欲しい分岐は、先頭の方に書かないと無視されるね。
カウンタが例えば5から減らして自分を再帰呼び出しする関数で、
0じゃないときA 1のときB 0のときC(&終了)の順だとAAAAAC(Bは呼ばれない)
1のときB 0じゃないときA 0のときC(&終了)の順だとAAAABC(無事できた)
設計が悪いと言われればそうだけど、else使わないで遊んでみたら
意外な結果になったんで。
818デフォルトの名無しさん:2006/02/21(火) 01:43:32
自分がスキルアップした気持ちは良くわかるが、「そりゃそうだろ」としか言えない
819デフォルトの名無しさん:2006/02/21(火) 02:06:18
死蔵状態とは言え半分以上水没は痛い
820デフォルトの名無しさん:2006/02/21(火) 11:30:35
>>817
コードの振る舞いを説明するときはコードで例示してくれ。
説明能力もスキルアップしてほしいっす。
821デフォルトの名無しさん:2006/02/21(火) 11:52:11
817じゃないが、

if x != 0:
 A
elif x == 1:
 B

でBが実行されることは無い。そりゃそうだろ。
822デフォルトの名無しさん:2006/02/21(火) 13:42:40
そうですね!
823デフォルトの名無しさん:2006/02/21(火) 15:45:31
>>817
「意外な結果」だと思われたことが意外だったり。
824デフォルトの名無しさん:2006/02/21(火) 15:56:12
Triangleだな。コンパイラの勉強にはなったが
825デフォルトの名無しさん:2006/02/21(火) 16:02:15
すまん、誤爆した
826デフォルトの名無しさん:2006/02/21(火) 17:17:15
>821
ちょっとワラタ

けど cc -O みたいな最適かというか、
lint というか
そういう無意味なコードは恐らくはバグなので
論理的に無意味なものを検出して warning 出してくれる
コードチェッカなんてのはあってもいいかなとは思った

(もっとも >821 が無意味かどうかを判定するのはちと辛いか)
827デフォルトの名無しさん:2006/02/23(木) 19:23:54
>>779
98: Pythonについて0から教えてください





















132: Pythonのお勉強 Part8
828デフォルトの名無しさん:2006/02/23(木) 23:12:33
おもろないねん
829デフォルトの名無しさん:2006/02/23(木) 23:23:02
パンおいしいねん
830デフォルトの名無しさん:2006/02/24(金) 00:03:54
ありまきねん
831デフォルトの名無しさん:2006/02/24(金) 19:33:46
dive into pythonのpdf版とかHTML版のファイルが壊れているんだけど,
どこかミラーサイトとかご存知ありませんか?
832デフォルトの名無しさん:2006/02/24(金) 19:50:35
試しに本サイトからPDFもらってきてみたけど、別に壊れてはいないようですが。
http://diveintopython.org/download/diveintopython-pdf-5.4.zip
833デフォルトの名無しさん:2006/02/24(金) 20:52:26
>>832
そうですか〜解凍に失敗するんですよね…
ううむ
834デフォルトの名無しさん:2006/02/24(金) 21:33:37
別に普通に解凍できますが。
835デフォルトの名無しさん:2006/02/24(金) 22:00:01
Windowsだったら統合アーカイバから最新DLL落として試してみたら?
うちでも問題なし。
836831,833:2006/02/24(金) 23:41:32
lhaplusでうまくいきませんでしたが,lhacaでうまくいきました.
荒らして申し訳ありませんでした.
837デフォルトの名無しさん:2006/02/24(金) 23:52:29
ZIPファイルはPythonで展開しる!
838デフォルトの名無しさん:2006/02/25(土) 00:03:05
>>837
すごい…そんなことできるんだ
839デフォルトの名無しさん:2006/02/25(土) 01:57:50
ネタじゃないなら何をimportするかくらい…、調べたらそれらしいのマジであるのな。さすが世界標準zip。
840デフォルトの名無しさん:2006/02/25(土) 02:36:04
import os, zipfile
f = zipfile.ZipFile("diveintopython-pdf-5.4.zip")
for path in f.namelist():
    print path
    dname, fname = os.path.split(path)
    if not os.path.exists(dname):
        os.makedirs(dname)
    if fname: # i.e. not a directory
        open(path, "wb").write(f.read(path))
841デフォルトの名無しさん:2006/02/25(土) 03:03:32
>>840もすなるunzipといふものを、一行野郎もしてみむとてするなり。
python -c "import os,sys,zipfile;f=zipfile.ZipFile(sys.argv[1]);[(os.path.exists(d)or os.makedirs(d)is None)and open(os.path.join(d,b),'wb').write(f.read(d+'/'+b))for d,b in [os.path.split(p)for p in f.namelist()]if b]" diveintopython-pdf-5.4.zip
842デフォルトの名無しさん:2006/02/25(土) 11:57:38
初心者ですが質問です。
常々疑問に思っていたのですが、メソッドのまえにアンダースコアを1つつけるのは
どういう意味あいなのでしょうか。2つでないとプライベートにならないですよね。
843デフォルトの名無しさん:2006/02/25(土) 13:44:37
>>842
単なる区別
844デフォルトの名無しさん:2006/02/25(土) 13:57:05
機能的に特別な扱いはないよね。
書いた人の趣味というしかないかも。
845デフォルトの名無しさん:2006/02/25(土) 15:15:24
>>842
http://oldriver.org/python/pep-0008j.html

>- _single_leading_underscore:弱い内部使用の識別子(例えば、
> "from M import *" は、アンダースコア1つで始まる名前のオブジェクト
> を、importしない)。

普通に使う分にはほとんど意識する必要はないけど,知らないと
思わぬところではまるかもしれない違い,といったところですかね
846デフォルトの名無しさん:2006/02/25(土) 15:26:12
モジュール内限定で使うユーティリティ的な関数があるけど,そのモジュールが
import * されたときに呼び出し側の名前空間を汚したくない,といった要求に
応えるものかな
847デフォルトの名無しさん:2006/02/26(日) 02:44:11
で、メソッドだとそんな効果はあったっけ?
848デフォルトの名無しさん:2006/02/26(日) 04:08:37
>>847
プライベートなメソッドってこと?

class A:
def __spam(self):
print "SPAM"

a = A()
a.test()

は、ちゃんとエラーになるよ。
でも、a._A__spam()でアクセスできちゃうけど。
849デフォルトの名無しさん:2006/02/26(日) 09:42:05
>>848
a.test() って a.__spam() の間違い?

あとアンスコ1個で開始のメソッドはなんもなし?
850デフォルトの名無しさん:2006/02/26(日) 13:01:29
聞く前に試せよ。
851デフォルトの名無しさん:2006/02/26(日) 13:16:34
アンダ―スコア1個はhelpに出なくなるよ
852デフォルトの名無しさん:2006/02/26(日) 17:41:06
日本語ファイル名で格納されてるzipファイルをpythonで取り出してるけど、
デカいファイルはメモリが。
# つか、unzipにそのへんのパッチが存在する事は知ってはいるのだが。
853デフォルトの名無しさん:2006/02/27(月) 21:01:04
チュートリアル読んでプログラム書いてみたりしてるんですが,
本当に使いこなせるようになるのだろうか…
854デフォルトの名無しさん:2006/02/27(月) 21:49:19
PythonChalengeやると結構勉強になるかも。
855デフォルトの名無しさん:2006/02/27(月) 21:58:24
>853が必要な事だけ勉強すれば良いと思うよ。

僕も今では普通に使うclassやlamda式やtupleは、最初はまったく使わなかった。
壁に当たってから調べるぐらいのペースで十分だよ。
856デフォルトの名無しさん:2006/02/27(月) 23:33:05
>853
一緒にうまくなろうぜ。俺はbookmarks.htmlのコンバータを作るのを目的にしてるよ
857デフォルトの名無しさん:2006/02/27(月) 23:52:03
かじった知識でとりあえず作る>新しい知識を得る>書き直す

ってことを何度もやってる
858853:2006/02/28(火) 00:27:40
>>856
オイドンはIM
859デフォルトの名無しさん:2006/02/28(火) 01:02:11
自分は、イテレータ、lispっぽいことができるリスト処理、
簡単に使えるネイティブスレッド、多重継承もシンプルにできるクラス・
モジュールシステムとか使いながらおぼえてくうちに、
なにこれ、すごい楽で便利じゃんって染まってしまった。
たとえばJAVAでも多重継承以外はほぼ同じことができるけど、
pythonみたいにやるAPIどこにあったっけとか探してる間に
pythonのほうは書き終わっちゃうんだな。
860デフォルトの名無しさん:2006/02/28(火) 01:07:16
>>859
機能並べるだけじゃなくて、実装レベルも大事だと思うよ。便利だけどね。
Python のネイティブスレッド対応は、以前はジャイアントロックするから使ってくれるな
的な事がマニュアルに書いてあって激しく萎えた覚えがある。
861デフォルトの名無しさん:2006/02/28(火) 02:32:55
>>860
ジャイアントロックって何? GILのこと?
http://www.python.jp/doc/current/tut/node18.html#l2h-45

(Python使いではないと見た)
862デフォルトの名無しさん:2006/02/28(火) 03:57:39
ジャイアントロックは Python 用語じゃなくて、一般的に
マルチスレッドの粒度を話す時に使われる用語だよ。
863853:2006/02/28(火) 11:53:23
きみたち何語しゃべってるんですか
864デフォルトの名無しさん:2006/02/28(火) 12:27:08
Japython
865デフォルトの名無しさん:2006/02/28(火) 13:42:52
ジャンパーソンか!
866デフォルトの名無しさん:2006/02/28(火) 13:47:20
ジャンパーソンか!
867デフォルトの名無しさん:2006/02/28(火) 14:44:50
ジャンパーソンか!
868デフォルトの名無しさん:2006/02/28(火) 15:03:15
やさしいPythonきぼんぬ
869デフォルトの名無しさん:2006/02/28(火) 20:05:29
ツンデレPythonでも一生待ってろ
870デフォルトの名無しさん:2006/02/28(火) 21:09:06
ぱいちんこ
871デフォルトの名無しさん:2006/02/28(火) 23:07:41
ジャンパーソンか!
872デフォルトの名無しさん:2006/03/01(水) 01:19:19
諸君 私はPythonが好きだ
諸君 私はPythonが好きだ
諸君 私はPythonが大好きだ

CPythonが好きだ
IronPythonが好きだ
Jythonが好きだ
MacPythonが好きだ
PyPyが好きだ
Python for .NETが好きだ
SJIS版Pythonが好きだ
Stackless Pythonが好きだ
Vyperが好きだ

職場で 自宅で
研究で 開発で
趣味で 独学で
授業で 宿題で
客先で 徹夜で

この地上で用いられるありとあらゆるPython言語が大好きだ

空白文字をならべたインデントの論理性がbegin/endと共に括弧を吹き飛ばすのが好きだ
偏見に満ちた多言語ユーザどもが可読性に魅せられて虜になった時など心がおどる

標準ライブラリを駆使した単純なスクリプトで難問を解決するのが好きだ
例外を起こしてスクリプトを止める障害をtry/except節で黙らせた時など胸がすくような気持ちだった
873デフォルトの名無しさん:2006/03/01(水) 01:22:43
あらゆる機能をそろえた標準ライブラリの大海原に未知の機能を求めるのが好きだ
入門中の初心者がガイシュツの機能を何度も何度も再発見してハァハァしている様など感動すら覚える

デコボコしていた言語機能が次々に整備されていく様などはもうたまらない
組込み型がクラスでないのは美しくないなどとあげつらっていた連中がかつての主張を過去形に直している様も最高だ

哀れな初心者達が市販の入門書を手にして健気にも勉強してきたのを
lambdaスキーと内包表現スキーの一行野郎が「はじパイ」仕込みの達成感もろとも木端微塵に粉砕した時など絶頂すら覚える

百戦錬磨のGuidoパパに滅茶苦茶にされるのが好きだ
美徳のはずだった言語仕様が蹂躙され1.x以来の機能がdeprecatedになりobsoluteになっていく様はとてもとても悲しいものだ

Pythonアプリの物量に押し潰されて殲滅されるのが好きだ
広大なソースツリーに迷い込みバグの様に地べたを這い回るのは倒錯の極みだ

諸君 私はPythonを、十徳ナイフの様なPythonを望んでいる
諸君 私に付き従う蛇使い諸君
君達は一体何を望んでいる?

至高のPythonを望むか?
情け容赦のない最強のPythonを望むか?
機能拡張の限りを尽くし数多のスクリプト言語を葬る悪魔の様なPythonを望むか?

『Python! Python! Python!』
874デフォルトの名無しさん:2006/03/01(水) 01:24:11


よろしい ならばPythonだ


我々は渾身の力をこめて今まさに振り降ろさんとする握り拳だ
だがこの暗い闇の底で半世紀もの間堪え続けてきた我々にただのPythonではもはや足りない!!

大Pythonを!!
一心不乱の大Pythonを!!

我らはマ板のPythonスレ住人 千人に満たぬ人生の敗北者に過ぎない
だが諸君は一騎当千の古強者だと私は信仰している
ならば我らは諸君と私で総力100万と1人のPython軍団となる

我々を忘却の彼方へと追いやり眠りこけている連中を叩き起こそう
髪の毛をつかんで引きずり降ろし眼を開けさせ思い出させよう
連中にインデントの味を思い出させてやる
連中に我々のタブキーのタイプ音を思い出させてやる

天と地のはざまには奴らの哲学では思いもよらない事があることを思い出させてやる
一千人の人生の敗北者のPython軍団で
世界を萌やし尽くしてやる

「最後の敗北者スレ>>1より全Python軍団へ」
目標日本国47都道府県全域!!

Python 2.5 リリース間近 状況を報告せよ
875デフォルトの名無しさん:2006/03/01(水) 01:30:10
なかなかいいね。

ところでちょっと前に勉強ネタが出てたが、

> あらゆる機能をそろえた標準ライブラリの大海原に未知の機能を求めるのが好きだ

これで僕は勉強したな。Cで書いてある部分も増えてきたとは
言え、ほとんどの部分がpythonで書いてあるので、標準ライブラリを
解読するのと、言語仕様書読むだけでほとんど参考書いらずだった
気がする。まぁ、超詳しい先輩が両隣に座ってたってのもあるが。
(1.x時代に日本語のunicode処理のpatch作って送ってたらしいが‥‥‥)
876デフォルトの名無しさん:2006/03/01(水) 01:46:01
このタイプのコピペをちゃんと最後まで読んだのは久しぶりだ。
ツボ多すぎて家族に怒られたじゃねえか…。
褒美として演算子使用禁止の緊縛プレイをお勧めする。
関数の有象無象に蹂躙され尽くしてくれい。そこにも萌えが。
877842:2006/03/01(水) 12:03:08
>>843-845
遅レスですが、回答ありがとう。勉強になりました。
878デフォルトの名無しさん:2006/03/01(水) 17:24:07
O'reilly の Python クイックリファレンスのクラスの説明で
「python 2.2 以降 "新しいクラス" が導入されました」、
とあります

なんか __new__() とかが新しいっぽいんですが、どうも
意味がよく分かりません。
チュートリアルでも 2.2 以降の違いにはとくには触れていないみたいですよね。
英語でも良いので、
新しさの ココロ が分かりやすく説明されている資料って
何かありますでしょうか?
879デフォルトの名無しさん:2006/03/01(水) 17:38:05
880デフォルトの名無しさん:2006/03/01(水) 20:46:47
>>878
"新しいクラス" っていうのは "new-style class" のことなので、
こういう風に調べるといろいろ見つかると思う。
http://www.google.co.jp/search?q=python+new+style+class
881R:2006/03/02(木) 11:43:35
setがまだ使えないVersで、2つのlistの要素が等しいことを判定する方法として、
私はこんなのを考えましたが、もっといい方法があるでしょうか?

if dict(zip(ls1,ls1)) == dict(zip(ls2,ls2)):
  〜
882デフォルトの名無しさん:2006/03/02(木) 12:40:42
IronPythonβ3がmonoで動いたって
ttp://slashdot.jp/~visha/journal/346384
883デフォルトの名無しさん:2006/03/02(木) 13:30:44
IronPython (Beta3) を使用してみたのですが、 AvalonStartup がパス上に見つかりません。
デモでは何なくロードしてたのになぜでしょう?

>>> from AvalonStartup import *
Traceback (most recent call last):
File , line 0, in input##793
ImportError: No module named AvalonStartup
884デフォルトの名無しさん:2006/03/02(木) 14:26:17
>>881
ls1 == ls2 ではダメなの?
885デフォルトの名無しさん:2006/03/02(木) 14:52:50
python -i script ってやると script 実行終了後
インタプリタに落ちてくれますが、
python script ってやった場合にも
同じようにインタプリタに落ちてくれるように出来ますか?

script 側の処理によってインタプリタに落ちるかどうかを
分たいんですが...
886デフォルトの名無しさん:2006/03/02(木) 17:14:31
>>885
import code
code.interact()
887デフォルトの名無しさん:2006/03/02(木) 18:29:23
>886
import code
a=123
code.interact()
(略)
>>> print a
Traceback (most recent call last):
File "<console>", line 1, in ?
NameError: name 'a' is not defined
>>>

code だと実行していた空間とは別になってしまうんですかね?

python -i だと実行空間が見えるので
他のスレッドの実行状況とかを対話的に覗ける
ところが良かったんです。
888デフォルトの名無しさん:2006/03/02(木) 18:33:09
>>887
プロンプトが出たら最初に from __main__ import * って打ってもらうとか。
889デフォルトの名無しさん:2006/03/02(木) 18:36:02
>>885
-i オプションを指定すると、C言語レベルでは Py_InteractiveFlag という
変数が真になるみたいだけど、この変数はインタプリタ側からは見えないっぽい。
C言語で拡張モジュールを書いたら参照できたけど、-i オプションなしの状態を
ありの状態に変えることはできないっぽい。-i オプションが指定されたかどうか、
だけなら知ることができますた。
890デフォルトの名無しさん:2006/03/02(木) 18:39:50
>>881
>>> a = [[],[],[],[]]
>>> b = [[],[],[],[]]

>>> dict(zip(a,a))==dict(zip(b,b))
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: list objects are unhashable
>>>
891デフォルトの名無しさん:2006/03/02(木) 18:56:17
>>883
Windows Vistaが出たら使える
892デフォルトの名無しさん:2006/03/02(木) 18:56:55
>889
なるほど... 諦めがつきますた。
893デフォルトの名無しさん:2006/03/02(木) 19:13:17
>>885
手抜きに
os.execv(sys.argv[0] ... hoge )
とか。正式な書式はしらんので調べてください。
894デフォルトの名無しさん:2006/03/03(金) 00:41:33
リストの連結ではスライスは大括弧一つで書けるけど、インデックスは
それ自体をまた大括弧でくくって二重にしないとならんのは気持ち悪い。
スライスはリストの構造を高い場所から見て指定してて、インデックスは
中に潜って中身を一つ一つ参照してるって風に次元が違うのか。納得できん。
895デフォルトの名無しさん:2006/03/03(金) 00:51:31
>>887
code.interact(local=globals())
とすると名前空間を引き継げる
896デフォルトの名無しさん:2006/03/03(金) 00:57:15
>>895
それだ!
897デフォルトの名無しさん:2006/03/03(金) 00:58:44
python workshopなるものが…
898デフォルトの名無しさん:2006/03/03(金) 01:41:48
文字化け問題のチェックリストとかない?
CGIでUnicode文字列をprintしたいんだけどどうしてもUnicodeEncodeErrorになる
899デフォルトの名無しさん:2006/03/03(金) 01:54:13
2.4になってからはそんなに引っかかることなくなったと思うんだけど。

ここチェック:
・ファイルのエンコーディング指定 (ファイル先頭に "# -*- coding: euc-jp -*-" とか)
・文字列代入は strhoge = "日本語".decode("euc-jp") もしくは strhoge = u"日本語"
・外部から入力した文字列 strinput のエンコーディングが shift_jis なら、 hoge = strinput.decode("shift_jis") と明示的に書く
・print する際のエンコード指定: 例 strhoge.encode("utf-8") #utf-8エンコードで出力
900デフォルトの名無しさん:2006/03/03(金) 02:09:12
JapaneseCodecsから2.4のCJKに変わって引っかかってたり…
901898:2006/03/03(金) 02:11:12
>>899
ご親切にありがとうございます。4番目の
>・print する際のエンコード指定: 例 strhoge.encode("utf-8") #utf-8エンコードで出力
でビンゴでした。

あとどうやら私はstr.encode()とstr.decode()の動作を逆に捕らえていたようです。。
902898:2006/03/03(金) 02:13:31
>>900
私の場合、逆のパターンでした。
手元の2.4からレンタルサーバーの2.3に変わったのですが、
微妙に勝手が違うような感じがしました。
903R(881):2006/03/03(金) 09:59:08
ls1=[1,2,3]でls2=[2,3,1]のような時、ls1!=ls2だけど中に入ってる要素を見ると同じです。これが見たいのです。>>884
さらにls3=[1,1,2,3]も同じに見たいです。
setを使うとset(ls1)==set(ls2)でOKなのですが、業務で使っているPythonのVersionではまだ無いのです。
ありがとうございます。確認しました、確かに辞書のKeyに出来ない値に関してはこのままではダメでしたねぇ。>>890
904デフォルトの名無しさん:2006/03/03(金) 10:11:58
>>903
>>> def equal(s1, s2):
    for e in s1:
        if e not in s2:
            return False
    for e in s2:
        if e not in s1:
            return False
    return True

>>> equal([1,2,3], [3,2,1])
True
>>> equal([1,2,3], [4,5,6])
False
>>> equal([1,2,3], [1,2,3,4])
False
>>>
905R(881):2006/03/03(金) 10:12:42
dict(zip([str((x,)) for x in ls1], ls1))で解決出来ました。>>890
本来ならpickleかなにかを使うのかもしれませんが。。。
906R(881):2006/03/03(金) 10:19:42
ありがとうございます。>>904
なにか上手い方法がないか探していたのですが、私のようなおかしなアイデアを使ってない点でその方法が結局、普通に上手い方法と言えるかも知れないですね。
と、言うかその方が絶対にいいですね。そうしますね。
907デフォルトの名無しさん:2006/03/03(金) 14:32:37
比較する前に sorted() で順番を並べ直す。
unix の uniq 相当のも何かなかったっけ?
ってやれば == で比較できそう。
908デフォルトの名無しさん:2006/03/03(金) 14:34:59
python のソースコードを color highlight つきで
印刷したい時って普段どうされていますか?

unix では
% enscript -G -U2 --color -o- --highlight=python hoge.py | psnup -2 | lpr
みたいな感じでやってます。

* もっと綺麗な・便利な・見易いツールあります?
* Windows 環境だと何がお勧め?
909デフォルトの名無しさん:2006/03/03(金) 16:37:31
ちょっと探してみた。

highlight (TeXのCTANで見つけた。win32のGUIもついてる)
http://www.andre-simon.de/

また、windowsアプリケーションとはいえないし印刷でもないんだけど、

Trac は enscript か Silvercity を内部で使う
http://dev.guesswork.jp/guesswork/wiki/TracSyntaxColoring

MoinMoin にも自前のソースコード色つき表示機能がついてる。
http://moinmoin.wikiwikiweb.de/HelpOnParsers
910デフォルトの名無しさん:2006/03/03(金) 17:13:12
>>908
俺は a2ps --prolog=color foo.py とかやってる。
a2ps 自体に psnup 相当の機能がある。
911デフォルトの名無しさん:2006/03/03(金) 18:37:13
PythonのWindowsでの使い方を教えてください。
pathextに.pyを追加して
.plをCygwinのpython.exeに関連付けました。

で、hello.pyといったファイルを作ってcmdを起動して
hello
と入れると問題なく起動しますが
hello arg
と引数を渡すと引数を認識してくれません。
python.exe hello.py arg
とすると引数を認識してくれます。
出来れば
hello arg
のまま起動したいのですがどうやって関連付けるのが正しいんでしょうか?
912デフォルトの名無しさん:2006/03/03(金) 18:43:56
hello arg
で引数を認識させるのはちょっとややこしいかもよ。

ドラッグアンドドロップの話なんかが参考になるかと
http://sh1.2-d.jp/b/python/2005-08-04-00-40.html
http://sh1.2-d.jp/b/python/2005-08-06-16-16.html
913デフォルトの名無しさん:2006/03/03(金) 20:24:08
>>911
フォルダオプションの関連付け設定で
"C:\Python24\python.exe" "%1" %*
みたいに %* をつけてあげれば
hello.py arg
でも arg を認識すると思うけど
914デフォルトの名無しさん:2006/03/03(金) 20:49:50
インタプリタのあるフォルダのスクリプト読み込むだけならimport使おうがexecfile使おうが書き方違うだけで同じだな。
915デフォルトの名無しさん:2006/03/03(金) 21:58:50
最近Tkinterの勉強をはじめたんだけど、この手のGUIアプリを
起動しようとして、*.pyファイルをダブルクリックすると毎回DOS窓も
一緒に表示されてとても邪魔。何かいい方法ある?
916デフォルトの名無しさん:2006/03/03(金) 22:02:22
.pywにしてみれ
917915:2006/03/03(金) 22:05:09
>>916
即レス&サンクス!
こんなに簡単だっとは・・・orz
918デフォルトの名無しさん:2006/03/04(土) 22:31:01
pythonスレの過去ログ検索がでてたね。
なにを検索すればいいか、さっぱり思いつかないけど。
919デフォルトの名無しさん:2006/03/05(日) 09:47:14
外部アプリ、たとえば電卓(calc.exe)を起動したい場合、どうすればいいのですか?
920:2006/03/05(日) 09:54:00
ごめんなさい。すぐ自己解決しました。
os.system('calc.exe')
921デフォルトの名無しさん:2006/03/05(日) 22:22:30
import Python
922デフォルトの名無しさん:2006/03/05(日) 22:27:26
>>> import Python

Traceback (most recent call last):
File "<pyshell#0>", line 1, in -toplevel-
import Python
ImportError: No module named Python
923デフォルトの名無しさん:2006/03/05(日) 22:44:16
import orz, please
print orz, please
924デフォルトの名無しさん:2006/03/05(日) 23:41:44
>>> import orz, plese

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in -toplevel-
    import orz, plese
ImportError: No module named orz
>>> print orz, plese

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in -toplevel-
    print orz, plese
NameError: name 'orz' is not defined
925デフォルトの名無しさん:2006/03/05(日) 23:59:50
timport bydoc
926デフォルトの名無しさん:2006/03/06(月) 00:00:39
zabuton itimai
927検索の中の人:2006/03/06(月) 00:07:56
>>918
確かに、作ってみたものの、私もあまり使っていません。

オフィシャルドキュメント検索のほうは、
かなり便利に使っています。
928デフォルトの名無しさん:2006/03/06(月) 01:23:21
>>> print 0.0000001
1e-007

上のような工学的表記ではなく、普通に0.0000001を表示
させたいのですが、どうすればいいのでしょうか?
929デフォルトの名無しさん:2006/03/06(月) 01:29:22
>>928
print "%.8f" % 0.0000001
精度に注意
930デフォルトの名無しさん:2006/03/06(月) 01:35:09
>>929
素早いレス、ありがとうございます。助かりました。
931デフォルトの名無しさん:2006/03/06(月) 18:37:25
stan's python editorの解説/紹介サイト(できれば日本語)を
ご存知ならば教えていただけませんか
932デフォルトの名無しさん:2006/03/07(火) 23:17:22
        lヽ ノ l        l l l ヽ   ヽ
  )'ーーノ(  | |  | 、      / l| l ハヽ  |ー‐''"l
 /. S  | | |/| ハ  / / ,/ /|ノ /l / l l l| l S ヽ
 l   ・  i´ | ヽ、| |r|| | //--‐'"   `'メ、_lノ| ./ ・  /
 |.  P  l  トー-トヽ| |ノ ''"´`   rー-/// |  P |
 |   ・  |/     | l ||、 ''"""  j ""''/ | |ヽl  ・ |
 |.  E   |       | l | ヽ,   ―   / | | l.  E  |
 |   !!  |     / | | |   ` ー-‐ ' ´|| ,ノ| | |  !! |
ノー‐---、,|    / │l、l         |レ' ,ノノ ノハ、_ノヽ
 /        / ノ⌒ヾ、  ヽ    ノハ,      |
,/      ,イーf'´ /´  \ | ,/´ |ヽl      |
     /-ト、| ┼―- 、_ヽメr' , -=l''"ハ    |  l
   ,/   | ヽ  \  _,ノーf' ´  ノノ  ヽ   | |
、_    _ ‐''l  `ー‐―''" ⌒'ー--‐'´`ヽ、_   _,ノ ノ
   ̄ ̄   |           /       ̄
933デフォルトの名無しさん:2006/03/08(水) 18:29:06
perlばっか使ってるんですけどpythonも使いたいです。
perlと比較してpythonはどういう点が優れてたり
劣っていたりするのですか?
934デフォルトの名無しさん:2006/03/08(水) 19:26:12
Python は
データ・変数・関数の扱いがわかりやすい
C と連携させやすい

↑がPerlよりいいと思うよ
935デフォルトの名無しさん:2006/03/08(水) 19:27:41
>>1のwikiのFAQ嫁
936デフォルトの名無しさん:2006/03/08(水) 19:29:10
でもまあPerlの達人は
複雑なデータ構造になっても$と@と&を間違えずに書けるだろうし
PerlのC拡張を書いたりできるだろうから
pythonが優位ってわけでもないかもな
937デフォルトの名無しさん:2006/03/08(水) 19:32:26
初心者向けによくいわれることは、

長所
・コードが読みやすく書きやすい
短所
・日本ではマイナーで、本・サイトが少ない(入門向けなら十分だと思う)

perlだと、だいたい思った通りに実行されるけど、思った通りでない場合にハマってしまうことが多い。
簡単なところだと、変数と、要素が一個だけのリストの区別が曖昧だったりする。
pythonは比較的厳格なので理論的に書けば思ったように動作する。
938デフォルトの名無しさん:2006/03/08(水) 19:57:59
長所:A型と相性いい。
短所:B型と相性悪い。
939デフォルトの名無しさん:2006/03/08(水) 20:01:11
優れている点:インデント
劣っている点:その他全部と、人によりインデント

好印象な点:作者がアニオタじゃないところ
悪印象な点:あまりないが、人により作者がアニオタじゃないところ
940デフォルトの名無しさん:2006/03/08(水) 20:10:39
長所:LISPっぽい構文とJavaっぽい構文が混じっててきもい
短所:OOっぽい構文と、関数型っぽい構文が混じっててきもい

でもPerlよりはきもくない。
941デフォルトの名無しさん:2006/03/08(水) 20:25:18
便乗質問です.
最近,「Javaでなぜつくるのか」を読みました.
大学ではPythonで実験データ処理をしていたのですが,
本書を読んでも,Javaとの違いがいまいちわかりません.
Javaの特徴といえる,
  ・コンポーネントの再利用
  ・オブジェクト指向
  ・マルチプラットフォーム
に関して,Pythonとの違いがあれば教えてください.
942デフォルトの名無しさん:2006/03/08(水) 20:27:54
>>933
何ゆえPythonを使いたいとオモタの?
943デフォルトの名無しさん:2006/03/08(水) 20:28:18
javaってコンパイル要るよね
944デフォルトの名無しさん:2006/03/08(水) 20:36:39
>>941
その3項目で比較してもねぇ・・・
JavaはPythonなどのスクリプト言語と比べて構文的にも意味論的にも大規模向けってのが一般論か。
裏返せばJavaは全体的に書くのが面倒くさい。
945デフォルトの名無しさん:2006/03/08(水) 20:37:06
マジメに答える気があるようで、やっぱ無いだろ。
短所:IDEでコンプリートするのが面倒なんだよpythonって。
946デフォルトの名無しさん:2006/03/08(水) 20:55:48
pythonを使い続ける特典:科学技術系マクロに困らない。Googleに入社できるかもしれない。
pythonを使い続ける弊害:"}"や";"を忘れる。
947デフォルトの名無しさん:2006/03/08(水) 21:04:51
出たGooglewwwwwwwwwwwwwww
948デフォルトの名無しさん:2006/03/08(水) 21:11:58
華麗にスルー
949デフォルトの名無しさん:2006/03/08(水) 23:03:48
久々の撒餌で盛り上がったけど毎度のネタでそろそろ飽きてきた…
950デフォルトの名無しさん:2006/03/09(木) 00:26:30
Pythonはあとからソース見ても
何をやってるかperlよりも分かりやすいんじゃない

みつを
951デフォルトの名無しさん:2006/03/09(木) 01:17:27
微妙にスレ違いかもしれないけれど、
djbdnsとかqmailで有名な前野さんのページって所属と一緒にアドレス変わりましたか?
彼のpython関係のページを見たいのだけれど。
新しいアドレスご存知の方あったら教えてください。
952デフォルトの名無しさん:2006/03/09(木) 01:40:41
RubyだかPerlだと文が値を持つので
def max(a,b)
if a>b then a else b end
end
と書けるとか誇られちゃったりしてる記述がありますが、
def max(a,b):
if a > b:
return a
else:
return b
で何か不都合とかあるのでしょうか?
Pythonだけしか知らないと「式」も「文」も区別が付かないので
余計謎が深まります(「式」=「戻り値のある文」って説明になってないよぉ)。
953デフォルトの名無しさん:2006/03/09(木) 01:56:05
式だけでは論理的には部品に過ぎない。
文となって初めてプログラムと呼べる。
954デフォルトの名無しさん:2006/03/09(木) 01:57:51
>>952
言いたいこととはズレるけど

def MAX(a, b):
 return (a>b and a) or b

で出来たよ
955デフォルトの名無しさん:2006/03/09(木) 02:01:11
式だと
a = if n > 0 then "big" else "little" end
とか
a = case n
when 0
"zero"
when 1, 3
"odd"
when 2, 4
"even"
end
と書けるのが少し嬉しい
956デフォルトの名無しさん:2006/03/09(木) 02:08:07
>>952
Python 2.5 では a if a > b else b と書けるようになる予定。
http://mail.python.org/pipermail/python-dev/2005-September/056846.html
957デフォルトの名無しさん:2006/03/09(木) 03:50:11
>>954
その使いかたは危険。
(0 > -1) and 0 or -1 => -1
958デフォルトの名無しさん:2006/03/09(木) 10:11:57
そろそろ演算子の優劣とかがワケワカになってきた
従来の内包表記ですでに結構微妙

自分で書く分にはカッコを補ったりしてるけど…
959デフォルトの名無しさん:2006/03/09(木) 11:26:37
and と or の短絡をそのままCの三項演算子みたいに使うと危ないんだよな
if cond then expr1 else expr2
みたいのは
(cond and (expr1, ) or (expr2, ))[0]
だっけ?
960デフォルトの名無しさん:2006/03/09(木) 13:00:48
これ以上短くしようとすると構文が歪むだけだから無理しなくていいよ
961デフォルトの名無しさん:2006/03/09(木) 13:41:42
lightson.dip.jp/zope/ZWiki/006_e3_82_b3_e3_83_a1_e3_83_b3_e3_83_88
にあるコメントなんですけど,
"""と"""で囲まれた部分って複数行にわたるストリングスではないのですか?
関数部分にあるのは関数のdocstringですよね
962デフォルトの名無しさん:2006/03/09(木) 14:26:14
学級新聞の内容に突っ込んでも仕方ないだろ。
963デフォルトの名無しさん:2006/03/09(木) 16:35:52
ML で御大二人が熱くなってるけど…

ym さんの言っていることを否定してまで
反論する理由は何もないと思うんだけどな。
964デフォルトの名無しさん:2006/03/09(木) 17:05:40
どこのMLかもわからん
965デフォルトの名無しさん:2006/03/09(木) 18:28:53
Python-ml-jp 3491 以降くらい
966デフォルトの名無しさん:2006/03/09(木) 18:50:53


  M L で や れ こ の ヘ タ レ が

967デフォルトの名無しさん:2006/03/09(木) 19:05:24
     !    //  | !/  / / /\  ',  ヽ V
   │   //    | /   //| / _ヽ l   | j|
   │  /.|    |l  ア メ / / /´  `、|   ∨
     ',  //|    |! / ‐ 、  ´ ! ´__  l|    |
     ヽ/ |     |,、‐'' "丶´   '´ ̄`ヾ|    |
     / /|      |                |    |
      { |/|     |        i     │  ハ
     ∧ !l |     |        _      /   | ヽ  あらあら、うふふ♪
     / : :V│     |        ̄‐´   /|   l \ 〉 
   /::: : /´ |      |> 、       ,.ィl: : l   ,'  ヽ
  /'"´ _\ |    | : : : |` - 、 _,. ´ |l: /  /\  /
  レ '´   ヽ!     |ヽ: : :|        V  /   \>
968デフォルトの名無しさん:2006/03/09(木) 19:38:21
>>963
ちゃんと読んでないけど、
ymたんは「LANGの設定=OS全体のグローバルな設定」と短絡してる希ガス。
ムネオたんの解説は(問題の解としての好き嫌いは別にして)正しい。
969デフォルトの名無しさん:2006/03/09(木) 19:51:39

       ,..-一-、          
.     |o   |_                   ||  ||
    r―――  .|  ヽ    r,===、. ll   ll ==== ll''~~ヾ ,,.===.、 r,==.、
   (   r―-一'   )     .ll.   ll  ||   ||   ||  ll   || ||   || ll   ||
   ヽ_|  ____.ノ     .ll、___,ll  ||   ||   ||.   ll   ll ヾ_ , リ ll   ll
      |    o|      ll`~~~   ``==ll  ``= ~   ~   ~~~
      ヽ__ノ       ll       =''~

      iilll|||||||llllii

970デフォルトの名無しさん:2006/03/09(木) 20:09:29
>>968
>ちゃんと読んでないけど、
>ymたんは「LANGの設定=OS全体のグローバルな設定」と短絡してる希ガス。
>ムネオたんの解説は(問題の解としての好き嫌いは別にして)正しい。

LANG=en_US.UTF-8 python だけでいいのなら、environment.plistで端末デフォルトを変更させようとする方がアレだと思うけどなぁ。
971デフォルトの名無しさん:2006/03/09(木) 20:16:26
質問者が一番大人という滑稽さ
972デフォルトの名無しさん:2006/03/09(木) 20:35:48
"この場合の" 解決策
"一番タイプ数の少ない" 解決策

"応用範囲の広い" 解決策
"今後の未来世界においてあるべき" 解決策


いろいろあるし弊害とかも理解しようよってのが本筋だと思う
"xxが正しい" って言っちゃうのはちょっとイタイ...

(投稿すると詳しく丁寧に教えてくださるので感謝・尊敬はしています。
あくまで今回の件に関しての感想ね)
973デフォルトの名無しさん:2006/03/09(木) 20:48:44
ソースコード(test.py)を実行するときにはPythonシェル上では
>>> import test
以外に何がありますか?
974デフォルトの名無しさん:2006/03/09(木) 20:54:29
execfileとか、os.systemとか
975デフォルトの名無しさん:2006/03/09(木) 20:58:12
名前空間汚れるような気がするからexecfileのが好きだが、ゴミ.pywできるんで20点減点
976デフォルトの名無しさん:2006/03/09(木) 21:44:35
てめー!!インデントむちゃくちゃなもん貼るなっつーのつーの!!
977デフォルトの名無しさん:2006/03/09(木) 21:50:47
皆最初は失敗するものさ
978デフォルトの名無しさん:2006/03/09(木) 21:57:03
>>> import test
>>> del test
979デフォルトの名無しさん:2006/03/09(木) 22:06:34
print strhoge.encode('xxx-xx') するのは旧式なやり方、
というのがようワカランかった。 なんでこの書き方は古いって言われるの?
OSや環境に左右されない確実な方法だと思って漏れは愛用していたんだが。
980デフォルトの名無しさん:2006/03/09(木) 22:10:10
ムネオタン、永田議員みたいにはりきってたのに、あっさり足元すくわれてカワイソス (´・ω・)
981デフォルトの名無しさん:2006/03/09(木) 23:02:27
>>969
皆ほめてくれないけど、頑張ったんだよね。よしよし…。
982デフォルトの名無しさん:2006/03/09(木) 23:13:07
少なくともMac OS Xでは鈴木さんのやり方が一番まとも
983デフォルトの名無しさん:2006/03/09(木) 23:22:20
OSXでLANG設定したらTeXの出力がみんな化けるようになった。
984デフォルトの名無しさん:2006/03/09(木) 23:45:35
いやどっちが正しいとかいう話じゃなくて目的によって
分かれる話なんですよ。

ただ、"こうあるべき"っていう話は度がすぎると
押し付けがましくなっちゃうっていうわけで、
エロい方には珍しいパターンの展開だったなぁっていうだけだと思う。



そろそろ次スレかな
985デフォルトの名無しさん:2006/03/10(金) 00:12:29
LANG=ja_JP.eucJP pythonで、、、

>>> print u'あいう'
あいう
>>> import sys
>>> sys.stdout.write(u'あいう')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

糞だなこの仕様。
986デフォルトの名無しさん:2006/03/10(金) 00:47:47
perlのunicode対応よりまし
987デフォルトの名無しさん:2006/03/10(金) 00:59:10
>>982 えー? [Python-ml-jp 3502]によれば標準出力をファイルにリダイレクトしたら
エラーになっちゃうんでしょ?それがまとも?
988デフォルトの名無しさん:2006/03/10(金) 01:00:30
>>> import codecs, sys
>>> Writer = codecs.getwriter("euc-jp")
>>> sys.stdout = Writer(sys.__stdout__)
>>> sys.stdout.write(u'あいう\n')
あいう
>>> print u'あいう'
あいう
>>>
989デフォルトの名無しさん:2006/03/10(金) 01:01:18
ローマ字表記最強
990デフォルトの名無しさん:2006/03/10(金) 01:05:08
早く寝なさい
991デフォルトの名無しさん:2006/03/10(金) 01:07:04
だから全部現代英語にしちまえばいいんだよbyアイザック=アシモフ
992デフォルトの名無しさん:2006/03/10(金) 01:10:15
他のMLの話、超うざい。読んでない奴だって居るんだ。そっちでやれ。
993デフォルトの名無しさん:2006/03/10(金) 01:14:47
>>992
っ[チラシの裏]
994デフォルトの名無しさん:2006/03/10(金) 01:15:14
日本語じゃなくても Unicodeではまったことがあった。
データベースにSQL渡す時に「SQLは string type にしろ!」ってエラーが出た。
どう見ても文字列なのにどういうこっちゃって調べたら
スクリプト内に書いたSQL文が Unicode Typeになってるのが原因だった。
それで結局 str関数で変換したら通るようになった。
995デフォルトの名無しさん:2006/03/10(金) 01:29:45
>>> u'じゃあ次スレは0からを使いきりでよろしく'
u'¥u3058¥u3083¥u3042¥u6b21¥u30b9¥u30ec¥u306f¥uff10¥u304b¥u3089¥u4f7f¥u3044¥u304d¥u308a¥u3067¥u3088¥u308d¥u3057¥u304f'
996デフォルトの名無しさん:2006/03/10(金) 01:54:36
print "44Ki44OD44OB44On44Oz44OW44Oq44Kx".decode("base64").decode("utf-8")
997デフォルトの名無しさん:2006/03/10(金) 11:41:04
>>> print "44Ki44OD44OB44On44Oz44OW44Oq44Kx".decode("base64").decode("utf-8")

Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeError: ASCII encoding error: ordinal not in range(128)
998デフォルトの名無しさん:2006/03/10(金) 12:13:55
u'\uff9c\uff9b\uff80'
999☆次スレ☆:2006/03/10(金) 13:20:01
Pythonについて0から教えてください
http://pc8.2ch.net/test/read.cgi/tech/1126073956/l50
1000デフォルトの名無しさん:2006/03/10(金) 13:21:22
たぷるタソ (;´Д`) ハァハァ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。