[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 22:14 / Filesize : 131 KB / Number-of Response : 577
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part 26



1 名前:デフォルトの名無しさん [2008/04/29(火) 23:47:08 ]
Python オフィシャルサイト
ttp://www.python.org/
ttp://www.python.org/doc/
日本Pythonユーザ会
ttp://www.python.jp/Zope/
ttp://www.python.jp/doc/
FrontPage - Pythonのお勉強
ttp://python.rdy.jp/
前スレ
pc11.2ch.net/test/read.cgi/tech/1206876081/
◆関連スレッド
Microsoft IronPython 1.0
pc11.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
pc11.2ch.net/test/read.cgi/tech/1153585095/
Python Challengeをやろう!
pc11.2ch.net/test/read.cgi/tech/1175919288/
Pythonについて(アンチ専用)
pc11.2ch.net/test/read.cgi/tech/1203557046/
Pythonに見られるインデントによる制御構造の是非
pc11.2ch.net/test/read.cgi/tech/1169473442/
pythonがこの先生きのこるには
pc11.2ch.net/test/read.cgi/tech/1167996371/
Eclipse統合M24【Java/C/PHP/Ruby/Python/Perl】(PyDev)
pc11.2ch.net/test/read.cgi/tech/1200918324/
【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
pc11.2ch.net/test/read.cgi/tech/1209289408/
デザパタ + Python/Ruby/Smalltalk part2
pc11.2ch.net/test/read.cgi/tech/1175959706/
2ch検索: [python]
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python

2 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:47:59 ]
>1


3 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:50:23 ]
初めてのPython 第2版
www.amazon.co.jp/dp/4873112109

4 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:53:00 ]
     _
  -「 ̄  |
  | |   |    なんかバギしたら>>1乙でた
 || +|              ありえん(笑)
  .L ‐--‐'ヽ
 |l リV _`   ≡乙
  |cl | ´ヮ ノ/
  .l レ l |
  / | +|

5 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:53:45 ]
関連書籍
ttp://python.rdy.jp/wiki.cgi?page=%B4%D8%CF%A2%BF%DE%BD%F1

6 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 02:49:36 ]
日本語対応における注意点のようなもの
ttp://python.rdy.jp/wiki.cgi?page=%C6%FC%CB%DC%B8%EC


7 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:39:57 ]
前スレ>>998
2.5ならカリー化できるみたいよ、
d.hatena.ne.jp/kei10in/20080408/1207660199

8 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:29:06 ]
くだすれPython(超初心者用)
pc11.2ch.net/test/read.cgi/tech/1207878910/

9 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:52:34 ]
【pygame】pythonでゲーム製作【ぱいがめ】
pc11.2ch.net/test/read.cgi/gamedev/1126605105/

10 名前:デフォルトの名無しさん [2008/04/30(水) 22:44:25 ]
自分の環境で利用できるモジュールの一覧を取得する方法ってありますか?




11 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:15:16 ]
pkgutil.iter_modules

12 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 02:27:16 ]
>>11
ありがと、ちょう便利。

13 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 11:14:25 ]
20行程度のコードでクラス作るやつってなんなの?変態?

14 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:08:38 ]
継承してるんだとすればそんなの当たり前だろ

15 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:47:35 ]
>>13
なんともいえない。20行程度なら全ソースを貼ってみ。

16 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 13:02:04 ]
>>15
お前がやってみろゴミクズが

17 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 13:13:06 ]
ポカーン....


18 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 13:14:23 ]
切り返しになって無さ過ぎて、煽りとしても成立してないぞ。
何を見て>>13を書いたのか、君の目撃例を出してみれって話だろう。
君が何を見て言っているのかの提示を、どうやって君の話し相手が「やる」んだ?

19 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 13:48:09 ]
自己解決しました。

20 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:11:15 ]
若い人はちょっとしたコメントにも全身全霊で反応してくれるので楽しいですの〜



21 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:15:19 ]
オッサンは下水に流れてフナの餌にでもなれ。

22 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:49:37 ]
20行程度貼るのを、そこまで拒否せんでもねえ。

23 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:20:35 ]
1関数500行以上、

っていうヘンテコルールが弊社に存在します

24 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:28:51 ]
自己解決禁止

25 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:31:13 ]
他者解決しました。

26 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:24:42 ]
イケメンハッカーが解決しました。

27 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:35:38 ]
解決禁止

28 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:42:50 ]
自決しました。

29 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:23:20 ]
墓穴しました

30 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:43:53 ]
アナルを開発しました。



31 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:07:12 ]
ほんとにpythonの勉強をしている人達の掲示板とか、有りますか?

32 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:40:07 ]
>>31
このスレの住人がPython勉強してないみたいなこと言うな自己解決しました。

33 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:01:45 ]
ここは雑談スレ
本スレはあっち

34 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:35:12 ]
hello = ["Hello", "こんにちわ", "Здравствуйте", "Buongiorno", "Bonjour"]

みたいなデータを
hello['e'], hello['j'], hello['r'], hello['i'], hello['f']

みたいにアクセスするにはどうしたら良いでショッカー

35 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:53:37 ]
近所の本屋に jython 本が入荷してあった。
ちゃんと import になってたぞ。残念な気分になった。

36 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:55:51 ]
>>35
>ちゃんと import になってたぞ

じゃあ買うのよすわ

37 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:56:19 ]
工エエェェ(´д`)ェェエエ工

38 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:02:33 ]
imprtの方は希少価値がついたな

39 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:03:56 ]
>>35
イケメンハッカーは神になりそこねたと思うよ.

40 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:13:52 ]
>>35
自己解決したんですね。



41 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:19:27 ]
>>34について、興味がわいたので、
class hoge(list):
  def __getitem__(self,x):
    if x == 'e':
      return self[0]

としても、リストのインデクス0番目が帰ってこない。
print x及びprint type(x)とすると、
入力した値と<type 'str'>と帰ってくるんだが、どういう現象?

42 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:27:16 ]
なんで突然レス途切れるんだよ orz

43 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:29:00 ]
>>41
self[0]を使うとhoge.__getitem__がもう一度呼ばれるので
return list.__getitem__(self, 0)じゃないと駄目

>>34は普通に辞書を作った方がいいと思うが

44 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:29:49 ]
>>43
馬鹿な俺に答えだしてくれてありがとう

45 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:32:10 ]
非結合メソッドの扱いかただね、
勉強不足すぎるわ俺

46 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:45:08 ]
>>34
hello = {'e': 'Hello', 'j': 'こんにちわ', 'r': 'Здравствуйте', 'i': 'Buongiorno', 'f': 'Bonjour'}

47 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:53:06 ]
>>34
def dictize(word):
 for k,v in zip(idx,word):
  temp[k] = v
 return temp

idx = ['e', 'j', 'r', 'i', 'f']
hello = ["hello", "こん", "ズドラストヴィーチェ", "buongiorno", "bonjur"]

hello = dictize(hello) # 識別子hello を 辞書化
hello # 素のhelloリスト (データ)

こんなかんじやね。じこかいけつしました

48 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:56:05 ]
>>47
dictizeを用意しなくてもdict(zip(idx,hello))で辞書化できるよ

49 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:00:22 ]
辞書化いけつしました

50 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:01:31 ]
>>13
部品ぽいクラスだったら10行以内とかでも普通。
その辺に転がってるモジュールの中にいくらでも例がある。
要はどういうデータの束に名前を付けるかって言うだけの話なので、
小さいところに名前付けたらクラスも小さくなる
クラス=なんか大物
と思ってる人は、勉強した本が悪い



51 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:30:23 ]
perl の pmsetup みたいな egg プロジェクトの雛形を作成するスクリプトってありませんか?

52 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:39:00 ]
イスパニア語でおk

53 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:40:25 ]
?el pmsetup del perl Como el huevo no Est? all? cualquier escritura que crea el formulario de un proyecto?

54 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:45:23 ]
It was possible to solve it for myself.

55 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:50:41 ]
我其解決自己的

56 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:53:21 ]
>>54
It impossible for native English speaker to understand such a terrible English.

57 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:02:26 ]
>>> x = 'global'
>>> def f():
...   print x
...
>>> f()
global
>>> def f2():
...   print x
...   x = 'local'
...
>>> f2()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "<stdin>", line 2, in f2
UnboundLocalError: local variable 'x' referenced before assignment

ってなるのは何故?

58 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:06:13 ]
そういうもん。f2()のxは代入があるからローカル変数だと判断したんだろ。

59 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:46:28 ]
>>56
Why didn't you use a verb in your sentense?

60 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 02:27:16 ]
>>57
f2()内でglobalとして扱うなら、print x の前にglobal x とか入れるんじゃないかな。



61 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 03:34:58 ]
MLのStackless Pythonの内容は酷い

62 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 04:28:51 ]
長文ヌルーしてた…

63 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 06:37:46 ]
関数内のローカル変数が
同名のグローバル変数を隠蔽しちゃうってやつだね
JavaScriptも似たような挙動だった気がする

初めてのPythonにはみっちり書いてあったはずから
参照できる人は見てみるのもいいかも

64 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 08:21:24 ]
まともな入門書であればたいてい書いてある

65 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 08:43:42 ]
書いてある本ものすごく少なそうなんですが

66 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 08:55:35 ]
まともな入門書が少ないってことだね。
ちなみに「初めてのPython」はマルチバイト文字列の扱いについてまったく触れてないので、
「まともな入門書」に入りません。

67 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 09:15:07 ]
そこでJython本ですよ

68 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 09:29:03 ]
>>67
このスレ的にはどうなの?>Jython本
読んだ人感想プリーズ
ネットで読めるのは宗教っぽい妄信的な書評ばっかりで正直キモいと思っているんだが(www

69 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:20:29 ]
民Pyにつづいてそれもか

70 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:28:51 ]
宗教っぽいってこれ?
ttp://yoshiori.org/blog/2008/04/jython.php

確かにキモい(www
ていうかこのスレでnishioさんを「天才」とか「イケメン」とか言ってるやつってこいつじゃね?(wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww



71 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:30:20 ]
やんわりと褒めるぐらいなら一般的な対応だけど
これはないわwwww

72 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:33:43 ]
>>70
無色のネラーだからしょうがないよ(W

73 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 11:19:55 ]
アニキ?

アッーー!

74 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:06:04 ]
>stackless python でも「RuntimeError: maximum recursion depth exceeded」が発生します。
この人は何がしたいんだwwwwwwwwwwwwww

75 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:33:42 ]
スタックがない=再帰やり放題じゃね?フィボナッチ数列が美しくかけるんじゃね?

76 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 20:05:06 ]
予約した
imprtに期待age

77 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:52:49 ]
jp.rubyist.net/magazine/?0003-uva
>ちなみに python 2.3 で末尾再帰版 fact を計算したところ、
>n = 900 までは計算でき、 n = 1000 でスタックが溢れた。

これって本当?
1000でスタックが溢れたら大問題だと思うけど

78 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:07:35 ]
Py_DEFAULT_RECURSION_LIMITが1000だから当たり前
sys.setrecursionlimitで変更も可能

79 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:10:05 ]
>>78
それはスタック溢れとは言わないだろ。

80 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:39:44 ]
>>79
>>77の記事を書いた人に言ってあげなよ



81 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:46:51 ]
うへえ、そういう調査もせずに「あふれた」って書いちゃうのか

82 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:53:05 ]
2 つのプログラムの同一仕様検査の難しさ

83 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:31:58 ]
Python2.3.5(2005-02-08リリース)の頃は
エラーメッセージが違うのかなと思って実行してみたけど、

 RuntimeError: maximum recursion depth exceeded

と表示された。

84 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:32:08 ]
rubyistはエラーメッセージ読まないのん?

85 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:43:21 ]
処理系を信頼してないんだろ

86 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:57:34 ]
>>84
奴らは英語ができない情報ニート

87 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:13:31 ]
RuntimeError: maximum recursion depth exceeded

これを見た上で「あふれた」と言ったのか?


88 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:50:26 ]
>>87
もしかしたら1000に達する前にMemoryError: stack overflowが出たのかもしれない。

89 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:37:54 ]
んな小さとこで出るわけない

90 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:52:31 ]
数字が一致していることからしてもRuntimeErrorのほうだろうな



91 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:17:05 ]
モジュール名大改造PEPが更新
www.python.org/dev/peps/pep-3108

92 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:17:44 ]
「スタックが溢れた」と言っても差し支えないんじゃね?
Ruby では同じ文脈で stack overflow エラーが出るわけだから記事の話の流れからいっても自然だし
Python の sys.setrecursionlimit() の説明でもスタックという表現が使われている。

> setrecursionlimit( limit)
>   Set the maximum depth of the Python interpreter stack to limit. This limit prevents
>   infinite recursion from causing an overflow of the C stack and crashing Python.

個人的には>>80に同意。

93 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 06:52:48 ]
limitを超えたんだから
あふれた
でいいと思う

94 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 13:46:59 ]
どれぐらい末尾再帰ができるかどうかを調べているんだから
setrecursionlimitで値を変更するべきだと思うけど

95 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 13:49:57 ]
あくまで limit を越えたのはスタック容量じゃなくて再帰回数だから
溢れたとは言わないだろうな。

96 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:13:36 ]
お前ら、こういう話題が好きだったのか?

97 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:24:47 ]
処理系での末尾再帰最適化って、そんなに難しいのかな...
なんかちょっと頭のいい人ならすぐできそうな気もするんだが...
(まぁ、俺には難しいんだが...)


98 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:28:38 ]
まともな処理系なら JIT っぽいことしてると思ってるんだけど
(中間言語へのコンパイルかもしれないが)、
末尾再帰最適化を採用する事で
どれだけ JIT コンパイルのコストに影響が出るんだろうか。

99 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:47:23 ]
「この回数再帰したら止めてね」という設定値を越えたから止めただけなんだから、
溢れたとは言わないな。「limitに達した」じゃないかな。

100 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:50:16 ]
>>97
こんなの見つけた
aspn.activestate.com/ASPN/Cookbook/Python/Recipe/474088



101 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:04:56 ]
>>97
言語仕様と下位層による。
Rubyのブロック引数みたいなへんな言語仕様があると面倒だし、
末尾呼び出し最適化を考慮したスタックフレームを持つ機械の機械語や
そのような仮想機械へのコンパイルなら楽。

102 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:29:59 ]
もはや言葉遊びですね^^

103 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:19:33 ]
groups.google.co.jp/group/oklab-tech/browse_thread/thread/c4e7fcfba80ed87e

面白いのを見つけました。でもPythonで書き直すには
どうしたら良いかわかりません…orz

upload.cgi を python で書き直すとしたら
どう書いたら良いでしょうか?どうぞよろしくお願いします.

104 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:54:21 ]
細川wwww

105 名前:103 mailto:sage [2008/05/04(日) 16:55:34 ]
dbm = SDBM.open('db/id',0644)
dbm[hash] = id
dbm.close

このへん、わけわからん orz

106 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:03:55 ]
>>105
www.google.co.jp/search?q=python+dbm

107 名前:103 mailto:sage [2008/05/04(日) 18:46:34 ]
>>106
>>> db=shelve.open("db/id", "c")
>>> db["spam"]=1024
>>> db.close()
>>>
>>> db=shelve.open("db/id")
>>> db["spam"]
1024

こんなかんじですね。どもです。 ほかにdbmは
anydbm, pickle, shelve とか三種類くらいありました。

108 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:13:52 ]
www.python.jp/doc/2.3.5/lib/httplib-examples.html

>>> import httplib, urllib
>>> params=urllib.urlencode({'id':1, 'imagedata':"spam"})
>>> headers={"Content-type": "application/x-www-form-urlencoded",
... "Accept": "text/plain"}
>>> conn=httplib.HTTPConnection("localhost")
>>> conn.request("POST", "/cgi-bin/upload_py.cgi", params, headers)
>>> res=conn.getresponse()
>>> res.status
500

ここを見ながら、client側の部分を書いてみたのですが
うまく行きません…どう書いたら良いでしょうか?

109 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:17:01 ]
>>108
その upload_py.cgi の方に問題があるんじゃないの?

110 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:17:46 ]
参考にしてるところがPython2.3.5用だから古くない?



111 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:30:41 ]
>>110
それはないと思われ。

112 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:58:44 ]
>>109
#File.open("data/#{hash}.png","w").print(imagedata)
fname = "%s.png" % hash
file(fname, 'w').write(imgdata)

ここの所が間違ってたみたいでした。w のとこが r になってました。
>>> res.status
302
と、変更したら返されるcodeが 500 から 302 になりました。
200 じゃない…ということは間違ってる…よくわからんです orz

113 名前:103 mailto:sage [2008/05/04(日) 21:16:12 ]
db = shelve.open("tmp/id", "c")
db[hash] = id
db.close()

>>> import shelve
>>> db=shelve.open('tmp/id')
>>> db["e09f6a7593f8ae3994ea57e1117f67ec"]
'1'

上手くいきますた!

114 名前:103 mailto:sage [2008/05/04(日) 21:18:52 ]
data = <<EOF
--#{boundary}\r
content-disposition: form-data; name="id"\r
\r
#{id}\r
--#{boundary}\r
content-disposition: form-data; name="imagedata"\r
\r
#{imagedata}\r
\r
--#{boundary}--\r
EOF

あと、もう一つだけ
バイナリデータをPOSTする場合はこの書式に沿って
組み立てないと駄目なのですか?

115 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:49:23 ]
スレ違いっつーか板違いだ

116 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:22:17 ]
お前は黙ってろ

117 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:27:57 ]
内容的にWebProg板だな

118 名前:デフォルトの名無しさん [2008/05/05(月) 01:02:08 ]
103を見て絵に描いたような教えて君かと思ったが意外にガッツあるな。期待age。

>>112
302はリダイレクトだよ。レスポンスのLocation:ヘッダに次に読むべきURLが示されている。
詳しくはHTTPの仕様書を読むべし。

>>114
そんな希ガス。ググったら同じ質問をしている使徒を見つけた。一番下にコード例あり。
www.velocityreviews.com/forums/t335298-multipartformdata-in-an-http-client.html
emailモジュールにもマルチパートのメッセージを作る機能があった希ガス。
docs.python.org/lib/module-email.mime.text.html
この辺を参照のこと。

119 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:01:33 ]
水曜日に最後のアルファ

120 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:23:29 ]
chinpo



121 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:02:41 ]
pythonをやろうと思ってるのだけど、入門には「みんなのpython」と「pythonプログラミング入門」どっちがいいかな?
プログラム自体は初めてじゃないです。


122 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:08:07 ]
プログラム経験あるならネットのドキュメントだけで十分
本買うのが好きなら自分で手にとって選ぶのも好きになれ!

123 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:42:19 ]
python plograming language和訳まだー

124 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:53:30 ]
>>122
THANK YOU!!
基礎は書籍でしっかりやりたいから、自分で見てかうことにするよ

125 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:13:32 ]
基礎からやりたいのならみんPyじゃね?
もう一つの方は流しすぎ

まあ自分で中身見て選ぶのが一番だけどな。

126 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:56:10 ]
基礎だけ学びたいなら最近でたJythonの本でいいと思うよ


127 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:57:58 ]
それはないわ(w

128 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:51:36 ]
neet山

129 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 17:59:55 ]
プログラミング経験者があえて書籍で入門するなら
初めてのPythonくらいの内容がないと無駄遣いに終わると思う


130 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:08:03 ]
選択肢なんでほとんどないんだから、
立ち読みして比べりゃいいじゃん。



131 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:18:37 ]
Jython本を買えば間違いは無い。正しくも無い。

132 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:39:50 ]
プログラムしたことがあるのであればWebのチュートリアル読めばすむ話のような気がする
そんなに複雑じゃあない
本家のチュートリアルが読めるのであればなおよい

133 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 19:25:00 ]
だから、本を買いたいんだろ。
だったらJython本しか無い。

134 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:24:53 ]
俺も最初は本よりチュートリアルの方が良いと思う。
まず使えるようになることに焦点が合ってるし、内容に間違いが少ないから一番確実。


135 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:38:55 ]
テストサーバ動かして python の cgi 動かしたいんだけど、Leopard の apache2 に mod_python 入れた人いる?
それとも素直に CGIHTTPServer.CGIHTTPRequestHandler つかってテストに使った方がいいかね。

136 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:12:20 ]
>>135
MacPortsつかえばすぐ入るんじゃね?

137 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:19:44 ]
>>135
Leopard の Apache2 でハマったばかりなんで、晒しとく。
pc11.2ch.net/test/read.cgi/mac/1190016804/683-693
洩れは結局 i386 な Apache2 を入れ直した。

138 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:40:17 ]
Jython本買ってきました。
クソでした。
理由は言うまでもない。

139 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:42:25 ]
言わないと工作としか思えないわ。

140 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:44:12 ]
ぶっちゃけ作りが雑な気がするんだが>Jython本
図とか表とかほとんどないし。
文章ばっかり。
内容もあまりぱっとしないよねぇ...。



141 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:00:55 ]
今出ている本って内容が古すぎたり中途半端だったりであまりおすすめできるものってないような。
何か作りながらチュートリアルかリファレンスを参照するのが効率的かもね。

142 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:58:22 ]
Jython本はコードが見難いね、説明してるのがどれだかわかりにくい
編集がちょっと丁寧な仕事すればだいぶ違ったと思う
内容的には初心者な俺には勉強になってる
でも中途半端だな、対象読者一体どこだよ、とは思った
Python全然知らないときつくないか?Javaも結構知ってないときつくないか?

143 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:13:50 ]
Jython本の執筆者のtwitter読むと解るけど、かなりの突貫執筆だったようだ。
あの若さでこれだけの仕事したんだから、まあ認めてやってもいいんじゃないか?


144 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:20:51 ]
イケメンハッカー信者はもういいよ

145 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:22:23 ]
本買う人にとっては執筆に至る経緯なんて関係ないしなぁ

146 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:24:27 ]
まあ信者も認めるほどの出来だってことだよ。

147 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:09:57 ]
宗教論はもういいよ。イケメンハッカーの話はyosoでやれ。


148 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 06:21:33 ]
粗悪本乱発しすぎ

149 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 06:40:46 ]
Jython本ほど最高の本は無いよ。
書いてあることがスラスラと頭の中に入ってきて、
まるでコードが踊ってるみたい。
びっくりするようなイノベーションも体験できて、
いいと思うんだけどなあ。

最新の本だから最新のことが載っていて安心だし。

150 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 06:42:36 ]
さっき読んでたらすぐ眠たくなって寝てしまったが



151 名前:150 mailto:sage [2008/05/06(火) 06:48:52 ]
でも、起きてからすらすらと本の内容が浮かんできたな

152 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 07:50:20 ]
今知ったんだが、彼って自分のことイケメンなんぞと言ってるんだ!


153 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 07:56:24 ]
IKEMEN

154 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 08:36:13 ]
流れが意味不

155 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 09:37:43 ]
stackless pythonとpsycoは共存できないんだな。
残念だ。

156 名前:135 mailto:sage [2008/05/06(火) 12:19:12 ]
とりあえず mod_python ダウンロードしてきて
./configure
vi src/Makefile
LDFLAGS= 行の "-arch i386 -arch ppc" を "-arch x86_64" で置換。
make
file src/.lib/mod_python.so してみると、
src/.libs/mod_python.so: Mach-O 64-bit bundle x86_64
と表示されるので 64ビット版にはなっているようだ。

と、ここまではいい.

sudo /etc/apache2/httpd.conf で

LoadModule python_module libexec/apache2/mod_python.so

って入れてから

httpd -t

やるとシンタックスエラーでるのよね。。。。
って、これ単なる設定の問題か。

>>137
なんて良いタイミング!参考にしてみるよ

157 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:26:02 ]
Webのチュートリアルは日本語の品質がいまいちな部分がない?

結局は英語にあたらないと意味が取れない事がよくある。

書籍のチュートリアルの方が日本語がいいし、読みたいところに
すぐ飛べるのでいいと思う。

他言語経験者なら、これ読めばある程度できるようになるんじゃ
ない?

158 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:32:25 ]
他言語経験者なら普通に公式チュートリアルでいいだろ
ねえなんで本買わせようとすんの?

159 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:02:06 ]
本のほうが読みやすいから

160 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:34:16 ]
Webの方がコピペできていい



161 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:06:39 ]
本が欲しいと言っているから。

162 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:25:07 ]
検索できる分デジタル版の方がいいけどね

でもチュートリアルの日本語書籍版はチュートリアルの読み方の部分が秀逸なので
立ち読みだけでもしておくといいよ

163 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:31:36 ]
>>157
> Webのチュートリアルは日本語の品質がいまいちな部分がない?
>
> 結局は英語にあたらないと意味が取れない事がよくある。

ここなり翻訳者宛のメールなりで問題点を具体的に報告すれば改善されると思われ。

164 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:33:08 ]
いま >163 がとてもいいことを言った。


165 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:41:13 ]
本を買って欲しいから。

166 名前:157 mailto:sage [2008/05/06(火) 19:48:43 ]
>163がとてもいいこと言ったと思います。

翻訳者あてのメールは敷居が高くても、ここになら書けるなぁと思った。
(でも私は書籍版買っちゃったから今後はWeb版読みに行く事は中々
ないはず)



167 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 20:08:55 ]
>>158
俺は他言語経験者で、公式チュートリアルで入門したけど本も買って勉強したよ。
Mark Lutz の Programming Python の第1版の原著を買った(確か当時は和書が1つもなかった)。
理由は「書籍から入手できる情報」≠「オンラインで入手できる情報」だから。
あと、1冊まるまる最初から最後まできちんと勉強することで「やり終えた!」という充実感があった。
これは結構重要なポイントのような気がする。
絶対本を買うべきだとは思わない。買いたい人は買えばいいと思われ。

ちなみに上記の本には誤植が多かったので読み進めるのと並行して全部メモしておいた。
読み終えたあとにまとめて Mark Lutz に報告したらオライリーの担当者からお礼のメールが来て
オライリーの本から好きなのを1冊プレゼントすると言われた。そんなの初めての経験だったから
意味が分からなくて「お金払わなくていいの?」とか聞いちゃったりして(無論無料で送ってくれた)。

168 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:29:18 ]
これはいい話

169 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:31:30 ]
threadって計算速度の向上に効果ある?
a = b1 + b2の計算を(a,b1,b2はarray)
b1とb2をthreadで計算して,
それぞれ計算終了後に足すというプログラムを作ったんだけど,
普通にb1とb2をメインスレッドで順番に求めて足した方が早かった...

ちなみにb1とb2の計算はダミーのforループ10000回です.

170 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:43:49 ]
>>169
ダミーループのような、単純処理を連続的に行う場合は、threadのメリットは少ないと思われ。
有り難味があるケースは、
・入力待ちの間に、他の処理をさせておきたい
・ネットワークを表現する際に、各処理を独立のモジュールみたいに動かしたい
など。



171 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:45:50 ]
>>167

第3版が手元にあるけど1552ページある。このサイズをまるまる勉強したとし
たら、尊敬します。すげー。



172 名前:デフォルトの名無しさん [2008/05/06(火) 22:39:53 ]
>>170
なる。やっぱりそんな気はしてた。。。
サンクス

173 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:49:58 ]
>>171
そんなにあったっけと思って書誌情報を確認したら第1版は902ページだった。

174 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 23:13:06 ]
>>169
マルチコアの場合は、計算スレッドを複数に分けてやると速くなったりする

あと計算規模が小さいとスレッドの生成・破棄のコストのせいで
高速化の効果が見えないよ

175 名前:Free Tibet mailto:sage [2008/05/06(火) 23:57:15 ]
>>167
オライリー信者乙

176 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:20:38 ]
>>175
そんな、人類の足引っ張ることしかできない悲しい奴みたいな言い方しないで
前向きに行きましょうよ。

177 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:24:08 ]
「きさま、マック信者だな?」

178 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:25:34 ]
「きみはゆくえふめいになっていたマックじゃないか」

179 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 08:13:21 ]
>>169
JythonやIronPythonだと速くなるかも知れない。
CPythonだと複数スレッドを同時に動かせないんで速くならない

180 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 11:57:52 ]
Python絡みで信頼のおける日本人って
柴田さんしか居ない状況?
他の人ってあっちの人と話したことないよね



181 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:01:59 ]
>>180
んなこたあない
もっと偉い人はいる
多くはないけど

182 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:02:11 ]
>>180
あっちの人と話したことがある=Python絡みで信頼のおける日本人
と言う事ならmatz

183 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:04:01 ]
多くの日本人Pythonistaは引きこもり

184 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:04:28 ]
柴田さんは信頼できるの?

185 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:04:50 ]
個人攻撃が始まった(www

186 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 13:18:23 ]
自分以上の人間を言いがかりで叩くって
気持ちいいんだもん。

187 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 13:57:56 ]
柴田淳はじまったな。

188 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 14:09:25 ]
>>182
ブレース採用の話しかしてないじゃんかw

そういう意味じゃなくて、
開発者が誰で誰がどれを担当していて
今どのモジュールが開発中もしくは放棄中とか
そういった情報を知ってる日本人のことだよ。

189 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 14:15:11 ]
186が184をカス認定している件。

190 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 14:29:11 ]
>>188
ある程度ならsvnのコミットのログとか
ソースコードのコメント読めば分かるんじゃないか



191 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:00:25 ]
pygame.orgの英文をなんとかしてほしいんだよね
英文を読んでまでのヤル気が必須になってるから
興味もった素人達にとっては敷居が高すぎる。
ただでさえわからないプログラム解説を、わからない英語で解説されるわけだから。
誰か、日本語翻訳サイトつくってよ
翻訳だけの協力でもいいよ、
俺がサーバー借りてサイト作ってもかまわない
サイト作りは出来るから。
なんなら、このスレのみんなでpygame公式サイトの日本語解説版作っていかないかな?

192 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:03:18 ]
まずはお前が率先して道を示せ。
話はそれからだ。

193 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:53:27 ]
ほとんどSDLのラッパーなんだからSDLをさらっと習得しちゃえば
なんとなくわかるっしょ。

194 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 17:47:19 ]
>179

>CPythonだと複数スレッドを同時に動かせないんで速くならない

そうなの?俺の持っている本では、

執筆時点(2006?)でフォークはWindowsのPythonでサポートされていない
けど、スレッドはすべてのプラットフォームのPythonでサポートしている・・・

みたいな事かいてあるよ。なのでサポートしていると思うんだけど、違うの?

195 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 17:54:04 ]
どこのクソ本だよそれ。

196 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 18:06:26 ]
>>194
C記述の拡張コードがマルチスレッドを考慮していないので
Python上ではマルチスレッドでも実質グリーンスレッド状態になる。
ちゃんとしたマルチスレッドな動作を期待するならJythonやIronPythonになるかな。
文脈でわかるのかもしれないけど「スレッド」といってもいろいろ観点があるから。

>>195
まちがっちゃいないけど説明不足でミスリードしちゃいそうだね。

197 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 18:13:21 ]
>>194
俺の理解では、Python のスレッドは交互に動いている。つまり、ある時点において1つのスレッドしか動かない。
だから、同時に(並列で)動くことを期待しているマルチスレッドプログラムは速くはならない。
>>170さんの言うように、あるスレッドが入力待ちをしていて、別のスレッドがGUIを司る、というような
マルチスレッドプログラムならば期待通りに、一見並列に動く。
こういう実装になっているのは、種々のモジュールにスレッドセーフであることを要求するのが困難だから。
間違ってたらゴメス

198 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:08:58 ]
194です。

なるほど。私が本のスレッドの説明の最初のとこだけしか読んで
なかったので、勘違いしてました。

もうちょっと読むと>197がいうとおりのような事も書いてました。
「いつでも1つだけのスレッドしか動いていない」って感じで。

現状(2006年?)ではスレッドを複数のCPUに分配できない、み
たいなことも書かれてた。

という事は計算が速くなるわけないですね。>170みたいな用途に
限る、ということか。

199 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:09:16 ]
>>183
自分一人の例を全員の例のように敷衍するひとのひとりですね

200 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:12:07 ]
>>191
ttp://www.halb-katze.jp/pygt/




201 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:49:30 ]
>>191
> 英文を読んでまでのヤル気が必須になってるから
> 興味もった素人達にとっては敷居が高すぎる。

敷居が高過ぎると思ってしまうのは、その人自身の勝手な固定観念なんだけどな
あと敷居が高過ぎると思って、よりつかない人は、そこまでのモチベーションしかないんだと思うよ
人に聞いているようでは、マジで駄目なんだよ

> 俺がサーバー借りてサイト作ってもかまわない
> サイト作りは出来るから。
> なんなら、このスレのみんなでpygame公式サイトの日本語解説版作っていかないかな?

個人的、希望だが、英文のpygameを学習する際に頻出する英単語帳をつくったりとか、
英文を読み解くためのテクとかを、補助ツールを扱うwikiを作ってくれ
頻出する英単語を500語に厳選して、暗記すれば、かなり読み解けると思うよ

調べるためにググる際も英文の方のほうがひっかかるし、内容が高いことが多い
Wikipediaも英語版のほうが内容が豊富だし、すごくマイナー単語も載っているし
英文には、絶対慣れたほうがいいよ
あとわざわざ翻訳すると逆に読みづらくなるし、理解も難しくなる


これは、既出?
www.unixuser.org/~euske/doc/pygame/

あと下の本をどういう読み方でもいいから、読んで感想を聞かせてほしいところだね
Amazon.com: Beginning Game Development with Python and Pygame: From Novice to Professional (Beginning from Novice to Professional): Will McGugan: Books
ttp://www.amazon.com/Beginning-Game-Development-Python-Pygame/dp/1590598725/

とりあえず、wikiをつくって、2chに晒してみたら?
協力してくれる人もいるかもしれないよ

202 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:54:46 ]
マルチcore対応のスレッドが使えるスクリプト言語を実装するのは難しいの?
Rubyも結局1つでしか動かないらしいし。

203 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:08:34 ]
pygame翻訳しろの話は、くだすれPythonスレとマルチになってたんだな。

204 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:11:45 ]
pygameスレにも貼ってあった

205 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:17:16 ]
pygameなんてなんか人前で言いづらいな。

206 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:18:59 ]
こういうのって勝手に翻訳して公開していいんだっけ?
まぁ事後承諾だろうと拒絶されるこたまずないだろうからどーでもいいんだろうけど

ゲーム用にしか聞こえないよなw

207 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:22:24 ]
>>202
言語自体は各スレッドにインタプリタを1つずつ用意することで簡単に並列化できると思われ。
問題は膨大な量のライブラリモジュール、特にC等で書かれたライブラリのバインディングだ。
スレッドセーフでないライブラリは統合不可ということになる。つまり言語として制約が大きい。
大域変数でメモリ管理ってのは割とありがちだけど、これはスレッドセーフではないのでNG。
こういうものを除外していくとどんどん言語としての有用性が下がっていく。
代替品の再実装なんてやってられん。PythonにしてもRubyにしてもそんなところだと思われ。

208 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:24:13 ]
pygameがLGPLだからドキュメントも同じ扱いになるんじゃないか?
ちゃんと調べてはいないけど

209 名前:207 mailto:sage [2008/05/07(水) 20:41:33 ]
あんま関係ないけど、OpenMPで並列化されたライブラリを拡張モジュールとしてPythonに組み込んだことがある。
これだと並列化がモジュール内で閉じてるから何も問題ない。
俺はOpenMPで並列化された線形解法ライブラリのラッパを書いてPythonに組み込んだ。フツーに使えた。
ただし、Intel C コンパイラの場合はPython一式を -openmp オプション付きでコンパイルする必要があった。

あと、PythonでMPIプログラムを書いてマルチコア環境で実行するというアプローチもあるね。
これだと真に並列に動作するはず(マルチスレッドプログラミングと同じ要領というわけにはいかないけど)。
Python用のMPI実装にはいくつかあった希ガス。

210 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:53:31 ]
PythonのWikiエンジンってあったんだね
知らなかった

使い勝手は、どうなの?

Python製Wikiエンジン"MoinMoin"、日本語化担当者募集
www.python.jp/Zope/PyLog/1210080971




211 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 21:09:58 ]
moinmoin.wikiwikiweb.de/WikiEngineComparison

比較ページを見つけたけど、いい事しか書いてないなぁ。
まぁMoinMoinのサイトだから仕方ないか。

212 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:00:43 ]
>>207
勉強になった。
スレッドセーフなモジュールを分類してかき集めるってプロジェクトがおこっても
良さそうとか思ったけど見つけられなかった。いろいろと難しいことがあるのかな。

213 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:46:07 ]
>210

昔、自サイトでつかってたけど、まあ中の上ぐらいかしら。
設計はそれなりに綺麗で、たとえばpybloxsomとかから
エンジンだけ利用してレンダリング、とか、pyblosxomの
間で相互リンク、とかできた気がする。

ただ、見た目のきれいさとかはないけどね(デフォルトの設定では)


214 名前:Tracの方が良いよな mailto:sage [2008/05/08(木) 00:07:36 ]
先に言っておく。この話題で
MoinMoinじゃなくてTracの方がいい
なんて思ってる人は、何かがずれていると自覚したほうがいい。


215 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 10:54:55 ]
MoinMoinで気に入ってるのは
Pythonのソースを表示すると
色分けで表示するってやつかな。

あと微妙に軽い。

欠点として‥登録ユーザじゃないと
ページ変更時刻がUTCで記録されてしまう。
これが地味に嫌だ

216 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 13:12:49 ]
以前、翻訳してみようとWikiを作ってみたけど頓挫しているサイト
Displayモジュールの一部しかまだ翻訳してません
ぶっちゃけ翻訳の作法とかよくわからないし・・・

pygame日本語ドキュメント
wiki.livedoor.jp/py_gamer/d/FrontPage

手伝ってくれる人がいたら嬉しい
ちなみにMLで聞いてみたところドキュメントもLGPLらしいね

217 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 13:41:35 ]
>215

今使ってないからなんとも言えないけど、
Config.tz_offset ってのを書換えれば良さそうですが...
(デフォルトのタイムゾーン)


218 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 13:43:15 ]
もいんもいん

219 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 14:19:37 ]
>>212
調べたことないけど、スレッドセーフなモジュール(特にC等で書かれた拡張モジュール)は
ほとんど無いんじゃないかなあ。

例えばCでマルチスレッドのプログラム書いてみると分かるんだけど「このコードはスレッドセーフです」って
言い切るのって結構大変。呼び出しているライブラリ関数がスレッドセーフかどうか逐一確かめて回らないと
いけないから。逐次プログラムの一部分だけをマルチスレッド化できるOpenMPがいかに便利かを実感する。

その点、Java は最初からマルチスレッド対応だから楽チン。
マルチスレッドで真に並列動作するPythonを実現するための一番の近道はJythonだろうね。

220 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 15:12:06 ]
そのレベルの話であれば、Javaがマルチスレッド対応だから楽ちんだなんてとてもいえないと思うけど。
同期とかの方法と、VMのメモリモデルが規定されているだけでしょ。
結局、使うAPIとかライブラリがMT-Safeかどうか調べなきゃいけない。標準のAPIについては大体書いてあるけど。



221 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:21:29 ]
>>216
今すぐは無理だけど、暇があったら手伝いたい。
勝手に編集してもいいの?

222 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:20:40 ]
>>216 >>221
おまいらがんがれ。

wikiで自分が翻訳したページを他人に修正されると、なんか一瞬犯されたような気分
になったりするけどそんなケツの穴の小さいことは気にしないでがんがん翻訳してくれ。

223 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:26:05 ]
>>222
気にしてるじゃねーかw

224 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:56:46 ]
正規表現検索で
"from A import B, C, ..."
という文字列から A, B, C, ... の部分を抜き出したいんだけど、
正規表現のグループマッチングだけでは対処できない?

re.findall("from\s+(識別子)\s+import\s+(, (識別子))*", source) # 識別子=[\w][\w\d]*

ってやって出てきたマッチオブジェクトは
"A"
"B"
",C"
"C"
っていうふうに、カンマ込みででてきてしまう(当たり前だけど)
"A" "B" "C" だけ抜き出したい場合はやっぱりその他の文字列処理しないとだめ?



225 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:35:11 ]
非グループ化の(?:...)が使えないかな

226 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:41:18 ]
>>224
[A-Z]

227 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:48:28 ]
re.findall('[\w*]+', src) して from と import を filter

228 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:56:39 ]
>>255
おお、こんなべんりなものが!

import re
source = """
from A import BB
from A import CC,DD
"""
print re.findall("\s*from\s+([\w\d]+)\s+import\s+(?:,?\s*([\w\d]+))+", source)

とやってみた。これだと "from 3 import , 4, 5" にもマッチしちゃうけど、
そもそもソースのコンパイルが通る事が前提だから、この簡略化した
判別方法でもOKだという事に気づきました。
が、
上記コードを実行すると
[('A', 'DD')]
という結果になります。期待していたのは
A, BB, A, CC, DD
なんですがグループの繰り返しだけでは取得できないのでしょうか



229 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:37:49 ]
正規表現である必要ってあるの?
こういうなの↓の方が簡単でよくない?

s = "from foo import a, b , c"

f = s.split()
assert f[0] == "from" and f[2] == "import"
buf = []
for name in f[3:]:
    if name == ",":
        continue
    if name[-1] == ",":
        name = name[:-1].strip()
    buf.append(name)

print buf

230 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:41:52 ]
>>228
\w は数字ともマッチするわけだが。
一回、正規表現について勉強しなおしたほうがいいんじゃね?



231 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:44:41 ]
urllib2

232 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 02:32:46 ]
print re.findall('(w)+', 'ABCD')
結果: ['D']

グループの繰り返しだと、最後だけしか取り出さないみたいだね。

233 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:44:42 ]
(\w)+は後続文字が\wじゃない時にマッチしているみたいだけど

>>> re.findall(r'\w', 'ab^cd_ef.gh ij$hi')
['a', 'b', 'c', 'd', '_', 'e', 'f', 'g', 'h', 'i', 'j', 'h', 'i']
>>> re.findall(r'(\w)+', 'ab^cd_ef.gh ij$hi')
['b', 'f', 'h', 'j', 'i']
>>> re.findall(r'\w\b', 'ab^cd_ef.gh ij$hi')
['b', 'f', 'h', 'j', 'i']

234 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 16:23:44 ]
【平均年収】岩手県の就職【365万円】 [就職]
【岩手県南】一関第一・水沢・花巻北・黒沢尻北高校 [お受験]

235 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:07:07 ]
何の誤爆かと思ったらおすすめ2ちゃんねるか

236 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:26:46 ]
同郷がいるな!?

岩手のコンビニのバイトは時給620円がデファクトスタンダードだぜ
そして最低賃金が全国最低で自殺率全国2位という素晴らしい県

スレ汚しスマソ

237 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:44:32 ]
>>236
いや、君ひとりかもよ?w
俺もここと恐らく俺の他には誰も見ていないであろうスレ(語学板の某マイナー言語のスレ)を
交互に訪れていたらそのスレがおすすめ2ちゃんねるに出たことあるし。

238 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:49:17 ]
日本では岩手県が一人当たりのPython消費量が多いらしい

239 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:59:25 ]
>>237
どっちも見たこと無い

240 名前:デフォルトの名無しさん [2008/05/09(金) 22:58:35 ]
水虫が感染した



241 名前:デフォルトの名無しさん [2008/05/09(金) 23:03:51 ]

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇

死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇


242 名前:デフォルトの名無しさん [2008/05/10(土) 02:37:18 ]
インタプリタ中で定義した関数を、後から
(バイトコードではなく)テキストで定義
を参照する簡単な方法ってある?それとも
難しい?

>>> def f(x): return x
>>> deffn(f)
f(x):
return x

のような感じで


243 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 03:13:59 ]
>>242
ファイルにあるやつなら insepct.getsource で取れる

244 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 04:27:34 ]
>>169
Parallel Python というパッケージがあるのを知ったので参考までに紹介しとく。
www.parallelpython.com/
スレッドじゃなく複数プロセスで並列実行する仕組みらしい。
Python のみで実装されていて非常にシンプルなパッケージ構成になっている。
マルチコア環境の場合はスレッドモジュール風に使える。
クラスタ環境では各ノードで計算サーバ(ppserver.py)をしておく仕組みになっている。
応用プログラムはどちらの環境でも同じにできるっぽい。

手元の共有メモリマシンで付属サンプル(sum_primes.py)を実行したら下のようになった。
素数の和を計算するプログラムなのでプロセス間通信はほとんどないけど、
並列化のオーバヘッドはあるわけで、なかなか良好な結果だと思う。

並列度,実行時間(秒),速度向上率
1,  17.54,  1.000
2,  8.781,  1.998
4,  4.424,  3.965
8,  2.261,  7.759

245 名前:169 mailto:sage [2008/05/10(土) 13:53:14 ]
>>244
おおお,サンクス!
早速いじってみまふ。

246 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:12:25 ]
どうでもいいから
ちゃっちゃとpygameの資料和訳
作業に入れよ。
非国民か?

247 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:41:50 ]
>>246
国際人には和訳などいらんのだよ

248 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:46:02 ]
真の国際人は地域文化を尊重するものだ
と混ぜっかえしてみる

249 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:48:20 ]
地域文化を尊重するから
現地の言葉を尊重するのだよと

250 名前:247 mailto:sage [2008/05/10(土) 14:48:29 ]
>>248
(・ω・)つ おざぶとん



251 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:03:20 ]
早く日本語化プロジェクトに参加しろよ。
お前らにpygameの未来がかかっている。

252 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:13:29 ]
ユーザからの入力を正規表現で処理したいと思ってます。
入力された文字列に正規表現が含まれてる場合にそれをエスケープしたいんだけど、どうやったらいいのかわかりません。
誰か助けてプリーズ・・・

253 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:16:19 ]
英語も読めないようなやつがpygameを使えるようになるとは考えにくい。

254 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:57:14 ]
たぶんリファレンスの和訳よりも、各オブジェクトを絡ませた逆引きサンプルコードみたいのが需要あると思うよ。
扱い方が理解できりゃオブジェクト名で大体想像できるし

255 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:08:18 ]
リファレンスぐらいなら簡単に訳せそうに見えるね

試しにpygame.cdromモジュール使ってみたけど対話型シェルから
簡単にトレイの開閉とか再生できておもすれー
かなりよく抽象化されてて使いやすそう

256 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:10:06 ]
>>252
re.escapeは試してみた?

257 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:22:06 ]
> リファレンスぐらいなら簡単に訳せそうに見えるね
簡単に訳せる文章、英文でも理解できる文章は、労力をかけて訳してもしょうがないっしょ
邦訳することが目的になっている感じだし、目的が変化している

核となるもの、肝となるもの、大事な概念だけど理解しにくいものを中心に
Pygameに興味のある者が理解しやすい仕組み・しかけをつくるほうが大事


とりあえず、目的・問題の明確化をさせたほうがいいんじゃないの?

258 名前:252 mailto:sage [2008/05/10(土) 16:46:20 ]
>>256
できましたありがとー!
(_アンダースコアもエスケープされちゃうのがナゾですが・・・)

259 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:07:41 ]
このスレッドの目的は
pygame文書の和訳という使命を帯びた事が証明されたわけだ

260 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:28:29 ]
よし、wxpythonの和訳が終わったらpygameも和訳するぜ

まだ、何もやってないけど



261 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:43:09 ]
Pygameのドキュメントだけ見てもよくわからないけど
SDLの方のドキュメントを読むと理解できる事も多いよね

262 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 20:39:56 ]
お前らは早くpygameの和訳作業にとりかかれ

263 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 20:44:07 ]
英語も読めない低脳は黙ってろ

264 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:01:38 ]
ここの基準はPythonが書けるかどうかで決まるんだぜ(藁)

265 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:02:23 ]
Pyhton

266 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:04:17 ]
pyてょn

267 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:31:23 ]
oh tyPo

268 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:34:00 ]
○〜〜  ○〜〜  ○〜〜
  ○〜〜  ○〜〜  ○〜〜
    ○〜〜  ○〜〜  ○〜〜


269 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:52:46 ]
sperm, sperm, sperm and sperm.

270 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:54:07 ]
まず pygame を何と訳したらいいのかわかりません



271 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:58:25 ]
pygame でいいじゃん

272 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:07:29 ]
随時出張してきてもいいが、本スレに帰れ

あとpygame翻訳と最初に騒いだヤツは、もうマルチするなよ
次スレからちゃんとテンプレに追加してやるから

【pygame】pythonでゲーム製作【ぱいがめ】
pc11.2ch.net/test/read.cgi/gamedev/1126605105/

>>270
Python + game = Pygame
こういう組み合わせの名前(造語)って代表的なのってなんだろう?

273 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:25:32 ]
pychinko

274 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:59:17 ]
pygameの和訳を済ませろボケナスども

275 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:59:58 ]
乳遊

276 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:30:28 ]
自己解決の次は翻訳か

277 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:37:22 ]
>>272
PyPI, PyPy

278 名前:pygame和訳wiki”管理”者 mailto:sage [2008/05/10(土) 23:44:29 ]
事故解決しました

279 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:49:25 ]
つまんね

280 名前:244 mailto:sage [2008/05/10(土) 23:51:28 ]
引続き Parallel Python をいじってみたんだけども、このシステムはマスタワーカモデルを前提にしているみたいだ。
つまり、マスタが仕事の集合を持っていて、有限個のワーカに1つずつ仕事を割り当てる。仕事を終えたワーカは
マスタから新しい仕事をもらって処理する。これを仕事の集合が空になるまで続ける。

ワーカ間で通信をする機能は提供されていないし、特定のワーカ(たとえば特定のリモートホスト上のppserver.py)に
特定の仕事を割り当てることもできないっぽい。Parallel Python が有効かどうかは実現したい並列アルゴリズムが
マスタワーカモデルに適合するかどうかに依る希ガス。



281 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:26:06 ]
おっpydev

282 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:37:49 ]
pygameの和訳が進んでいるか、
確認のために毎日一回以上は
pygame関連の話題を出すようにしようぜ

反論がある奴は似非python使いとして認定してやろうぜ

283 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:40:31 ]
>>280
具体的には、どういう用途に使えそうなんですか?

284 名前:244 mailto:sage [2008/05/11(日) 00:59:44 ]
>>283
pygameかな

285 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 01:34:00 ]
>>283
最も適しているのは並列処理の分野で embarrassingly parallel と呼ばれるカテゴリに属する種々の計算、
すなわち入力データを複数の独立した部分に分割できて、各部分について他から独立して計算が行なえる
タイプの用途に適している。
en.wikipedia.org/wiki/Embarrassingly_parallel
Wikipediaに例があがっている。フラクタル計算とか3DCGのレンダリング(例:レイトレーシング)とか力任せの
暗号解読とか色々ある。

並列処理って概して複雑で長時間計算し続ける必要のある応用が多い。そういう応用には C とか Fortran を
使うことがほとんどなんだけど、きちんと動くようになるまでの開発時間が長くてデバッグがたいへんだったりする。
そういう並列プログラムの試作(プロトタイピング)に Python が使えたらいいなーと個人的には思っている。

286 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 08:49:01 ]
>>274
おまえにいいこと教えてあげよう。
市場の中の肉屋さんいって、
「ホースください」頼んでみ。
解体処理した豚の膣の部分がもらえる。
ほんとは金かけて廃棄しないといけない部分だから無料でもらえる。
食い物にはならないから。
この豚の膣が極上。
まあ考えたら膣だからな。
人間のじゃないだけで本物の膣だから、気持ちよくて当たり前。

287 名前:252 mailto:sage [2008/05/11(日) 09:30:17 ]
re.escapeってなんでもかんでもエスケープしちゃうのか・・・
\山\田\太\郎て

288 名前:デフォルトの名無しさん [2008/05/11(日) 09:43:58 ]
>>285
PythonでCPU8個使って並列計算するよりCで書いたプログラムの方が速そうだったり。。。

289 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 09:57:09 ]
>>288
何言ってんだ?

290 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:28:52 ]
>>289
あ?ヤンのかコラ



291 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:21:19 ]
www.geocities.jp/gaijin_e3/omae01.jpg

292 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:21:53 ]
>>286
ついでに言うと豚の内臓と人間の内臓はかなり近いらしいね
豚の心臓を人間に移植した話もあるからな


293 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:13:17 ]
>>292
羊の膣も極上という話だけどどうなのだろうね?

294 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:14:24 ]
膣なんてどうでもいいから
チャッチャとpygame資料の和訳作業に務めろ糞野郎共

295 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 14:39:25 ]
>>285
自分も並列化するときのプロトタイプとしてPythonの並列環境を使ってみたいと
考えているんだけれど、今のところプロトタイプとしての感触はどう?

データ分割の楽な問題ってCとかFORTRANでもOpenMPを注意深く使うだけでも早くなる事が
多いし、MPIでも慣れれば苦労せずに書けるけれど、そうでない、スレーブ間での通信が必要
とかうまく分割できないとかそういう問題はMPIでやろうとするとデバッグが(;゚д゚)
なことになりがちで、そういう用途にPythonのプロトタイプが役に立つなら素晴らしいと思う
実はC並列版とそれほど速度とメモリ使用量が変わらないとかなら最高
C並列版より速ければ神

296 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 16:53:12 ]
Parallel Python だけど pp.Server.__scheduler() を適当に書き直せばワーカと仕事の対応(割り当て)を
ユーザ側で決められそうな希ガス。問題はワーカ間のプロセス間通信。これが一番面倒なところなんで
自前で実装となると Parallel Python を使ううまみがほとんどない・・・。

やっぱ MPI の Python バインディングあたりが一番現実的な解かなー。でもなんか気が重いんだなー。
もっと Python らしく lightweight なソリューションがないかなー。

>>288
Python の並列プログラムより C の逐次プログラムの方が速そうってことだよね。
そういうことは十分(多分頻繁に)あると思われ。

>>295
残念ながらまだ並列プログラムのプロトタイプ用途には使えてなくて感触を得るところまでいってない。
理由は単純で、Python で手軽に並列プログラミングを実現できる道具を見つけられていないから。
>>209に書いたようにいろいろ試してるんだけどなかなか・・・。

ただ、個人的には Python を並列化のプロトタイピングに使うのは大いに有望だと思っている。
プロトタイピングの場合、欲しいのは並列度やデータ量を上げたときの実行時間の変化であって、
実行速度が多少遅くて実験に時間がかかるとしても知りたいことは分かるはずだから。
プロセス間通信にソケットを使うとすると、データ量が大きくなれば Python でも C 等と同じぐらいの
速度が出る(ハズ)。演算量が多い部分に numpy 等の C/Fortran で書かれた数値カーネルを使うことに
すれば、プロトタイピング用途には十分な速度とメモリ使用量が得られるのではと思う。

297 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 01:33:26 ]

Linux で wxPython をコンパイルしようとして、
ttp://ymasuda.jp/python/wxpython/installation.html
ここを参考に進めて行ったんだけど、最後の
python setup.py install
を実行したところでむちゃくちゃエラー吐いて止まるんだけど・・・
一部だけエラーを載せるけど、同じファイルのエラーが延々と120行近くでるんだ。

contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: 'wxGLCanvas' was not declared in this scope
contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: 'arg1' was not declared in this scope
contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: expected primary-expression が ')' トークン前にあります
contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: 数値定数の前に expected ';'

「glcanvas_wrap.cpp wxPython」で検索したら英語で色々皆同じ問題にあってるみたいだけど、解決方法を探せなくて(読めなくて)困ってます・・・教えて!エロイ人!

298 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 02:10:10 ]
config.py(setup.py?)のBUILD_GLCANVASを0にしてみたら?

299 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 08:47:31 ]
>>297
どのディストリ使ってるのか不明なんだけど、
バイナリパッケージでは存在してないの?

300 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 17:11:39 ]
単なる興味なのですが、Unicode文字列と等価なバイト列を得る方法をご教示頂けないでしょうか?

'hello'と等価なバイト列は'\x68\x65\x6c\x6c\x6f'です。
で、u'hello'と等価なバイト列は、例えば'\xff\xfe\x68\x00\x65\x00\x6c\x00\x6c\x00\x6f\x00'
と思うのですが、pythonで両者の直接変換はできるのでしょうか?という質問です。

u'hello'.encode('utf-16')がほぼ等価ですが、これはあくまでエンコーディングなので、
直接バイト列を得てるわけじゃないのかな、と思った次第です。



301 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 17:19:12 ]
内部表現はUCS2かUCS4だったと思うのだが
中身に触る方法はないほうがいいんじゃないかな

302 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 17:23:20 ]
ord 関数じゃダメなんすか

303 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:12:59 ]
>>300
文字列はエンコーディングを決めなければバイト列では表現できないよ。

> 'hello'と等価なバイト列は'\x68\x65\x6c\x6c\x6f'です。 

ここで実は300さんはエンコーディングとして ASCII  を仮定している(ASCII をサブセットとして含む
別のエンコーディングかも知れない)。例えば、もし EBCDIC を仮定していたら別のバイト列になる。

> pythonで両者の直接変換はできるのでしょうか?

エンコーディングが分かっていればご存知の通り unicode() と .encode() で可能。

304 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:39:43 ]
print repr([u'hello'])

305 名前:297 mailto:sage [2008/05/13(火) 01:30:38 ]
>>297です。
>>298-299
大変申し訳ない。
上記URLの、下記の文をすっとばしてました・・・。

cd $WXDIR               (ソースツリーに移動する)
mkdir bld               (ビルドディレクトリ bld を作成)
cd bld                  (ビルドディレクトリに移動)
../configure            (configure を実行)

一番最初からやり直したらエラーを吐かなくなったよ。
でも、色々可能性を考えて下さってありがとうございました。
お騒がせしてしまい申し訳ございませんでした。

306 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 08:29:09 ]
>>305
うわ、ビルド方法が面倒くさいね

307 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 10:12:52 ]
>301
ないほうがいいってことはないでしょ

初心者が文字列操作で使うべき方法として
提示されるかどうかはともかく

308 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 11:09:48 ]
>>> repr(unicode('あいうえお'))
"u'\\u3042\\u3044\\u3046\\u3048\\u304a'"
>>> unicode('あいうえお').encode('unicode_escape')
'\\u3042\\u3044\\u3046\\u3048\\u304a'
>>> unicode('あいうえお').encode('raw_unicode_escape')
'\\u3042\\u3044\\u3046\\u3048\\u304a'
>>> unicode('あいうえお').encode('unicode_internal')
'B0D0F0H0J0'
好きなのを選べ

309 名前:300 mailto:sage [2008/05/13(火) 12:46:51 ]
>>301-304
>>307-308

皆様ご助言どうもありがとうございました。
>>302 >>308さんご提示の、コードポイント取得方法が私の期待に非常に近いものでした。
ですがそもそも、>>303 さんご指摘の通り、私には「バイト列はエンコーディングによって
はじめて定義されるもの」という認識が甘かったように思います。
私が例示したu'hello'のバイト列は、既に何かのエンコーディングが施されたもののはずだから、
そのバイト列と.encode(...)は全く等価ですね。

御蔭様で理解が深まりました。ご教示どうもありがとうございました。

310 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:58:29 ]
最近の初心者は文体が丁寧だな



311 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 16:13:00 ]
いいことじゃないか。

312 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 18:42:46 ]
ipython1.0 は並列に対応しているみたいだね
使ってみたいがインストールできないorz

313 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:05:48 ]
threading.threadで作ったスレッドをKillするにはどうすればええの?

class myThread(threading.Thread):
 alive = True
 def run(self):
  while self.alive:
   """ なにか """
 def kill(self):
  self.alive = False

こういうのじゃなくて、イメージとしては

threading as th

myth = th.Thread()
myth.start()
print "あへあへ"
myth.kill()

みたいな。

314 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:27:04 ]
無理。
他のOSネイティブなスレッドでも、そういう手段は用意されていないか
用意されていても推奨されていない。


315 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:33:36 ]
基本的にスレッドはスレッド自身で終了させた方がいいよ

316 名前:デフォルトの名無しさん [2008/05/14(水) 00:04:03 ]
ttp://www.devchix.com/2008/05/10/kamaelia-the-future-of-python-frameworks-looks-promising/
> Kamaelia: The future of Python Frameworks looks promising.

317 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 06:37:55 ]
とりあえず clss GetBBC はよしたほうがいいな

318 名前:デフォルトの名無しさん [2008/05/14(水) 17:22:08 ]
groups.google.com/group/comp.lang.ruby/search?group=comp.lang.ruby&q=rpdf2txt+

空のtxtファイルが出来る言ってるから、日本語通らない?
とかスレ違い気味だけど聞いてみる

319 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 19:29:11 ]
日本語でおk

320 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:23:25 ]
ウェブアプリを作りたいなと思い、教育用らしいPythonを始めようと思うのですが
XAMPPみたいにアーカイブを展開するだけで
ApacheとPythonのApacheモジュールが使えるようになるWindows向けソフトとかありますか?
お手軽な感じで始めたいです



321 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:30:13 ]
cd htdocs
C:\Python25\python.exe -m CGIHTTPServer

Pythonだけでできるよ。apacheなんてイラネー

322 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:55:26 ]
320です
どうもありがとうございます
ブラウザで表示確認できるんでしょうか
よくわからないので調べてきます
ほんと無知ですみません

323 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:07:06 ]
CGIHTTPServer にあったディレクトリのバグは直ったんだろうか?

324 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:13:14 ]
これ?
svn.python.org/view/python/trunk/Lib/CGIHTTPServer.py
>[Bug #737202; fix from Titus Brown] Make CGIHTTPServer work for scripts in sub-directories

325 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:01:14 ]
>>321
終了のしかた教えて

326 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:59:21 ]
Python の C コード書くときのコーディング規約って、みんなちゃんと守ってる? 
どこまで守ってる?

static PyObject *
Hoge(........)
{
•関数の戻り値型の直後に改行を入れる
•関数ブロックの始まりの括弧の直前で改行する

if (a + b + c) {
}
•関数以外のブロックは、始まりの括弧を行末に置く
•括弧の中に余分な空白を入れない
•二項演算子の両側には空白を置く

X return ( expr );
O return expr;
•冗長な括弧は使わない

327 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 06:14:03 ]
>>325
Ctrl + D とかじゃないの

328 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:01:43 ]
>>326
そんな規約があるとは知らなかった。

329 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:10:11 ]
>>326
ttp://www.python.org/doc/ の下のどこかにあります?

330 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:59:22 ]
どう見てもPEPだろ



331 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:14:13 ]
WindowsならCtrl+ZのあとにEnter
でも最初の表示どおりhelp→help()→quit→quit()と入力していってほしいかも。

332 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:49:46 ]
>>328,329
PEP 7 -- Style Guide for C Code
www.python.org/dev/peps/pep-0007/

333 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:47:26 ]
>>321 >>327 >>331
ありがとうございます

Windows で python -m CGIHTTPServer を実行しています

Ctrl + C
Ctrl + D
Ctrl + Z

どれもダメだったのでタスクマネージャーから殺したら終了出来ました

あとでわかったのですが、
Ctrl + C
を押したあとにブラウザの更新ボタンで再度リクエスト投げると
Keyboard Interrupt
が出て終了するようです
Windows だから select で監視出来ていないということでしょうか?


334 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:22:22 ]
単純にaccept()がブロックしてるだけでしょ
try節で囲むかtelnet localhost 80とかやってから落とせばいい

335 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:44:26 ]
>>333
普通のCGIがやりたいの?
ApacheでCGIがやりたいの?
320を読む限りではGoogle App Engineとかそういうのが近いのかな?
GAEはお勧めしないけど。

336 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 19:40:24 ]
>>335
320ですが320は322しか書き込みしていません・・・
私とはしたいことが異なるのではないかと思います

あと、質問してもよろしいでしょうか
じつはまだサーバ上でファイルを実行できていないんですが、そのことについて・・・

CGIHTTPServer.pyを起動させて
htdocsフォルダを作って
まだpythonのスクリプトが書けないので既存のスクリプトファイル
python.rdy.jp/wiki.cgi?page=PythonAvailableServersのcheck.cgiとexplore.cgi)を
localhost:8000/htdocs/
に入れて表示させてみたのですが
ieだとそのまま中身のテキストが表示され
firefoxだとcgiファイルのダウンロードが始まってしまいます
拡張子をpyに変えてみたらie、firefoxともそのまま中身のテキストが表示されます

cgi-binフォルダを作って
同様に既存のスクリプトファイルを
localhost:8000/cgi-bin/
に入れて表示させてみたら
拡張子がcgiだと
ie、firefoxともに
> Error response
> Error code 403.
> Message: CGI script is not executable ('/cgi-bin/check.cgi').
> Error code explanation: 403 = Request forbidden -- authorization will not help.
と表示されます
拡張子をpyに変えてみたら
ie、firefoxともに真っ白な画面が表示されます

うまく実行させるにはどうすればいいのでしょうか・・・

337 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:05:18 ]
それsh辺りのスクリプトだからwinじゃ動かないよ
.pyに変えたらコマンドプロンプトにエラーメッセージが表示されてるからよく嫁
とにかくエラーメッセージはきちんと嫁

338 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:05:43 ]
Apacheの場合、デフォルトで
* htdocsにはHTMLおよび画像ファイル
* cgi-binにはCGIスクリプト
と分けて設置しなければいけない。
CGIHTTPServerでも似たようなものだと思う

> Message: CGI script is not executable ('/cgi-bin/check.cgi').
とりわけ使ってるのがLinuxなら
CGIスクリプトの一行目にshebang入れてchmod +xしなきゃだめ
WindowsだとWebサーバにもよるけどshebangは必要かも

339 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:08:17 ]
ああほんとだ。見てなかった >sh辺りのスクリプト
explore.cgiはPythonで書かれてるから動くんじゃないかな

340 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:13:03 ]
>>336
htdocs フォルダが My Documents みたいにスペースの入ったフォルダの配下にない?



341 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:16:50 ]
>>337-340
336です
親切にどうもありがとうございますm(_ _)m
ただ話の内容が難しくて理解が追いついていません・・・

windows上で使っています
いつかはレンタルサーバを借りて動かしたいと思っているのですが
windowsとlinuxでスクリプトの書き方(?)が異なるのでしょうか・・・

コマンドプロンプトにメッセージが表示されるんですね
読んでみます
テスト用に選んだスクリプトも選択ミスだったんですね
パスにスペースは入っていません
ピリオドと数字は入っています

エラーメッセージをよく読みます

342 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:35:42 ]
実際に試してきた

1. c:\cgi-bin\ に env.py を置く
import os
print 'Content-type: text/plain\n\n'
for key in os.environ:
  print '%s: %s' % (key, os.environ[key])
2. cd c:\ して python -m CGIHTTPServer する
3. ブラウザで localhost:8000/cgi-bin/env.py にアクセス
 環境変数がずらっと表示されたら成功

Windowsの場合、shebang も chmod +x も必要ないが
拡張子は .py にしないと動かないみたい

あと My Documents みたいなフォルダの配下だとこけるのは
>>340が指摘してくれている通り

343 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:01:56 ]
>>342
336です
env.pyはうまく動きました!と思います
45行ほどの文字列が表示されました

explore.pyもうまく表示されました
表データが表示されました

cgi-binに拡張子をpyにして入れるんですね

初歩的なことに付き合っていただき
みなさん
ありがとうございますm(_ _)m

344 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:10:10 ]
めずらしくpythonのお勉強なんかやってるやつがいるな


345 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:34:07 ]
まだpythonにたどり着いてない気が…


346 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:44:28 ]
c:\ に置かせようとするセンスが理解出来ん

347 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:50:30 ]
センスっつーより悪意を感じる

348 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:13:52 ]
拡張子がcgiでも関連付けでpythonを起動してやるようにすれば動くかもしれない。
実行可能ならbatなんかでもCGIとして動作するみたいだから。

349 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 16:39:43 ]
こんにちは。いつも参考にさせていただいております。
さて、早速なのですがPythonでテキストファイルへの書き込みは出来るのですが追加の書き込みの方法がわかりません。
一度内容を読み込んで結合してから書き込んでもよいのですがあまりスマートとは思えませんでしたのでここに投稿した次第です。
方法をご教授いただければ幸いです。


350 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 16:42:06 ]
open(path, 'a')



351 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 16:48:57 ]
レスありがとうございます。解決いたしました。

352 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 20:59:01 ]
下記をCGIとして動かしてみたところ、何も表示されません。
# -*- coding: utf-8 -*-
import os
import cgi
import cgitb; cgitb.enable()

print "Content-Type: text/plain\n\n"

form = cgi.FieldStorage()
if not (form.has_key("name") and form.has_key("addr")):
print "<H1>Error</H1>"
print "Please fill in the name and addr fields."
return
print "<p>name:", form["name"].value
print "<p>addr:", form["addr"].value


以下は動作するのでバーミッションの設定ではないと思います。
# -*- coding: utf-8 -*-
import os
import cgi
import cgitb; cgitb.enable()

print "Content-Type: text/plain\n\n"
print "hoge"


解決策など示していただければ幸いです。

353 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:06:40 ]
returnが関数外じゃない?

354 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:18:28 ]
すいません。インデントが外れていたので
codepad.org/r6g67n1j
codepad.org/vUcQXO9g

355 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:30:37 ]
return→sys.exit()に

356 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:33:21 ]
いや、だから>>353
が言っているように、関数内じゃないのに
returnがあるのがおかしいんじゃないの

# -*- coding: utf-8 -*-
import os
import cgi
import cgitb; cgitb.enable()

def main():
print "Content-Type: text/html; charset=UTF-8\n\n"
form = cgi.FieldStorage()
if not (form.has_key("name") and form.has_key("addr")):
print "<H1>Error</H1>"
print "Please fill in the name and addr fields."
return
print "<p>name:", form["name"].value
print "<p>addr:", form["addr"].value

if __name__ == '__main__':
main()

357 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:34:44 ]
apacheならerror_log(error.log)に出なかったっけ

358 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:38:05 ]
pychecker, pylintあたりで文法チェックしといた方がいいかもね

359 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 06:24:41 ]
>>355でFAもいいところなわけだが

360 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 13:59:12 ]
codepad.org/AkQK38ei

関数の引数って参照渡しなの?
Traclight/plugins/themaengine/api.py

あとTracってAPacheがないと動かせないですか?
PythonをUSBメモリに入れて持ち運びたい(できればtracも持ち運びたひ…)




361 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:50:11 ]
>>360
>関数の引数って参照渡しなの?

そうだよ。入門書嫁。

362 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:54:54 ]
どんな入門書だよ

363 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:55:42 ]
>>360
いっちゃうと代入も何もかもぜんぶ参照渡しです。
だから逆に参照渡しという概念がでてこない。

TracはFastCGIやWSGIでも動作するからApacheじゃなくてもいい。
lightyなんかいいとおもう。
あとWindows版Pythonならパスが変わっても動作するはず。

364 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:08:52 ]
>>362
まともな入門書にはたいてい書いてあるよ

365 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:09:35 ]
Pythonって参照渡しって言うのかな

>>> def foo(x): x = 2
...
>>> a = 1
>>> foo(a)
>>> a
1

いわゆる参照渡しだと、aの値が書き換えられるんじゃないの

366 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:10:56 ]
>>365
def foo(&x): x = 2

これでOK
まともな入門書にはかいてあるよ

367 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:15:57 ]
>>366
つまり、「何もかもぜんぶ参照渡し」というわけでなく、
特に指定しなければ値渡し、ということじゃない?

368 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:16:42 ]
参照をリファレンスという意味で使ったなら
ある意味正しいと思う

369 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:21:18 ]
>>> def foo(&x): x = 2
SyntaxError: invalid syntax
ついに嘘書く奴が出てきたよ

370 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:30:59 ]
>>365
def foo(x):
↑ここのxには確かにa = 1と同一の1が渡る。
 x = 2
↑でもこれはその1を2に置き換えるのではなく
xの参照先を2に変更することになるのでaは1のまま。



371 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:31:48 ]
>>365
Pythonで数字はイデア界にあるから
書き換え不能なんですよ。

372 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:33:56 ]
>>369
嘘を嘘と見抜く練習をしような(w

373 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:49:35 ]
つまり = は代入ではなく束縛ってことか

ところで
>>> lst = [0]
>>> lst[0] = lst
>>> lst
[[..]]
>>> def p(x): print x
>>> [p(x) for x in lst]
[[..]]
[None]

なんぞこれ

374 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:55:14 ]
循環参照は[...]になるのか。賢いな。

375 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 18:42:18 ]
>>370-371
えーと、本当に参照渡しの意味わかってんの?

fooの仮引数がxと宣言されているが、aを渡したときにそのxがaのエイリアスとして
機能する(つまりxがaと同等である)ようなものが参照渡しなんだが。
FORTRANはデフォで参照渡しだし、C++やC#は参照渡しもサポートする。

Pythonの場合、a, xは同一のオブジェクトを指している*別変数*だから、
xへの代入はaに影響を与えない。
そういうのは参照渡しとはいえないでしょ。

376 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 19:00:23 ]
>>365
引数そのものはimmutable(不変)なので、関数内で書き換え不可。
この場合の引数とは、変数のアドレスのこと。
変数が指しているデータを書き換えたい場合は、例えば以下のように出来る。

def bar(x):x[0] = 2
a = [1,2,3]
bar(a)
print a # --> [2, 2, 3]


377 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 19:14:55 ]
ミュータブルorイミュータブルというのはオブジェクトの特性であって
変数の特性ではない

378 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:15:06 ]
そもそもPythonのオブジェクトには代入演算子ないし

379 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:36:17 ]
Mr.NishioのJython本を読むと、変数はオブジェクトへのリファレンス貼る
ってことが書いてある。
買って読んでみなよ。

380 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:01:56 ]

> 変数はオブジェクトへのリファレンス貼る

俺の頭が弱いのか? 何が言いたいのかわからん





381 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:05:15 ]
C風に言えば、Pythonの変数はオブジェクトへのポインタ
代入はポインタのコピー
関数呼び出しは全部値渡し
Javaも値型(基本データ型)以外は一緒

382 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:12:01 ]
>>360
> 関数の引数って参照渡しなの? 

違います。

www.python.org/doc/faq/programming/#how-do-i-write-a-function-with-output-parameters-call-by-reference
> Remember that arguments are passed by assignment in Python. Since assignment just creates references to objects,
> there's no alias between an argument name in the caller and callee, and so no call-by-reference per se.
(引数は Python でいうところの代入によって渡されることを思い出して下さい。代入は単にオブジェクトへの参照を作るものなので、
呼び出す側の引数名と呼び出された側の引数名のあいだにはエイリアスはなく、「参照による呼び出し」も本質的に存在しません。)

383 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:44:09 ]
渡す物がlistになると挙動が変わるはず

384 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:47:37 ]
>>383
リストだろうが何だろうが、何も変わらない。

>>> def f(x): x = [1,2,3]
...
>>> a = []
>>> f(a)
>>> a
[]
>>>


385 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:58:26 ]
>>> m = []
>>> def a(x): x.append(3)
>>> a(m)
>>> a(m)
>>> m
[3, 3]

これは何が起きているんだ?


俺の頭が弱いのか? 何が言いたいのかわからん

386 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:59:18 ]
>>385
リストだろうが何だろうが、何も変わらない。

>>> def f(&x): x = [1,2,3]
...
>>> a = []
>>> f(a)
>>> a
[1,2,3]
>>>

387 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:04:59 ]
Pythonを学ぼうと思うのですが
python.rdy.jp/wiki.cgi?page=%B4%D8%CF%A2%BF%DE%BD%F1
で何を選べばいいのかわかりません。

388 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:06:34 ]
他言語経験は?

389 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:09:35 ]
>>385
頭が弱いんじゃなくて、基本が理解できてない。
一体どんな教材でPython覚えたんだよ?

390 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:14:55 ]
>>385
>>384の例は、代入によって「変数自体」を変更している
変数の変更とは、変数が持っていたオブジェクトへの参照を破棄し、
別のオブジェクトを指すようにする、ということだ

>>385の例は、破壊的メソッドによって、変数によって指されている
「オブジェクトの中身」を変更している。変数自体は何も書き換わっていない



391 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:25:40 ]
>>388
初めてのC#を読みました。
作ったソフトウェアは2つほどでオブジェクト指向はある程度理解しているつもりです。

392 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:26:09 ]
>>387
名著だ
www.amazon.co.jp/dp/4839922829/

393 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:26:37 ]
>>392
ありがとうございます。

394 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:28:18 ]
>>392
表紙でtypoが名著とはこれ如何に

395 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:31:19 ]
ほんとだ噴いた

396 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:34:29 ]
>>392
家宝にさせていただきます

397 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:45:04 ]
>>391
プログラミング経験有りなら書籍ではないけれど
本家のチュートリアルの邦訳をまず読んでみれば
www.python.jp/doc/release/tut/


398 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:45:52 ]
x = 23
はxのポインタの値が書き換わる。
x.append(3)
はポインタの先の値が書き換わる。


399 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:51:39 ]
>>376>>384の挙動の違いがよくわからない

400 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:54:11 ]
>>399
>>376もポインタが指しているオブジェクトの中身を書き換えているだけだ

xとaは別の変数だが同じオブジェクト(リスト)を指しているから、
x経由で変更したオブジェクトをaから参照しても
同じように見えるのは当たり前だ



401 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:02:28 ]
>>400
>>384の場合はx=[1,2,3]で新たにリストのオブジェクトを生成して、
変数xはそれを指すから、結果的に変数aの指すオブジェクトの中身は
書き換えられなかったってことでいいのかな?

402 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:04:21 ]
>>401
うん

403 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:15:12 ]
なるほど、スッとした。さんくす。

404 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:29:50 ]
やっぱりスッとしない。

405 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:02:10 ]
>>392
Amazonって、ランキングが出るじゃん。見たんだけどさ。
 
 
 
この時期でこのランキングはないわ。
名著なのに売れないなんておかしいな。
芸術作品ですか。

406 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:12:37 ]
>>70のリンクの人から見ると名著なんだよ

407 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:20:13 ]
>>70のリンクの人のせいで売れないんじゃね?
まるで逆宣伝だし。

408 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:27:14 ]
そもそも対象となる層が少なすぎる感じがする

409 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:28:39 ]
日本人限定だしね

410 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:39:27 ]
そのうえ変な人に気に入られてるようじゃ相当マイナスだね。



411 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 01:00:29 ]
Jython使うとPOIも使えると思うのですが
CPythonからPOIを使えるようにはできませんか?

412 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 01:08:00 ]
Java使え

413 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 01:10:44 ]
替わりにwin32comかpyExceleratorを使うとか

414 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 02:00:14 ]
win32comもpyExceleratorは使ったことがあるのですが
どっちもいまいちなのでPOIを使いたいんですけど
Javaは使いたくないんです

415 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 02:30:37 ]
GroovyとJRubyやるからどっかいけ



416 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 02:33:37 ]
>414
ならばCPythonでJava classファイルを使えるようにする仕掛けをこさえるしかなかろ
それって結局JavaVMの特殊な独自実装になるような気もするが。
となると「Javaを使わない」という目的からは厳密には外れるな。

あるいはPure PythonでPOIを書き直すとか

417 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 02:50:31 ]
そうですね
そうします

418 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 03:46:21 ]
死ねばいいよ

419 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 04:20:22 ]
死ねって・・・
Pythonの信者の人が反社会的っていうのはほんとなんですね

420 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 08:00:56 ]
Jython本を読むと心が洗われます



421 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 09:01:36 ]
>>406
これはむしろ愛と呼べる代物だ。
温泉ではアッー!な光景が繰り広げられるに違いない。

422 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 11:30:56 ]
>>421
結論から言うと、今回のRuby Kaigiのテーマは"愛"。
:
Ruby愛以外に何か付け加えるものがあるとするならば、あとは、覚悟。

423 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 11:44:02 ]
イケメンハッカーはJRubyの本を出せばよかったんじゃね?

424 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 13:12:48 ]
Pythonソースコード完全解説とかなら普通に読みたいな

425 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 13:14:46 ]
自分でコードも読めない奴は、技術者としては失格だと思うがな。

426 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 14:17:31 ]
neet山

427 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 14:32:01 ]
RubyConsortium
Rubycon
不良品乱発

428 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 03:50:04 ]
会社で作るソフトに組み込むスクリプトとしてぜひ Python を押したいんだけど、
「(スクリプトの)逆アセンブルがすげー簡単ぽいけど、どうなのよ」みたいなこと言われたんだ。
そういうわけで、会社を納得させるべく、「思いつきでちょっと解析したぐらいでは分からない程度」
に Python スクリプトの難読化について考えてみたい。

429 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 04:01:50 ]
(自分がパッと思いつく程度の)スクリプトの解析方法に付いて考えてみる。

A. python スクリプトファイルが丸見えの場合
.py ソースは問題外。
.pyc は dis モジュールに食わせてダンプして終了。しかもドキュメンテーション文字列付き。
.pyo も dis モジュールに食わせて終了。

B. スクリプトファイルが見えない場合
Python##.dll を改造してアプリケーション付属のDLLと差し替えて、
インポートしたモジュールのコードオブジェクトをダンプするなり別ファイルに書き出すなりする

C.コンパイル済みモジュールファイルが丸見えだが、dis に食わせても解析失敗する場合
カスタム Python を使用している事を疑う.
アプリケーション付属の Python##.dll を参照するようにして python.exe を実行し、
自作のスクリプトを pyc に変換させ、純正の pyc と比べてみる。




430 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 04:17:33 ]
そう考えると、
•独自のインポータを sys.path_hooks に組み込んで自作アーカイブからスクリプトファイルを読み出すようにする
•独自アーカイブに含まれているスクリプトは、カスタム Python を使って読み書きするための特殊 pyc
•カスタムといっても、ようは pyc の読み書き部分だけつじつまを合わせれば良い
•従って、改造するのは marshal.c あたり?





431 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 05:37:37 ]
>>428
「解析されて何か問題でも?」と答えておけ。
本当に解析されて困るプログラムなんて、この世にそれほど存在しないだろ。

432 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 11:39:00 ]
GPL

433 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 11:49:46 ]
JavaだってC#(IL)だって逆コンパイラは存在してるし
難読化とかもあるけど、最終的には>>431のような気がする

434 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 12:15:57 ]
事情をよく知らない割には権限だけ持っていて、
変化を嫌いたがるダメ官吏みたいな上司を説得するのが一番大変なんだよね〜。

435 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 12:16:05 ]
pyc や pyo はバイナリエディタで開いただけでも識別子名と関数名がまるわかりだからねえ
簡単な難読化ぐらいならやる価値あると思う

436 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 13:34:43 ]
難読化とかwww馬鹿だろwww
死ねばいいのに

437 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:17:07 ]
簡単な難読化をしてみせるだけで>428の仕事が楽になるならいいじゃないか。
それ自体に意味があるかどうかはどうでもいいのだ。


438 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:19:55 ]
マってたまに、子供騙しで騙してしまえばいい相手の要求に対して、
妙に本気になって対処してしまうことがあるよね。自戒も含めてw

439 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:46:15 ]
全て eval を使って文として
他のプログラムに仕込むとか

440 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 18:07:12 ]
子供騙しで手を抜く奴はプログラマだ!
バレないように手を抜く奴は訓練されたプログラマだ!

こうですか? わかりません (>_<)




441 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 19:29:23 ]
>>434
そういうときはその上司の上司を説得するべき

442 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:44:24 ]
適当にxorして「暗号化しました!」
とか言っとけば大丈夫

443 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:47:10 ]
ソースコード自身とxorしたから大丈夫です!

444 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 01:11:01 ]
>>443
0x00とXORしないとダメだよ!!

445 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 02:15:01 ]
ネタならネタで良いんですが
もう少し楽しめるのをおながいします

446 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 02:44:30 ]
pygameで英語分からなくて暴れてる厨房だろ
放っとけよ

447 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 08:11:47 ]
pygameの和訳さっさと進めろよハゲども

448 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 08:45:46 ]
自己解決しました。

449 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:17:04 ]
やめてください

450 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:14:11 ]
イケメンハッカーが自決しました。



451 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:33:08 ]
やめてください。

452 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:33:59 ]
自己解決禁止

453 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:34:36 ]
>>441
お花畑にお住まいの妖精さんですか?
現実は厳しいですよ。

454 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:35:08 ]
neet山が自己休刊やめてください。

455 名前:360 mailto:sage [2008/05/23(金) 10:59:40 ]
>>360
>>> def call(): info=[]; f(info); return info
...
>>> def f(x): x=[1,2,3] # list渡したい時は.append使え矢
...
>>> call()
[]
>>>
>>> def call(): info={}; f(info); return info
...
>>> def f(x): x[0]=1; x[1]=2; x[2]=3
...
>>> call()
{0: 1, 1: 2, 2: 3}

渡すものが、辞書かリストか、で字面的に違うということですね
事故解決しました。(&なんて使わねー)(*はリスト**は辞書ですが無くても動くのです無害です)

456 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:07:57 ]
>455

ぜんぜん解決してない ...

>>> def f(x): x=[1,2,3]

に文法的に対応する辞書の記述は

>>> def f(x): x = {0:1, 1:2, 2:3}

だよ(これだと結果は callで代入された info → {} のまま)。

リストのappendが字面的に気に喰わないのなら、

x+=[1];x+=[2];x+=[3];

と書いてもいいかもね(ちょっとoverheadありそうな気もするけど)




457 名前:360 mailto:sage [2008/05/23(金) 11:30:33 ]
>>456
d

1. def call(*各種設定リスト): info={}; f(info); return
2. 初期化関数もどき(空リスト、空辞書を破壊的操作で初期化)
def f(x): x[0]=1; x[1]=1; x[2]=2 #辞書
def f(x): x+=[1]; x+=[2]; x+=[3] #リスト

設定ファイルちっくに扱うなら、辞書使うし余り気にならないのかも > リストの破壊的操作
JSonとか、いい感じなものだと最近わかり始めてきますた

458 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 12:07:53 ]
自己解決禁止しちゃいかんだろww

459 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:11:33 ]
D:\TracLight\python>python
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> fn = os.path.join('./', 'test-file.txt')
>>> open(fn).read()

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: './test-file.txt'

同じディレクトリ下にあるファイルを読むにはどう書けば良いですか?

460 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:19:24 ]
>>> fn = os.path.join(os.getcwd(), 'test-file.txt')
>>> fn = os.path.join('./', 'test-file.txt')
>>> open(fn).read()

.txt 拡張子が余計に付いてだけでした orz
事故レスすまそ



461 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:41:49 ]
>>459
なんでバグだらけの旧バージョン使ってるんだ?

462 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:29:52 ]
うるさいだまれ

463 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:36:57 ]
自己憤慨しました。

464 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:15:47 ]
自己発電しました。

465 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:41:04 ]
助けて
java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.0)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkExit(Unknown Source)
at javax.swing.JFrame.setDefaultCloseOperation(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(Unknown Source)
at org.python.core.PyMethod.__call__(Unknown Source)
at org.python.core.PyObject.__call__(Unknown Source)
at org.python.core.PyInstance.invoke(Unknown Source)
at applet$_PyInner.init$1(applet.java:61)
at applet$_PyInner.call_function(applet.java:47)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyFunction.__call__(Unknown Source)
at org.python.core.PyMethod.__call__(Unknown Source)
at org.python.core.PyObject.__call__(Unknown Source)
at org.python.core.PyObject._jcallexc(Unknown Source)
at org.python.core.PyObject._jcall(Unknown Source)
at applet$MyApplet.init(applet.java:139)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


466 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:43:40 ]
pc11.2ch.net/test/read.cgi/tech/1207878910/385

467 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:13:26 ]
マルチしちゃったか
死ね

468 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:38:32 ]
ちょっと教えて欲しいんだけど、pythonの正規表現で先読みって使えないの?
下みたいに書いても全然文字列を分割してくれないんだけど

line = '123,456,79'
regexp = re.compile('(?=5)')
print regexp.split(line)

469 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:56:48 ]
>>468
www.python.jp/doc/nightly/lib/re-syntax.html
> (?=...) 
> もし ...が次に続くものとマッチすればマッチしますが、文字列をまったく消費しません。
> これは先読みアサーション(lookahead assertion)と呼ばれます。
> 例えば、Isaac (?=Asimov) は、'Isaac 'に 'Asimov'が続く場合だけ、'Isaac 'とマッチします。 

'(?=5)' だと空文字列に 5 が続くなら空文字列にマッチ(ただし 5 は消費しない)という意味になるのかな?
空文字列にマッチしたら分割の目的には使えないような・・・。

>>> a = re.compile(",(?=4)")
>>> a.split("123,456,789")
['123', '456,789']

470 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:57:19 ]
>>468
先読みが使えないっていうより
re.split() に長さ 0 のパターンを渡しても何もしてくれないとかじゃない?
他の言語とかは挙動が違った気がする



471 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:57:58 ]
>>468
ライブラリリファレンスを見れば分かるけど、先読みは使えるよ。

よくわからんが、split()がzero-width assertionでは機能しないのかもな。
split()に与えた正規表現にマッチした文字列をデリミタとみなして分割するから、
「位置」じゃなくて「文字(列)」にマッチする正規表現じゃないとダメ、とかさ。

ただの想像だけど。

472 名前:471 mailto:sage [2008/05/23(金) 23:58:39 ]
ぐは。レスかぶりまくりじゃん。

473 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:15:30 ]
先読みの使い方を間違えてる

474 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:38:16 ]
お前は次に「自己解決しました」と言う。

475 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:46:50 ]
自己解決しました

476 名前:468 mailto:sage [2008/05/24(土) 01:09:50 ]
レスサンクス
やっぱり場所指定の正規表現じゃ分割しないみたいだね
perlとrubyでもsplit関数を動かしてみたんだけど、
perlはpythonと同様で場所指定の正規表現じゃ分割してくれなかったよ
一方rubyは意図したとおりに場所指定で分割できた
言語毎に結構挙動が違うもんなんだね




477 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:31:05 ]
>>472
ぐは禁止。きもい。

478 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:32:10 ]
ruby最強!

479 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:33:37 ]
regexp = re.compile('.(?=5)')

480 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:50:44 ]
>479
それだと一文字消えちゃうだろう常識で考えて



481 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:40:04 ]
pyunoでOpenOfficeの制御したかったのだけど
ubuntu7.10で動かないみたい
udk.openoffice.org/python/python-bridge.html
Hellow Worldのサンプル動かすと
line 5, in <module>
localContext = uno.getComponentContext()
AttributeError: 'module' object has no attribute 'getComponentContext'


482 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:49:34 ]
>>468

Perlのバージョンは?
試したらできたよ。

my @f = split /(?=5)/, $str;
print join(':', @f), "\n";



483 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 05:24:45 ]
>>> import re
>>> line = '123,456,79'
>>> regexp = re.compile('')
>>> regexp.split(line)
['123,456,79']

そもそもこうなるんだもんなぁ


484 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 08:28:25 ]
>>477
ぐはははははははははははhahahahahahahahaha!!!!!

485 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:14:48 ]
ぐは。自己解決しました。

486 名前:デフォルトの名無しさん [2008/05/24(土) 12:39:52 ]
>482
perlでもsplitできるね

pythonで位置指定の分割ってどうやんだろ

487 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:03:35 ]
こんな感じの関数を自分で作って使えばいいんじゃね

def split(pattern, string):
    result = []
    start = 0
    for m in re.finditer(pattern, string):
        result.append(string[start:m.start()])
        start = m.span()[1]
    result.append(string[start:])
    return result


488 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:14:27 ]
リスト返すようにしちゃったけど、ジェネレータにすべきだったか
ま、その辺は好きに汁

489 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:06:35 ]
>487
re.findall()

490 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:18:04 ]
re.findall()がどうしたの?



491 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:33:29 ]
Perl で split('', $str); に相当するのは
Python ではどう書けばよいですか?

492 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:37:47 ]
>>491
list(str)

493 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:16:39 ]
オブジェクトのメソッドを一覧で取得するにはどうすればええの?


494 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:24:33 ]
filter(callable, dir(hoge))

495 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:25:54 ]
[x for x in dir(obj) if callable(getattr(obj, x))]

496 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:30:26 ]
>>494
動きません。
自己確認してください。

497 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:48:52 ]
自己完結しました

498 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:51:21 ]
>>494
オッサン臭いコードだな。その上動かないってどんだけ(www

499 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:58:55 ]
itertools は使えそうで使えない

500 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:03:49 ]
>>498
まさに労害(WWW



501 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:17:21 ]
おれさまがなおしてやった
filter(lambda x : callable(getattr(obj, x)), dir(obj))

502 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:28:11 ]
ここまで来ると、わざわざfilterを使う意味なくね?

503 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:07:56 ]
pythonのlambdaって読みづらいだけじゃね?
pythonの基本的な文法と比べると汚い

504 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:14:14 ]
Guidoもlambdaは嫌いだったと思う。
lambdaを使うのは変態か、自称イケメンハッカーのワンライナー芸人だけだろ。

505 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:19:41 ]
どうせ残すなら
いろいろできるようにすればいいのに

506 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:32:31 ]
cshといっしょでコード互換のために残してるだけなんだから
もう新規につかうようなもんじゃないだろ。

507 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 02:44:32 ]
Pythonプログラミング入門はクソだとよ。

508 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 03:45:36 ]
自分の言葉で語りなさい

509 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 05:36:58 ]
ということにしたいのですね

510 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 09:50:46 ]
懐かしいフレーズだ



511 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:51:46 ]
皆さん lambda と聞くと昔の傷がうずくのですね

512 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:52:28 ]
Twisted本、クソ本フラグがたった感が。

513 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:37:37 ]
うはは、わかりません。

514 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:29:07 ]
関数をファーストオブジェクトとして扱えないのはしょうがないが
だからってpython の lambda はちょっと無しだろ
C++みたいに演算子()をオーバーロードできればいいのに

515 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:33:36 ]
>>514
関数内で関数が定義できるんだから、lambdaはあれで良い。
演算子オーバーロードも、__call__でできるじゃないか。

516 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:40:01 ]
うはは、わかりません。

517 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:11:22 ]
>>514
Pythonの関数はファーストクラスオブジェクトだが

518 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:23:23 ]
ファーストオブジェクトってどういう意味?

519 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:32:38 ]
ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88
>>514は、匿名リテラルで宣言できる関数が制限されていると言いたいんだと思う。
でも、def foo() して、 bar = foo; del foo; したら、foo()できなくなる。Pythonのdefは関数定義と
変数への代入を同時にしているというだけなので、関数がファーストクラスオブジェクトと言っても良い。

520 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:00:35 ]
>>519
ありがとう。ファーストクラスオブジェクトでググればよかったのか。

俺もPythonのlambdaは気持ち悪いと思う。
あと、exceptで例外が複数のときだけ括弧つけるのも気持ち悪い。



521 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:11:16 ]
(UNIX環境の)Pythonってソースプログラム実行中にソースの書き換えってできるの?
インタプリタだから、できそうなイメージなんだけど

522 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:13:28 ]
pythonって関数内で関数作って関数を返す関数作れたっけ?


523 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:26:28 ]
tupleが (a,) ってなるのがきもい





524 名前:デフォルトの名無しさん [2008/05/25(日) 14:50:03 ]
python の快活環境どれがおすすめですか?

525 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:54:31 ]
>>522
いろんなデコレータのソース読んでみたら?そういうのばっかりだから。
Pythonのデコレータは、関数を引数にして関数を返す関数。
@foo(a,b)
def bar():
の場合、fooは、"関数を引数にして関数を返す関数"を作成して返す関数になる。

526 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:58:09 ]
間違えた
快活環境じゃなくて開発環境

527 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:27:51 ]
>>522
名前なしでそれができない、ってだけ。

あと定義された時の環境に対して書き換えが効かない。

528 名前:デフォルトの名無しさん [2008/05/25(日) 17:03:38 ]
385 名前:デフォルトの名無しさん[] 投稿日:2008/05/23(金) 22:18:26
助けて
java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.0)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkExit(Unknown Source)
at javax.swing.JFrame.setDefaultCloseOperation(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(Unknown Source)
at org.python.core.PyMethod.__call__(Unknown Source)
at org.python.core.PyObject.__call__(Unknown Source)
at org.python.core.PyInstance.invoke(Unknown Source)
at applet$_PyInner.init$1(applet.java:61)
at applet$_PyInner.call_function(applet.java:47)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyFunction.__call__(Unknown Source)
at org.python.core.PyMethod.__call__(Unknown Source)
at org.python.core.PyObject.__call__(Unknown Source)
at org.python.core.PyObject._jcallexc(Unknown Source)
at org.python.core.PyObject._jcall(Unknown Source)
at applet$MyApplet.init(applet.java:139)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

529 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:56:17 ]
御臨終です

530 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:59:29 ]
org が orz の相似に見えた



531 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:11:41 ]
そういやIronPythonのスレはあるのにJPythonのスレはないんですね

532 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:08:15 ]
Jythonのスレならあるでしょ。
専用じゃないけど

533 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:17:07 ]
>>523
これならきもくない?
tup = (
a,
)

534 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:48:17 ]
>>525,527

ありがとう
やってみたら出来たよ
これで使いやすいschemeの代わりが出来た


535 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:57:03 ]
そんな見た目だけの問題じゃないよ! >533

誰かが「カンマがtupleを作るんだ、カッコじゃない」と言ってたが、

>>> x=()
>>> type(x)
<type 'tuple'>

キモイヨー


536 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:22:42 ]
>>535
男なら、空のタプルを作りたいときがあるってもんだ。

537 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:00:59 ]
python for S60のスレはないよなぁ

538 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:06:35 ]
パックリ(i)

キモイヨー

539 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:15:23 ]
RDBで言うテーブルに対するビュー
Cで言う配列に対するポインタ
みたいなノリで使える、オリジナルデータを更新可能なスライスみたいなの無いかな

スライスみたいにコピーするんじゃなくて参照を握っていて、
更新も出来るやつ
自分で作るしかない?

540 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:44:42 ]
うはは、キモイヨー。



541 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:49:16 ]
>>537
需要があるのか?

542 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:48:06 ]
>>539
ありますよ

543 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:27:23 ]
>539

10行ぐらいで書けそうだから、必要な人は手元で書いちゃうんでは。


544 名前:デフォルトの名無しさん [2008/05/27(火) 09:57:14 ]
ちょちょっっと書いてみていただけませんか?

545 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 11:27:27 ]
>>544
書きました。
見せないけど。

546 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:41:49 ]
さては11行になったな?

547 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:55:58 ]
>>539
arrayじゃ駄目なの?

548 名前:539 mailto:sage [2008/05/27(火) 18:28:38 ]
レスくれた人どうもです

>>542 モジュール名を教えていただけませんか

>>543 書いてみましたが、自分は10行では無理でした
__getitem()__に負のインデクスやsliceオブジェクトが渡された時の
処理とかをいちいち書くのがウザいです

>>547 arrayは全く用途が違うのではないでしょうか
シークエンスの部分列を「参照」するだけならただのスライスで良いし
itertools.islice()ならコピーを避けられますが、
元のシークエンスを「更新」もしたいわけです

549 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:51:41 ]
pygameの和訳完成してもいいころなんじゃねーの

550 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:40:47 ]
547は配列を作りたいのかと勘違いした。
ようするに、ポインタに相当するものを作りたいのか。



551 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:53:15 ]
うはは、すみません

552 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:10:20 ]
>>548
要するにスライスをスライスして新しいスライスを作れればいい(そこを自前で実装するのは面倒)ということだな。
スライスをスライスしてスライスを作るというのはありがちな気がするので既にありそうだが。俺は残念ながら知らん。
自前で実装するのは確かに面倒そうだ。

553 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:02:45 ]
>>539
www.rh.to/python/WDB.html

こんなのとか? リンク先のViewの説明がそれっぽいとかおもた。
というか牛刀をもって鶏を割くみたいになってる気もする…

>>457
def call(inil=[1,2,3,4,5]): srcl=inil; m(srcl,1,3); return srcl
def m(x,i,j): _m(x[i:j])
def _m(x): x[0]=1; x[1]=1; x[2]=1 とか思いついて、書いてみる

>>> def call(ini): src=ini; dst=m(src,1,4); dst.insert(0,src[0]); dst.append(src[4]); return dst
>>> def m(x,i,j): print x[i:j]; return _m(x[i:j])
>>> def _m(x): x[0]=1; x[1]=1; x[2]=1; return x

>>> call([1,2,3,4,5])
[2, 3, 4]
[1, 1, 1, 1, 5]

むぅ。糞コード。可読性悪すぐる…orz
call()でintかlistで場合分け必要だし

554 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:15:15 ]
numarray

555 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:36:17 ]
coding.derkeiler.com/Archive/Python/comp.lang.python/2006-10/msg02680.html

これとかヒントになるかも
一部を掬って変化を加えたら、全体が書き換わる…

556 名前:539 mailto:sage [2008/05/27(火) 22:52:01 ]
ありがとうございます
NumPyですか
数値計算が目的という訳ではなかったので完全に盲点でしたが、使えそうですね

ちょっと試してみます

557 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 09:09:02 ]
これからはRuby一色の時代。
PerlもPythonも廃れ、Rubyだけが生き残る新時代

558 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 09:42:45 ]
その「新時代」になってから勉強しても全然遅くない。

559 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 12:02:30 ]
for e in dir():
  print e

とかで出力されるデータをA-Z, a-z, __??__で
頭文字ごとに改行して出力するにはどうしたら良いですか?

560 名前:559 mailto:sage [2008/05/28(水) 14:23:42 ]
>>> def print_elem_n(elem):
...  print '\n', elem,
...
>>> def print_elem(elem):
...  print elem,
...
>>> q=''
>>>
>>> a2z="abcdefghijklmnopqrstuvwxyz"
>>> for e in dir(cssutils):
...  if q == '' and q in set(a2z): q = e[0]
...  if e[0] in set(a2z):
...   if q != e[0]:
...    print_elem_n(e)
...    q=e[0]
...   else:
...    print_elem(e)

書けた…添削きぼん
print文の、改行の取り扱いに嵌る orz



561 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:35:40 ]
>>> a2z="abcdefghijklmnopqrstuvwxyz"

>>> a2z=range(ord('a'), ord('z')+1)

562 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:35:53 ]
groupby使ってみるといいんじゃない?

from itertools import groupby
from operator import itemgetter
for k, g in groupby(sorted(dir(str)), itemgetter(0)):
 print ", ".join(g)

563 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:36:51 ]
>>560
printだけ書けば改行できるのに。

lastchar = dir()[0][0]
for e in dir():
if e[0] != lastchar:
print
lastchar = e[0]
print e,

これじゃダメ?

564 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:37:50 ]
インデント消えちゃったけど、まぁ分かるよね?w

565 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:54:57 ]
>>562
便利なもんがあるんだなー
こんな普通な奴しか思いつかなかった

def f(seq):
    d = {}
    for s in seq:
        d.setdefault(s[0], []).append(s)
    for k in sorted(d.iterkeys()):
        print ','.join(d[k])

566 名前:563 mailto:sage [2008/05/28(水) 15:07:07 ]
Python始めて1週間の俺には", ".join(g) の部分がよく分からなかったが、
gのシーケンスを", "で区切った文字列が得られるのか。

567 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:18:09 ]
むしろ g は glue の g かもしれないぜ

568 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:07:40 ]
>>563
for e in dir():
 1. if 違う要素かどうか判定: 改行\n + フラグを更新する
 2. 要素を出力する

d。ノートにでもまとめて整理しとく乙

569 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:19:04 ]
>>566
個人的には
リスト.join(区切り文字)
の方がわかりやすいと思ってる。

570 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:27:24 ]
1. FAQ嫁
2. Ruby使え
3. 俺もそう思う



571 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:43:04 ]
引数にジェネレータを与えられるのはstr.joinの一つの利点だと思う

572 名前:563 mailto:sage [2008/05/28(水) 17:51:18 ]
>>569
俺も文脈的に直感的でないと思うけど、文字列クラスにjoinメソッドがあるという
形だからしょうがないね。
静的関数として提供した方がいい気がするが、元々静的関数だったのが廃止されて
メソッドになったのね。

573 名前:デフォルトの名無しさん [2008/05/28(水) 19:13:53 ]
djangoを使ってみようと思っています。

それでまずはmodelを定義してデータを入れるところまではできま
した(sqlite3とかで直接DBの中身見て入ったのを確認した)。

だけど、manage.py shellでデータを確認しようとしても見れません。

具体的にはhoge.objects.all()とかってやっても[]が表示されるだ
けです。

これはなぜなんでしょうか?

あと、adminのhogeの画面でも
5 hoges
のように表示されるだけで、DBに格納したデータをいじれたり、見
る事ができない状態です。

何かアドバイスがいただければ助かります。よろしくお願いします。

574 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:13:19 ]
うちではみれてる

575 名前:デフォルトの名無しさん [2008/05/28(水) 23:51:30 ]
ディショナリをそのキー名の変数にするってどうすればいいんですか?
つまり
a{hoge:1,foo:2,bar:3}
を↓のようにしたいです。
hoge = 1
foo = 2
bar = 3

576 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 23:56:27 ]
>>575
入門書嫁。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<131KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef