Pythonのお勉強 Part32at TECH
Pythonのお勉強 Part32 - 暇つぶし2ch175:デフォルトの名無しさん
09/02/23 00:02:38
10k問題という言葉・・初めて知りましたw

一万接続なんて、スクリプトじゃむりぽ
…というか、アパッチも無理なんじゃ

176:デフォルトの名無しさん
09/02/23 00:02:43
ビジネス戦略って一体何なんだ?

177:デフォルトの名無しさん
09/02/23 00:52:54
Python 3.0の変更点を調べていると、

URLリンク(text.world.coocan.jp)'sNewInPython3.0
> callable関数は削除されました。
>『callable(f)』の代わりに、
>『hasattr(f, '__call__')』が使えます。
> operator.isCallable関数もなくなりました。

とあるのですが、後者の方が書き難いのではないかと思います。
Pythonでは複数のやり方を嫌うという説明を見ました。
しかし、より良いものが残るべきとう意見は分かります。
でも、今回の件は消す必要が無かったのでは?
と思ってしまいます。

皆さんの意見はいかがでしょうか?

178:デフォルトの名無しさん
09/02/23 01:01:28
正直 2.x でも callable なんて使ってなかったからどうでもいい。
EAFPってやつだ。

179:デフォルトの名無しさん
09/02/23 01:32:36
レスありがとうございます。
EAFPという考え方、初めて知りました。
Googleで調べたら、いろいろ勉強になりました。

そもそもオブジェクトの属性が持つかどうかをチェックするよりは、
try, ecept構文で実行して、例外を補足するスタイルが推奨されているんですね。

180:デフォルトの名無しさん
09/02/23 08:03:08
>>175
> 一万接続なんて、スクリプトじゃむりぽ
Erlangなんかの実績はあるよ。

181:デフォルトの名無しさん
09/02/23 08:34:59
魚病理学者って何だ?

182:デフォルトの名無しさん
09/02/23 09:57:42
pass

183:デフォルトの名無しさん
09/02/23 11:36:33
10k問題って西暦で10000年になって桁が増えるときの問題かと思ったぜ

184:デフォルトの名無しさん
09/02/23 14:29:48
10種類も苦しいことがあるなんてどんな業界だよ。

185:デフォルトの名無しさん
09/02/23 14:42:07
休憩がない、帰れない、給料安い、休暇(取れ)ない、雇用不安定
キリがない、規則が理不尽、経費が自腹、心を病む、過労死

で10kじゃね

186:デフォルトの名無しさん
09/02/23 14:51:47
>>185
おいおい、「彼女ができない」 が抜けてるぞ

187:デフォルトの名無しさん
09/02/23 14:54:28
「彼女(or結婚)できない」、すっかり忘れてたよ

188:デフォルトの名無しさん
09/02/23 20:50:30
Erlangでいけるなら
stackless + libev でいけるだろ、たぶん、きっと

189:デフォルトの名無しさん
09/02/23 20:51:29
>>157
これ見ると、概してCよりC++のほうが早いと思って良いのかなぁ。

190:デフォルトの名無しさん
09/02/23 21:04:40
>>188
有望ではあるよね。
C10K問題への対策の一つが高次並列化なんだが、stacklessが
変数使い捨てを強化すれば、並列化との相性が良くなる。

191:デフォルトの名無しさん
09/02/23 21:08:43
C10K問題対策って普通単にサーバ分散させるだけじゃねえの?

192:デフォルトの名無しさん
09/02/23 21:13:41
>>185-191
C10K: >>185 - 規則が理不尽 + 彼女ができない + コーディング規則が理不尽

193:デフォルトの名無しさん
09/02/23 21:26:10
>>191
静的コンテンツを同時に多数同時に見てもらうだけの時代はそれで済む事もあったけど、
例えば「10万人同時ログイン&互いに同じ関心を持つ者のグループをダイナミックに」
などとやろうとすると、別の手が必要。

関数型言語が並列化と相性がいいんで、stacklessみたいなのが関数型のいい所を
取り込んでくれるといいな、というのが感想。

194:デフォルトの名無しさん
09/02/23 22:06:09
10万人同時ログインってw
GLAYの幕張ライブやないねんからw

195:デフォルトの名無しさん
09/02/23 22:14:08
チャットみたいなもんか?
よくわかんねえけど
10万人で一緒にチャットする必要は感じないが……

今の大規模サービスって別にダイナミックコンテンツでも
普通にスケールさせてないか?
勿論サーバ分散させて

196:デフォルトの名無しさん
09/02/23 22:38:39
少数のサーバーに集中
     ↓
安価な多数のサーバーに分散するといいぜ
     ↓
でも、物理メンテ大変だし、あんまり安いマシンじゃなくて
ちょっと高級な中グレードのマシンで台数減らした方がよくね?
(イマココ)


197:デフォルトの名無しさん
09/02/23 23:08:25
C10K問題の先駆けは既に、Skype、Twitterなどでも出始めてる。
10万人というのは一例で、従来型サービスの延長じゃない事を
スケールさせたい場合の問題の一つ。

198:デフォルトの名無しさん
09/02/23 23:44:25
あんまり言語とは関係ない話になってるなw

199:デフォルトの名無しさん
09/02/24 00:07:49
10万人同時チャットってwww
忙しすぎw

200:デフォルトの名無しさん
09/02/24 11:41:28
ちょっと面白そうだな>10万人チャット

201:デフォルトの名無しさん
09/02/24 12:53:56
2chのスレの一番速い流れでスレあたり1000人だもんな。


202:デフォルトの名無しさん
09/02/24 13:35:13
人数の多いチャット部屋覗いたことあるが、大半はROM専
数人が発言しまくりで、残りは単発発言の奴かな
余程盛り上がる話題が無いとそんなにログ流れんし
ログが流れる時ってのは会話が成立しない祭状態で
会話したい奴は「特定の相手とのみ会話する機能」使って身内話

203:デフォルトの名無しさん
09/02/24 14:17:58
10KのKはKOBITOのK。

204:デフォルトの名無しさん
09/02/24 16:40:23
TwitterのPublic Timelineがある意味10万人チャットみたいなものか

205:デフォルトの名無しさん
09/02/24 17:50:41
聖徳太子「10Kまで同時通話おk」

206:デフォルトの名無しさん
09/02/24 20:37:20
pythonでhtmlを処理しようと思うんだがどういう方法がベターなの?

207:デフォルトの名無しさん
09/02/24 20:37:35
>>189
Linusの回答
URLリンク(tabesugi.net)
オリジナル
URLリンク(lwn.net)

208:デフォルトの名無しさん
09/02/24 20:53:57
C++のそういうネタは好きw

209:デフォルトの名無しさん
09/02/24 23:45:18
ネストした関数をunittestモジュールで外からテストにかける方法って
ない?

210:デフォルトの名無しさん
09/02/25 00:23:43
BeautifulSoupが流行ってる

211:デフォルトの名無しさん
09/02/25 01:21:36
>>206
htmlparserってのがあるけど、速度的には正規表現で処理するのがお勧め。

212:デフォルトの名無しさん
09/02/25 01:55:50
lxml

213:デフォルトの名無しさん
09/02/25 08:37:03
"substandard programmers"が書くCのコードもそれはそれは恐ろしいけどな。

214:デフォルトの名無しさん
09/02/26 02:22:46
lxmlが最強って聞いたけどそうでもないの?

215:デフォルトの名無しさん
09/02/26 14:51:02
lxmlが最強

216:デフォルトの名無しさん
09/02/26 15:21:07
lxmlが速いみたいだよ。どうしてもpure pythonが良いならBeautifulSoupだろうけど。

217:デフォルトの名無しさん
09/02/26 20:08:27
人の書いた作例とどう動くかが多数解説されたサイトを教えて下さい
解説サイトの理論を見ても理解できません
つーかPrologしかやったことないです

218:デフォルトの名無しさん
09/02/26 20:58:40
>>217
俺はむしろPrologのほうが分からんぜ…。

・ドキュメントのチュートリアルを一通り読む
>>1のまとめwikiにある問題集とドキュメントを照らし合わせながら読む
・とにかく書く

辺りかなぁ。
他の手続き型言語からの人なら
「自分の前に書いてたコードを今の言語に書き直してみる」
ってのも結構有効なのだろうけれど、Prologは毛色が違い過ぎて難しいだろうなぁ…。
特にユニフィケーションをフル活用するようなコードは言語としてサポートしてるPrologのほうが楽だろうし。

小さな練習問題が欲しいなら「練習問題 Python」辺りでググると大量に出てくると思う。

219:デフォルトの名無しさん
09/02/27 04:08:54
作例で数が多いとこならcookbook。でも、詳細な解説は期待できないかな。
いろんな人が投稿してるので質はバラバラだけど、
コードをベースに議論したりするので、他よりは割とコメント(解説)多めだと思う。
URLリンク(code.activestate.com)



220:デフォルトの名無しさん
09/02/27 08:52:56
generator について一言で言うと何なんでしょうか?

221:デフォルトの名無しさん
09/02/27 09:02:06
>>220
魔法

222:デフォルトの名無しさん
09/02/27 09:08:31
関数をイテレータ化するための魔法

223:デフォルトの名無しさん
09/02/27 14:28:57
今 URLリンク(www.python.jp)

4.7.1 デフォルトの引数値 の中の

def f(a, L=[]):
L.append(a)
return L

print f(1)
print f(2)
print f(3)

このコードを打とうとしてたんだけど、eclipseに
「.」ピリオド打つと固まってしまう。
コピペすると落ちないんだけど、直接「.」打つ方法ありませんか?

環境は
Eclipse Classic(SDK)3.4.1
Pydev 1.4.4.2636
Python 2.6
です。

お分かりの方いらっしゃいますか?


224:デフォルトの名無しさん
09/02/27 15:04:14
>>223
> 「.」ピリオド打つと固まってしまう。
「.」を入力した瞬間に、メソッド一覧を表示しようとしてると推測。

225:デフォルトの名無しさん
09/02/27 15:16:14
>>223
1日ほっとく

226:デフォルトの名無しさん
09/02/27 15:37:35
>>223
もっと早いマシン買えよ底辺ドカタ。

227:デフォルトの名無しさん
09/02/27 16:00:44
pass

228:デフォルトの名無しさん
09/02/27 17:58:08
>>220
遅延リスト

229:デフォルトの名無しさん
09/02/27 17:59:40
新しくpythonを勉強する際に、3.0対応の書籍・サイト・マニュアルはありますか?

230:デフォルトの名無しさん
09/02/27 18:36:20
>>229
はじめてのPython3
中身読んでないのでどのくらい使えるのかわからんけど。

231:デフォルトの名無しさん
09/02/27 19:08:48
URLリンク(www.catonmat.net)
URLリンク(inkhorn.org)

根性 types, object, attributes, method 理解

232:デフォルトの名無しさん
09/02/27 22:27:08
んじゃぁ

比較的新しいいい本は?

233:デフォルトの名無しさん
09/02/28 01:11:09
西尾さんが書いたJython本だな

234:デフォルトの名無しさん
09/02/28 01:34:54
>>229
スレリンク(tech板)

235:デフォルトの名無しさん
09/02/28 01:48:17
>>229
URLリンク(www.amazon.co.jp)

この本が一番日本語のPython本として一番よく出来ている。
他のがかすんで見えてしまうほどだ。この一冊さえあれば
Pythonについて完璧にマスターできるだろう。

236:デフォルトの名無しさん
09/02/28 02:47:46
>>235
その本を買って初心者を脱出したいと思います。
良著紹介ありがとうございました。

237:デフォルトの名無しさん
09/02/28 04:00:27
>>236
どういたしまして

238:デフォルトの名無しさん
09/02/28 07:30:36
>>235
Python関係ないだろ

239:デフォルトの名無しさん
09/02/28 09:29:57
>>238
はあ?
言語自体はPythonだろ

240:デフォルトの名無しさん
09/02/28 09:39:32
つか、Jythonってジャイソンって読むのか。ジェイソンだと思ってたw

241:デフォルトの名無しさん
09/02/28 09:48:20
爺さんって読むんだよ

242:デフォルトの名無しさん
09/02/28 09:48:25
>218-219
thx
パズル感覚でやってみます

243:デフォルトの名無しさん
09/02/28 11:55:31
>>239
Jthon本に対するコメントだよ
言語自体はPythonだけどその本に
Python的内容を期待してたら外れ

244:デフォルトの名無しさん
09/02/28 11:59:56
>>243
どっちかっつーとありゃJavaの本だ
ターゲット読者の絞込みが中途半端なんだよ
Java使いにとってはJavaのインストールとかEclipseとか
わざわざ説明してるのは馬鹿じゃないかと思う訳で
Python使いにとっては何が嬉しくてわざわざ
Javaインストールしてまで(ry


245:デフォルトの名無しさん
09/02/28 12:11:42
CPython から Java を呼び出して使えますか?

246:デフォルトの名無しさん
09/02/28 12:30:08
これから槍始める人は3.0かそれ以前をやるべきなのか・・・

247:デフォルトの名無しさん
09/02/28 12:40:18
2.5の日本語ドキュメントを利用できて、3.0の雰囲気も味わえる2.6

248:デフォルトの名無しさん
09/02/28 13:00:38
Guidoによると2.2の頃に書かれて改訂されたクソ本は買わない方がよいらしいよ。

249:デフォルトの名無しさん
09/02/28 13:06:40
クイックリファレンス一冊でオケ
ただし古すぎみたいな

250:デフォルトの名無しさん
09/02/28 13:19:37
Jython本をいつも推薦してくれるjava-jaの非モテ君ありがとう。

251:デフォルトの名無しさん
09/02/28 13:23:38
ジャイソン以外の良本はないのか

252:デフォルトの名無しさん
09/02/28 13:30:13
>>249の2.6/3.0対応版がもうすぐ出るよ
ピアソンがんばってくれないかね

253:デフォルトの名無しさん
09/02/28 13:49:19
すいませんアドバイスください m__m

コマンドプロンプト上でPythonを実行して
待機秒数を表示させたりする場合、
待機するループ内でprintやsys.stdoutの出力を行うと
データがどんどん流れていってしまうのですが、
それを防ぐ方法はありませんか?

254:デフォルトの名無しさん
09/02/28 13:54:03
import sys, time
for i in range(10):
    sys.stderr.write("%d\r" % i)
    time.sleep(1)

255:デフォルトの名無しさん
09/02/28 14:00:45
なるほど!!
どうもありがとうございます。

256:デフォルトの名無しさん
09/02/28 14:11:28
西尾さんのブログを読むべきだと思うけどな

257:デフォルトの名無しさん
09/02/28 14:12:14
>>254
すみません、ピコ秒単位で制御したいのですがどうすればいいんでしょうか

258:スルー力が足りない!
09/02/28 14:20:02
本人装った荒らし乙。

259:スルー力が足りない!
09/02/28 14:28:27
>>257
本人装った荒らし乙。

260:258 (!= 259)
09/02/28 14:38:09
図星だったwww


261:デフォルトの名無しさん
09/02/28 15:03:29
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

262:デフォルトの名無しさん
09/02/28 16:24:57
pass

263:デフォルトの名無しさん
09/02/28 18:15:08
ぬるぽ

264:デフォルトの名無しさん
09/02/28 19:28:41
try:
    ガッ

265:スルー力が足りない!
09/02/28 23:07:40
except ちんぽ as e:

266:デフォルトの名無しさん
09/02/28 23:37:00
俺の息子がexceptionalにepsironってことですね

267:デフォルトの名無しさん
09/03/01 15:15:27
SHA-1を計算するのに

f = open(target,'rb)
b = f.read()
f.close()
hashlib.sha1(b)

で計算はできたのですが
これをループを使って複数のファイルに対して行うと
途中でメモリエラーが出てしまいます(OutOfMemoryException)。
強制的にメモリを開放させるようなことはできないでしょうか?

b = ''
というようなこともしてみましたが無駄でした。
環境はIronPython 2.0.0.1、Windows Vista SP1です。


268:デフォルトの名無しさん
09/03/01 16:52:43
URLリンク(d.hatena.ne.jp)

269:デフォルトの名無しさん
09/03/01 17:04:45
入力されたフォームデータをsqliteでデータベースに溜め込むCGIをPythonで実現しようとしてるんですが
同時アクセスが有った場合にコリジョンを回避するにはどうしたらいいでしょうか?キューにしたいんですが。

270:デフォルトの名無しさん
09/03/01 17:07:42
import Queue

271:デフォルトの名無しさん
09/03/01 17:16:06
CGIじゃプロセスがそれぞれ異なるから無理でしょ。

あと、SQLiteに書き込むならロックされるはずだから
同時アクセスは気にしなくてもいいと思うよ。

272:デフォルトの名無しさん
09/03/01 17:26:26
aritayaki

273:269
09/03/01 17:26:54
下げ忘れてた。失礼。
ということは、例外を捕まえてtime.sleep(1)とかやった方がスマートですかね。
アクセスが集中したときは順番ゴチャゴチャになるかもしれないけれど。
マヌケな話で申し訳ないんですがコリジョンを意図的に発生させる方法を教えて貰えますか?
実際に例外出して見ないと不安で。

274:デフォルトの名無しさん
09/03/01 18:11:59
sqlite コマンド側からテーブルにロックかけたままにしておいて
CGI実行してみればどう?
タイムアウトはconnect時に指定できる。

あと、タイムアウトが発生してるような状態なら
時間をおいて再実行とかは、あまり意味がないだろう。
すぐにエラーにしてしまったほうがいいと思うけど。


275:デフォルトの名無しさん
09/03/01 18:44:49
ちょっと聞いてみたいことがある。

ある辞書の中から、いくつかのキーを持つ要素だけを取り出した部分辞書を作
りたい。

>>> request = {'hoge':1, 'fuga':2, 'piyo':3, ...}
>>> a = {}
>>> for key in ('hoge', 'fuga'):
...   a[key] = request[key]
...
>>> a
{'fuga': 2, 'hoge': 1}

これをもっと簡潔に書く方法は無いだろうか?


276:デフォルトの名無しさん
09/03/01 18:58:39
簡潔か微妙な気もするけど

dict([(key, request[key]) for key in ('hoge', 'fuga')])

277:デフォルトの名無しさん
09/03/01 19:15:26
リスト内包表記を map にしてみた。

dict(map(lambda x: (x, request[x]), ('hoge', 'fuga')))
なんだこの微妙さは。


278:デフォルトの名無しさん
09/03/01 19:37:35
dict([(x,request[x]) for x in request if x in ('hoge', 'fuga')])

279:デフォルトの名無しさん
09/03/01 19:41:54
英語的な連中には
コレが構文的に分かりやすいのかね?


280:デフォルトの名無しさん
09/03/01 20:28:58
内包表記って便利といえば便利だけど
python の魅力・長所である、
「記述内容が形(インデント)で見える」って
ところを完全に無視しているのが何と言うか…

281:デフォルトの名無しさん
09/03/01 21:16:08
え?内包表記、読みやすいじゃん・・・
トリッキーなことやりすぎるとあれだけど。


282:デフォルトの名無しさん
09/03/01 21:17:53
forの左に書けるのが文だけで式が書けないから色々微妙なことをしないといけなくなる

283:デフォルトの名無しさん
09/03/01 21:24:04
>>280
個人的には内包表記は「記述内容が形で見える」ものの最たるものだと思うなあ。

Z = [(x / y if y != 0 else None) for x, y in zip(X, Y)]

となっていたら Z はリストで要素は x / y か None だということが一目で分かるから。

たぶん問題なのは内包表記を入れ子にすると一気に難読化するということかと。
個人的には入れ子にして読みにくくなるぐらいならバラして for 文なりにするかな。

284:デフォルトの名無しさん
09/03/01 22:10:34
276と277の比較なら276のが読みやすい。

285:デフォルトの名無しさん
09/03/01 22:24:53
>>276-278共通して
('hoge', 'fuga')
なんだけど
['hoge', 'fuga']
じゃだめなの?


286:デフォルトの名無しさん
09/03/01 22:34:59
偏向する必要がないならタプルを使う。

287:269
09/03/01 23:05:54
じゃ俺はちょっと違った切り口で。
>>276とほぼ一緒だけどfilter使えばコメント無くても何やってるか分かりやすい。
あとrequestに無いキー持ってこようとしてもエラー吐かない。

request = {'hoge':1, 'fuga':2, 'piyo':3}
def f(x): return x in ('fuga','hoge')
dict([k,request[k]] for k in filter(f,request))

288:デフォルトの名無しさん
09/03/01 23:44:01
遅くね?

289:デフォルトの名無しさん
09/03/01 23:46:22
dict([k,request[k] if k in request else None] for k in ('fuga','hage'))

290:デフォルトの名無しさん
09/03/01 23:54:14
dict{[(k, v) for k, v in request.items() if k in ('fuga','hoge')]}

3.xであれば

{(k, v) for k, v in request.items() if k in ('fuga','hoge')}

291:デフォルトの名無しさん
09/03/01 23:57:35
ごめん、↑のdict{}はdict()だ

292:デフォルトの名無しさん
09/03/02 00:10:11
見つからないkeyは結果からは無くなった方が良いのかな

293:デフォルトの名無しさん
09/03/02 00:14:25
部分辞書だからな

294:デフォルトの名無しさん
09/03/02 09:44:29
URLリンク(blog.livedoor.jp)

>本書を見てびびった人は、以前紹介した「実践Python」を薦めておく。

勧めるなよ(wwwwWwwWwwwWWwwww


295:デフォルトの名無しさん
09/03/02 09:56:50
この本が一番いいんだけどな
URLリンク(www.amazon.co.jp)

296:デフォルトの名無しさん
09/03/02 10:00:33
URLリンク(blog.livedoor.jp)

子飼が紹介するとクソ本認定?

297:デフォルトの名無しさん
09/03/02 15:22:57
Windowsにpythonインストールしたら
付属でついてるpython editorのデバック環境が充実してておどろき
しかしemacs key-bindになれてるからemacs ぽく使える環境で便利なのないでしょうか?
emacsのpython.elはbreak pointの設定が右クリック一発でできなくて使いにくい

298:デフォルトの名無しさん
09/03/02 15:50:51
>>294
その本出版社が潰れて買えなくなってるよ。

299:デフォルトの名無しさん
09/03/02 16:08:32
>>297
じゃぁ右クリック一発でできるように改造すれば?


300:デフォルトの名無しさん
09/03/02 17:00:12
どうみてもクソ本認定です
本当にありが(ry

301:デフォルトの名無しさん
09/03/02 17:06:56
age

302:デフォルトの名無しさん
09/03/02 17:08:06
>>297
xkeymacs入れてしまえ

303:デフォルトの名無しさん
09/03/02 21:22:48
hoge.__setitem__(key, value)

無理やりreduceで書くなら例えば
reduce(lambda d, x: d.__setitem__(x, request[x]) or d, ['hoge','fuga'],{})
こんな書き方になると思うけど、Python使いはこの例を普通こんな風には書かない

dict((k, request[k]) for k in ['hoge','fuga'])
のほうがずっと素直で短く読みやすいからね

304:デフォルトの名無しさん
09/03/02 23:26:46
はぁ?

305:デフォルトの名無しさん
09/03/02 23:35:41
複素演算の構文調べてたら、とあるSEの書いたブログが引っかかったが
そこのサンプルはNameErrorとTypeErrorの出力ばっか張ってあって役に立たなかった

306:デフォルトの名無しさん
09/03/03 00:07:05
reduce とか lambda とかそのうちなくなるだろ。

307:デフォルトの名無しさん
09/03/03 00:34:39
それはそうかもしれないけど、3.0を生き残ったことで想定寿命は激延びな希ガス

308:デフォルトの名無しさん
09/03/03 00:51:03
lambdaって無くなるのかな

309:デフォルトの名無しさん
09/03/03 01:08:45
>>297
IDLEのこと?
OptionsのConfigure IDLEを開いて、KeysでClassic Unixにすれば
C-aで行頭とかになるよ。
C-x C-s みたいなキーシーケンスもできる。

310:デフォルトの名無しさん
09/03/03 01:29:17
lambdaの中で代入とか複数の文とか出来るようになるのはいつ?

311:デフォルトの名無しさん
09/03/03 01:52:36
mapとfilterは最悪消えてもリスト内包表記で書けるけど
reduceって代用あるっけ?

312:デフォルトの名無しさん
09/03/03 01:54:42
どっちみちreduceはfold_left相当でfold_rightはないし
unfoldもないけどな

313:デフォルトの名無しさん
09/03/03 01:56:01
>>310
つーか全部式にしてほしいという発想にはならんのか
文が存在する関数型言語ってあるっけ

314:デフォルトの名無しさん
09/03/03 04:53:23
Haskellのwhereって式?

315:デフォルトの名無しさん
09/03/03 08:02:01
⊂二二二( ^ω^)二⊃

316:デフォルトの名無しさん
09/03/03 09:02:51
>314-315
ナ、ナンダッテー>ΩΩΩ

317:デフォルトの名無しさん
09/03/03 09:53:35
Haskellのwhereはcase式の一部
URLリンク(www.haskell.org)

318:デフォルトの名無しさん
09/03/03 12:15:02
URLリンク(www.atmarkit.co.jp)

319:デフォルトの名無しさん
09/03/03 12:54:49
URLリンク(www.oreilly.com)
この本の日本語版ってありますか?

320:デフォルトの名無しさん
09/03/03 13:34:23
>>245
JCC

321:デフォルトの名無しさん
09/03/03 14:53:57
>>319
この表紙は人を選ぶな…

322:デフォルトの名無しさん
09/03/03 16:16:11
>>321
俺も初めて見たときはこれはさすがにどうかと思ったよ

323:デフォルトの名無しさん
09/03/03 16:23:05
>>319
> URLリンク(www.oreilly.com)

グロ
閲覧注意


324:デフォルトの名無しさん
09/03/03 17:39:28
ただの模様じゃん
なんも樹に成らん

325:デフォルトの名無しさん
09/03/03 23:36:22
俺は樹になる

326:デフォルトの名無しさん
09/03/04 01:06:21
カバーをひっくり返して、好きな絵を描くといいよ。

327:デフォルトの名無しさん
09/03/04 07:15:06
へび(そのものあるいはその絵)を嫌うひとは心理的に

328:デフォルトの名無しさん
09/03/04 09:21:27
そもそも蛇嫌いはpythonでアウトな気がする。

329:デフォルトの名無しさん
09/03/04 12:36:48
Python の由来は Monty Python であって、ヘビは関係ないと Guido は言って
たんだがなー。まあ O'Reilly の表紙にパイソンズ出すわけに行かないか。


330:デフォルトの名無しさん
09/03/04 17:52:34
>>329
Guido的には、元ネタ的にはそうなんだが
オライリーのPython本の絵が蛇になっちゃうのはそりゃ仕方ないよなーってことで
諦めた(受け入れた)、みたいな感じだったかと

331:デフォルトの名無しさん
09/03/04 18:34:07
日本語版はおっぱいでおk

332:デフォルトの名無しさん
09/03/04 20:03:47
>>331
エロ本コーナーに並びそうだな。

333:デフォルトの名無しさん
09/03/04 21:15:19
ジャイソンかサイソン
   どっち?

334:デフォルトの名無しさん
09/03/05 15:44:46
get 333

335:デフォルトの名無しさん
09/03/05 17:29:58
URLリンク(www.python.com)

336:デフォルトの名無しさん
09/03/05 18:16:01
Firefoxでアドレスバーにpythonと打つとpython.jpにつながるのでそれを期待して古いMozillaでやったら
大学のワークステーションでpython.comにアクセスしてしまったでござる

337:デフォルトの名無しさん
09/03/06 02:04:38
アイコンの蛇って名前とか付いてないの?

338:デフォルトの名無しさん
09/03/06 02:11:47
やっぱ時代はRubyだよな

339:デフォルトの名無しさん
09/03/06 02:33:09
ぱいちんこ

340:デフォルトの名無しさん
09/03/06 14:43:06
>>336
俺も間違えたことあるw
.comのほうは海外のエロサイトなんだよな

341:デフォルトの名無しさん
09/03/06 15:47:07
間違えてwww.goo.co.jpを開いちゃったみたいな感じか

342:デフォルトの名無しさん
09/03/06 18:31:59
Webポータルのハズがクルマ、はまだ良いだろ
python~の場合、技術資料のハズがエロサイトだぜ?
自宅で誰も居ないなら別に良いが、会社や学校、家族の目の前で間違えた時は…

343:デフォルトの名無しさん
09/03/06 18:38:36
>>342
いや、goo.co.jpもエロサイトだったんだが(今は無いが)

344:デフォルトの名無しさん
09/03/06 23:17:06
>>335
我が家でBフレッツ導入した時に、「セキュリティ対策ツール」という名前で
マイクロトレンドのOEMでウイルスバスター相当のセキュリティソフトが
1ユーザ分ついてくるのだが、このサイト、しっかりと、プロックしてくれました。
めんどくさいので、プロック解除してまでみたいとは思わん。

345:デフォルトの名無しさん
09/03/07 00:24:10
こういうアドレスを買収しようとしたら
いくらぐらいかかるんかね


346:デフォルトの名無しさん
09/03/07 01:37:51
2万円

347:デフォルトの名無しさん
09/03/07 11:26:51
既に取られてるドメインは2万じゃキツかろう
逆にまだ取られてないドメインならもっと安いが

348:デフォルトの名無しさん
09/03/07 21:48:43
3万円

349:デフォルトの名無しさん
09/03/07 22:37:25
逆にまだ取られてないドメインなら買収とは言わん罠

350:デフォルトの名無しさん
09/03/08 10:16:38
def f(hoge=3, fuga=7):
print (hoge, fuga)
または
f = lambda hoge=3, fuga=7: print (hoge, fuga)
という関数に対して
d1 = {'fuga': 8, 'hoge': 4}
という辞書で
f(**d1)
を実行すると期待通りになるのですが
d2 = {'kane': 1, 'fuga': 8, 'hoge': 4}
という辞書で
f(**d2)
を実行すると'kane'が無いと怒られます
どうすればうまくいくのでしょう

351:デフォルトの名無しさん
09/03/08 10:19:53
訂正します

誤 f = lambda hoge=3, fuga=7: print (hoge, fuga)
正 f = lambda hoge=3, fuga=7: (hoge, fuga)

352:デフォルトの名無しさん
09/03/08 15:09:33
def f(hoge=3, fuga=7, **kwargs):
  print (hoge, fuga)

353:デフォルトの名無しさん
09/03/08 15:49:40
eval("foo(param)")
はうまく動くのに
eval("bar.foo(param)")
が動いたりうごかなかったり
特に

#file a.py
def f():
eval("bar.foo(param)")

#file b.py
a.f()

としたときに動いてくれない

354:デフォルトの名無しさん
09/03/08 16:59:02
質問してるのか、
問題を喚起しているのか、
ツンデレなのか、
はっきりしなさい!

355:デフォルトの名無しさん
09/03/08 17:39:14
eval関係無く動くまい

356:デフォルトの名無しさん
09/03/08 18:00:41
ツンデレです

357:デフォルトの名無しさん
09/03/08 20:43:28
適切に sys.path.append していないと予想

358:デフォルトの名無しさん
09/03/09 01:13:08
通常の仕事にevalなんて使う事ないなぁ。
皆どんな高度なことやってるの?

359:デフォルトの名無しさん
09/03/09 01:32:46
アプリのコマンドライン。
emacsだとM-xに相当か。
制作中はアプリ自身のデバッグにも使える。

360:デフォルトの名無しさん
09/03/09 14:10:34
>>353
#a.py
class Handletest:
def handle(self, methodstr):
result=eval(methodstr,globals(),locals())
return result

if __name__ == "__main__":
import numpy
handletest=Handletest()
print handletest.handle("numpy.linalg.norm([1,2])")#動く




#b.py
import numpy
import a
if __name__ == "__main__":
h= a.Handletest()
print h.handle("numpy.linalg.norm([1,2])")#動かない
-------------
golbals localsに違うものいれないといけないみたいなのだけど
どう入れればいいのかわからない

361:デフォルトの名無しさん
09/03/09 17:10:33
print h.handle("import numpy; numpy.linalg.norm([1,2])")

362:デフォルトの名無しさん
09/03/09 18:39:03
h.handle("numpy.linalg.norm([1,2])", globals(),locals())
h.handle("numpy.linalg.norm([1,2])", {"numpy":numpy}, {})

363:デフォルトの名無しさん
09/03/09 19:35:25
>>360
bでimport numpyしただけだと
bからはnumpyという名前が見えるが
aからは見えないのさ

importはインタプリタにモジュールをロードするだけでなく、
カレントのモジュールにシンボルをインポートするという意味を持っている

364:363
09/03/09 19:47:41
こんだけじゃ説明足りんかな
Pythonのグローバル変数(グローバル環境フレーム)ってのは
インタプリタグローバルじゃなくて、モジュールスコープで別れてるんだよ

モジュールのトップレベルの束縛=グローバル変数
だと思っていい
globals()関数が返すのも、あくまで「そのモジュールの」グローバル変数

365:デフォルトの名無しさん
09/03/09 20:55:55
>>353
#a.py
class Handletest:
def handle(self, methodstr):
import numpy
result=eval(methodstr,globals(),locals())
return result

if __name__ == "__main__":
handletest=Handletest()
print handletest.handle("numpy.linalg.norm([1,2])")

366:デフォルトの名無しさん
09/03/09 21:40:14
import sys
class Handletest:
    def handle(self, methodstr):
        frame = sys._getframe(1)
        return eval(methodstr, frame.f_globals, frame.f_locals)

367:デフォルトの名無しさん
09/03/09 22:01:48
sys._getframeを呼び出してるメソッドは継承すると酷いことになる

368:デフォルトの名無しさん
09/03/10 10:49:07
ウーパールーパーって食えるんだな
URLリンク(www.fnn-news.com)

369:デフォルトの名無しさん
09/03/10 23:18:16
おまえら、金融系とか経済系の
ゲーム作るプロジェクトやりたい?

370:デフォルトの名無しさん
09/03/10 23:33:20
>>369
自分で勉強しろ

371:デフォルトの名無しさん
09/03/10 23:51:17
やりたい

372:デフォルトの名無しさん
09/03/10 23:56:48
プロジェクトというからにはキッチリドキュメントがそろってるんだろうな?

373:デフォルトの名無しさん
09/03/11 00:01:34
>>370
どっちの意味?

プログラムを勉強しろっていみ?
それとも、金融知識を勉強しろっていみ?

374:デフォルトの名無しさん
09/03/11 00:04:55
>>371
金融系のプロジェクトでプログラマー募集したら、
なぜか応募してきたのがpythonのプログラマーなんだよね。

他にも自分が見聞きしてる範囲内で、
「学校を作ろう」とかいう、ふざけたプロジェクトに応募
してたのもpythonのプログラマーだったし、ひょっとして
pythonって、せっかく学んでも、いじるアプリがないから
参加するプロジェクトを探してる状態なんじゃないかなーって
思ったわけだ。

もしこれがPHPだったら、wordpressはあるし、joomlaはあるし、
phpbbはあるし、mediawikiはあるし、で、いくらでもアプリも
プロジェクトもあるし、いじり倒すおもちゃは豊富にあるしで、
プルグラマー募集してもきてくんないんだよね。

でもpythonだったら、いじるおもちゃがない状態だから、
プログラマーが余っていて、わりかし捕獲しやすい
状態なのかなと。

375:デフォルトの名無しさん
09/03/11 00:08:59
>>374
学校を作ろうを馬鹿にするな!!

376:デフォルトの名無しさん
09/03/11 01:13:02
すまんが、真面目な話してるんだ、馬鹿は黙ってくれないか

377:デフォルトの名無しさん
09/03/11 01:20:54
そりゃphpなんかと比べてしまえば
pythonを存分に使わせてもらえるところは少ないだろうね

378:デフォルトの名無しさん
09/03/11 01:36:52
そもそもPythonはRubyより劣るからな。利用価値がまったくない。

379:デフォルトの名無しさん
09/03/11 01:41:20
仕事でゲーム作る人募集って事?

380:デフォルトの名無しさん
09/03/11 02:25:34
>>379
Rubyは優秀だからな。

381:デフォルトの名無しさん
09/03/11 02:49:52
面白そうならなんでもやるぜ

382:デフォルトの名無しさん
09/03/11 03:00:21
ドモホルンリンクルの計測なんてどうだ

383:デフォルトの名無しさん
09/03/11 06:49:10
>>377
phpは優秀だからな。

384:デフォルトの名無しさん
09/03/11 17:52:44
URLリンク(ja.uncyclopedia.info)
わろた

385:デフォルトの名無しさん
09/03/12 08:31:02
日本語のプロジェクトじゃなければ結構あるんじゃね

386:デフォルトの名無しさん
09/03/12 13:19:39
はじパイの第2版が中古で売ってたんだけど今のバージョンって3.0なの?
第2版は2.3までだからもうちょっと新しいのかったほうがいい?

387:デフォルトの名無しさん
09/03/12 13:57:08
>>386
個人的には2.4以降じゃないと嫌だなw
generatorなくてなんのPythonよ

388:デフォルトの名無しさん
09/03/13 01:55:16
UNICODEの扱いがちゃんと載ってるのにしなよ

389:デフォルトの名無しさん
09/03/13 02:56:44
JapaneseCodecsがあれば10年は戦える

390:デフォルトの名無しさん
09/03/13 13:40:57
Windowsで、2.5.2使ってるんだが、code(codeop)の動きがどうもおかしいんだ。

普通にコンソールでは、u''が使えるんだ。

>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\u3042'

だけど、InteractiveConsoleを使うと、

>>> import code
>>> code.InteractiveConsole().interact()
Python 2.5.2 (r252:60911, Mar 27 2008, 17:57:18) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\x82\xa0'

と、u''を正しくdecodeしてくれない。

どうもcodeop.compile_CommandCompilerがこういう動作をしているようで、
IPythonでu''が化けるのも同じ原因のようだ。
Windows版のコンソールは、何か特別なパッチが当たってるんだろうか。
どこか設定をいじってやればコンソールと同じ動きするんだろうか。

まぁunicode('あ')とか書けばいいんだけどなんかくやしい。


391:デフォルトの名無しさん
09/03/13 13:54:02
>>390
2.6.1 amd64 で、 code.InteractiveConsole() では上手く動いたよ。
それでもIPythonはダメ。

392:デフォルトの名無しさん
09/03/13 14:49:33
>>391
2.6.1でやってみた。

>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\u3042'
>>> import code
>>> code.InteractiveConsole().interact()
Python 2.6.1 (r261:67517, Dec 4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> 'あ'
'\xe3\x81\x82'
>>> u'あ'
u'\u3042'
>>> unicode('あ')
Traceback (most recent call last):
File "<console>", line 1, in <module>
UnicodeDecodeError: 'cp932' codec can't decode byte 0x82 in position 2: incomplete multibyte sequence
>>> unicode('あ', 'utf8')
u'\u3042'

なぜUTF-8www

2.5でも、codeop.CommandCompilerにunicode渡すとこんな動きになるんで、
ようするに2.6ではraw_inputがunicodeを返すようになっただけでCommandCompilerの挙動は変わってないみたいだ。
IPythonは、渡す前にsys.stdin.encodingでencodeしてるので、2.5と同じ動きになる。

コンソールで使ってるCommandCompilerの正体はいったいどこにあるんだ!?
ソースを読めばいいんだろうが、どこを読めばいいのかすら分からん。

393:デフォルトの名無しさん
09/03/13 15:00:15
【Python】Pylons Web Frameworkスレ
スレリンク(php板)

394:デフォルトの名無しさん
09/03/13 15:03:12
組み込みのcompileを使うと問題がよく分かる。

>>> exec compile("'あ'", '<input>', 'single')
'\x82\xa0'
>>> exec compile("u'あ'", '<input>', 'single')
u'\x82\xa0'
>>> exec compile(unicode("'あ'"), '<input>', 'single')
'\xe3\x81\x82'
>>> exec compile(unicode("u'あ'"), '<input>', 'single')
u'\u3042'
>>>

どうしろってんだ・・・

395:デフォルトの名無しさん
09/03/13 15:57:47
あんまりいい方法ではないと思うけど

import code
import sys

class MyInteractiveConsole(code.InteractiveConsole):
  def __init__(self, *args, **kw):
    code.InteractiveConsole.__init__(self, *args, **kw)
    self.__compile = self.compile
    self.compile = self.mycompile
  def mycompile(self, source, *args, **kw):
    if sys.stdin.encoding:
      if isinstance(source, unicode):
        source = source.encode(sys.stdin.encoding)
      source = "# coding: %s\n%s" % (sys.stdin.encoding, source)
    return self.__compile(source, *args, **kw)

if __name__ == "__main__":
  MyInteractiveConsole().interact()

396:デフォルトの名無しさん
09/03/13 16:15:11
>>395
それだと、結局最初の(2.5の)

>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\x82\xa0'

って挙動になるだけだよね。



397:391
09/03/13 16:23:50
なおした
URLリンク(dsas.blog.klab.org)

398:395
09/03/13 16:33:49
>>396
自分の環境(Windows)では2.5, 2.6でも↓のようになるのを確認したけど、ならない?
(MyInteractiveConsole)
>>> 'あ'
'\x82\xa0'
>>> u'あ'
u'\u3042'

399:デフォルトの名無しさん
09/03/13 18:55:32
ならない
sys.stdin.encoding

どこでも同じとは限らない

400:デフォルトの名無しさん
09/03/13 19:57:05
>>397
うん、それでsys.setdfaultencoding("utf-8")すれば使えるようにはなるんだ。
でもそれだとWindows環境でpysh使ったとき、にほんごファイル名が通らなくなる。(UTF-8に変換されるため。)

UTF-8Cygwin使う、ってのも一長一短だしなあ…

401:デフォルトの名無しさん
09/03/13 19:58:11
>>398
ならないなあ…
環境設定でなんとかなるのなら是非教えてほしい

402:デフォルトの名無しさん
09/03/13 20:42:48
>>400
sys.setdefaultencoding('utf-8') するのは何故?
>>397 の修正だけで、全く問題ないよ?
/open u"ソ.txt"
こんなのも余裕。

403:デフォルトの名無しさん
09/03/13 21:01:23
>>397の修正だとcp932の環境でstrの'あ'が'\x82\xa0'になって欲しいところ
utf8の'\xe3\x81\x82'になっちゃう

404:デフォルトの名無しさん
09/03/13 21:12:13
>>403
なるほど。日本語をcp932でstrで使うなんて発想が無かった。
from __future__ import unicode_literals
して、strと決別しちゃえ。

405:デフォルトの名無しさん
09/03/14 10:25:26
>>402
>sys.setdefaultencoding('utf-8') するのは何故?
cp932だとunicode('あ')でエラーになるからじゃないか?

406:デフォルトの名無しさん
09/03/14 11:20:45
>>405
もともとの defaultencoding は ascii
インタラクティブシェルじゃなくて普通のスクリプトでも unicode('あ') はエラー。

Python3.0からは utf-8 になるから、from __future__ import ??? でやってることと
同じといえるかもしれないけど。

407:デフォルトの名無しさん
09/03/14 12:17:23
>インタラクティブシェルじゃなくて普通のスクリプトでも unicode('あ') はエラー。

馬鹿ですねわかります

408:デフォルトの名無しさん
09/03/14 12:17:35
普段はmbcs,cp932あたりをsys.setdefaultencodingしてるんでしょ、きっと

409:デフォルトの名無しさん
09/03/14 12:31:56
URLリンク(fettig.net)
この本の日本語版っていつ頃出ますか?

410:デフォルトの名無しさん
09/03/14 12:53:32
>>409
このイラストはスパゲティコードの暗示なのか…?

411:デフォルトの名無しさん
09/03/14 13:22:22
MLで翻訳の需要あるか聞かれてたやつだっけ?
とても微妙な反応だったなw

412:406
09/03/14 15:17:31
>>407
何が? u'あ' はOKだけど、 unicode('あ') は
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)

>>408
それをさせないように、普通は del sys.setdefaultencoding してあって、
reload(sys)
sys.setdefaultencoding('utf-8')
とかしないと初期値のasciiから変更できないのに、、、

みんなUnicodeはきちんと使おうぜ。外部とのやり取りは encode/decode して、リテラルで使うときは
unicode('ほげ', 'utf-8') じゃなくて u'ほげ' が正解だ。

413:デフォルトの名無しさん
09/03/14 18:10:21
あまりreload(sys)は流行らせるなよ

>>409
twistedは処理がボコボコ切られて正直使いにくいからこれ以上流行って欲しくないなあ

414:デフォルトの名無しさん
09/03/14 18:16:10
>>413
eventletマンセーですねわかります

415:デフォルトの名無しさん
09/03/14 20:16:32
>>408
pyshを長いこと使ってるから
sitecustomize.pyにsys.setdefaultencoding('cp932')と書いて
リテラルはunicode('あ')と書くスタイルが染みついてるw

utf-8にするとマジック関係が動かないからなあ・・・

[C:Documents and Settings/Administrator]|2> cd デスクトップ
[Error 2] 指定されたファイルが見つかりません。: '\xe3\x83\x87\xe3\x82\xb9\xe3\x82\xaf\xe3\x83\x88\xe3\x83\x83\xe3\x83\x97'

IPythonのソースに手を入れたついでに、マジック関係のユニコード化もするか。

とまで考えたところで、なんというか進む方向が酷く間違っている気がしてきたが目をつぶってがんばる

416:デフォルトの名無しさん
09/03/14 20:50:36
つーわけでユニコード化マジックコマンド。

--- C:/Python25/Lib/site-packages/IPython/iplib.py.bak Sat Mar 14 20:41:18 2009
+++ C:/Python25/Lib/site-packages/IPython/iplib.py Sat Mar 14 20:36:39 2009
@@ -936,6 +936,8 @@
valid Python code you can type at the interpreter, including loops and
compound statements. It is added by IPython to the Python builtin
namespace upon initialization."""
+
+ arg_s = unicode(arg_s, 'utf-8')

args = arg_s.split(' ',1)
magic_name = args[0]
@@ -2019,7 +2021,7 @@
# this allows execution of indented pasted code. It is tempting
# to add '\n' at the end of source to run commands like ' a=1'
# directly, but this fails for more complicated scenarios
- source=source.encode(self.stdin_encoding)
+# source=source.encode(self.stdin_encoding)
if source[:1] in [' ', '\t']:
source = 'if 1:\n%s' % source

デフォルトエンコーディングをutf-8にする必要はない(compilerにユニコードを食わせたときにutf-8化するのはデフォルトエンコーディングとは関係がない)。

[C:Documents and Settings/Administrator]|1> cd デスクトップ/
[C:Administrator/デスクトップ]|2>


417:デフォルトの名無しさん
09/03/15 05:39:24
あかん・・・ユニコードリテラルをちゃんと扱えるようになったところで、

print 'あ'

が普通に化けるんじゃ本末転倒だなあ。

418:デフォルトの名無しさん
09/03/15 10:37:01
>>417
from __future__ import unicode_literals
これで全部解決

419:デフォルトの名無しさん
09/03/15 10:51:01
「,」と「%」の記号を16進数にエスケープしたいのですが
re.subを使って置換する方法はありますか?


(1) 'A is 20%, B is 80%'
(2) 'A is 20%25%2c B is 80%25'
(1)を(2)に変換したい。

次のコードでは「\1」は通常の文字列ではないのでうまく動作しない。
import re
txt = 'A is 20%, B is 80%'
print re.sub('([,%])', '%02x' % (ord(r'\1')), txt)

420:デフォルトの名無しさん
09/03/15 11:11:14
>>419
re.sub('([,%])', lambda m: '%02x' % ord(m.group(1)), txt)

421:デフォルトの名無しさん
09/03/15 11:18:06
>>419
urllib.quote(txt)

422:デフォルトの名無しさん
09/03/15 11:46:15
>>418
んだな。~/_ipython/ipy_user_conf.pyのmain関数の最後に、
o.autoexec.append('from __future__ import unicode_literals')
を追加。

2> 'あ'
<2> u'\u3042'
3> u'あ'
<3> u'\u3042'
4> print 'あ'
-------------->print('あ')





423:デフォルトの名無しさん
09/03/15 12:06:10
416のarg_sのユニコード化がエラーになるので削除。
unicode()にユニコード食わせるとユニコードのままにならなかったっけ・・・?
で、デフォルトエンコーディングはcp932かmbcsにしとく必要があるようだ

424:デフォルトの名無しさん
09/03/15 12:25:42
>>423
unicode() の第一引数が unicode オブジェクトの場合は、第二引数があると
エラーになる。
if not isinstance(arg_s, unicode):
    unicode(arg_s, 'utf-8')

425:デフォルトの名無しさん
09/03/15 13:21:20
>>424
なるほど。isinstance()しとくしかないようだなぁ。

というかunicode_literalsのためだけに2.6にあげたよ!あげたよ!

426:デフォルトの名無しさん
09/03/15 13:27:29
>>420,421
ありがとう。

re.sub('([,%])', lambda m: '%%%02x' % ord(m.group(1)), txt)
第二項目が関数だと、Matchオブジェクトを引数にして呼び出されるのか。

urllib.quote(txt)
確かにこの方が簡単ですね。
ただ今回はファイルの後方互換性が必要で、
エスケープするのは記号2種類だけにしたいので
とりあえず文字列置換を使うつもりです。

427:デフォルトの名無しさん
09/03/15 13:45:03
txt.replace('%', '%25').replace(',', '%2c')
じゃいかんの?

428:デフォルトの名無しさん
09/03/15 15:48:38
>>427
Ruby使う事にしたので問題ないです。

429:デフォルトの名無しさん
09/03/15 21:33:17
>>427
今回の場合はそれで十分ですね。
実はPerlのコードを参考に作っているんだけど
Pythonでもコンパイルとかなしで出来るのか知りたかったので
「re.sub」で聞いてみました。

430:デフォルトの名無しさん
09/03/15 21:47:25
パイソンのRadツールって何があります?

431:デフォルトの名無しさん
09/03/15 23:12:03
Rubyですかね。

432:デフォルトの名無しさん
09/03/16 01:08:07
よくわからんが、エンコーディングの設定が間違ってるでFA?

433:430
09/03/16 01:24:58
Rubyにしてみます。

434:デフォルトの名無しさん
09/03/16 02:31:18
あるある

435:デフォルトの名無しさん
09/03/16 02:42:22
こうしたRuby厨の工作によりまともな人はRubyを嫌うのであった

436:デフォルトの名無しさん
09/03/16 03:30:38
てかruby厨ってrubyしか使ったことないかあるいは使えないんでひたすら布教するんだろうな
複数の言語を使いこなせないとは哀れな

437:デフォルトの名無しさん
09/03/16 03:31:47
どこの世界に>>431みたいな布教をする奴がいるんだw

438:デフォルトの名無しさん
09/03/16 04:34:45
もともとはそういう奴らがいたから、現在そういうネタになってるんだよw

439:デフォルトの名無しさん
09/03/16 04:41:44
パールときてルビーときて。
次はどんな宝石だい?

440:デフォルトの名無しさん
09/03/16 05:00:24
満を持してダイヤモ

441:デフォルトの名無しさん
09/03/16 05:08:34
・・・花崗岩とか?

442:デフォルトの名無しさん
09/03/16 10:53:24
トルコ石まで続くかもなw

443:デフォルトの名無しさん
09/03/16 14:34:47
URLリンク(sankei.jp.msn.com)
URLリンク(sankei.jp.msn.com)
URLリンク(sankei.jp.msn.com)
宝石の条件の一つには硬度が高いことも重要である。
これは、硬度が低い鉱物の場合、経年による砂埃(環境に遍在する石英など)による風化・劣化のために、
観賞価値が失われてしまうためである。
例としてダイヤモンドはモース硬度10、ルビー・サファイアはモース硬度9である。
石英のモース硬度は7であり、これらの宝石の硬度は石英のそれより高いことに注意されたい
(オパールなどは例外的に硬度が低い)。
硬度以外の条件として色彩、透明度、希少性など鑑賞的価値・財産的価値・所有の欲求を満たす性質が重要である。

444:デフォルトの名無しさん
09/03/17 12:11:42
>>411
2年前なら確実に買っただろうけどな。

445:デフォルトの名無しさん
09/03/17 14:29:19
reprって何て読むのでしょうか?
また、名前の由来は何でしょうか?

446:デフォルトの名無しさん
09/03/17 14:39:50
representかな?

447:デフォルトの名無しさん
09/03/17 14:41:24
れぷると読んでいる
representだと思っている

俺はな

448:デフォルトの名無しさん
09/03/17 15:13:35
representation、表現

マニュアルを嫁

repr(object)
Return a string containing a printable representation of an object. (...)

449:デフォルトの名無しさん
09/03/17 17:46:09
>446-448
ありがとうございます
マニュアルは和訳しか呼んだことがなくて気付きませんでした…

450:デフォルトの名無しさん
09/03/18 01:31:58
マニュアル読まないと分からない言語って糞じゃないですか?

451:デフォルトの名無しさん
09/03/18 01:39:19
そりゃマニュアル読まずとも理解できればそれにこしたことはないけど、
開発言語くらいの規模だとマニュアルなしでは非常に厳しい。
マニュアル読まずとも習得できる言語ってHQ9+とかのジョーク言語くらいじゃない?

452:デフォルトの名無しさん
09/03/18 02:19:35
IPython使ってるなら ? 付けるだけ。

In [10]: repr?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function repr>
Namespace: Python builtin
Docstring:
repr(object) -> string

Return the canonical string representation of the object.
For most object types, eval(repr(object)) == object.

453:デフォルトの名無しさん
09/03/18 03:01:26
>>> help(repr)
Help on built-in function repr in module __builtin__:

repr(...)
repr(object) -> string

Return the canonical string representation of the object.
For most object types, eval(repr(object)) == object.

454:デフォルトの名無しさん
09/03/18 23:20:58
わかるよ、習うより慣れろってことね。わかります。
だけど、マニュアル見た方が良い場合もある。

バージョンによる文法の違いとか、
他の言語を使ったことがあるけど、pythonに移行したい場合。

help方式は、そもそも、索引する単語が分かっている場合にしか使えない。


455:デフォルトの名無しさん
09/03/19 00:41:47
scipyのバイナリは
SSEがサポートされて無いと使えないんですか?

456:デフォルトの名無しさん
09/03/19 00:55:06
そういう質問してる時点で駄目だと思う

457:デフォルトの名無しさん
09/03/19 01:06:30
んー
CPUがSSE3をサポートして無いといって中断するんだよな。
WinでのbuildについてはOfficialにマニュアルもないし…

ATLASとBLAS入れてMinGWでeasy_installか?

458:デフォルトの名無しさん
09/03/19 09:14:01
Rubyしかないな

459:デフォルトの名無しさん
09/03/19 18:08:57
Cythonって既にpython3に対応してるんだな。
lxmlがpython3に対応したというのを見て初めて知った。

460:デフォルトの名無しさん
09/03/20 02:04:44
パイソン学び始めて1日目ですが
数当てゲームの作り方を
ヒントだけでいいので教えてください。

461:デフォルトの名無しさん
09/03/20 02:34:33
数当てゲームでググる

462:デフォルトの名無しさん
09/03/20 02:55:17
そのぐらい自分で考えてフローチャートでも書いてみれ

463:デフォルトの名無しさん
09/03/20 03:41:11
うおお
頭がパンクしそうだ

464:デフォルトの名無しさん
09/03/20 04:20:42
>>460
import random
while(True):
  print '0-9? ',
  print 'ok' if int(raw_input()) == int(random.random() * 10) else 'bad'


465:デフォルトの名無しさん
09/03/20 04:23:25
>>464
なんか見たこと無い構文がいっぱいorz
プログラミングって難しいですね・・・

466:デフォルトの名無しさん
09/03/20 04:48:52
int(random.random()*10)
よりは
random.choice(range(0, 10))
のほうがよくね?

467:デフォルトの名無しさん
09/03/20 05:04:26
random.randint(0, 9)

468:デフォルトの名無しさん
09/03/20 05:53:35
>>466-467
ありがとうございます
勉強になります

469:デフォルトの名無しさん
09/03/20 05:55:10
毎回乱数発行してたら0~9まで10回入力しても当たらんケースがあるのかw

470:デフォルトの名無しさん
09/03/20 06:01:14
分かってるとは思うけど各回の期待値は1/10だから
10回連続で外れる確率は0.9**9で35%くらいある
逆に乱数一回だけ発行だと10回以内で確実に当たる

471:デフォルトの名無しさん
09/03/20 08:44:10
35%もあるのか

472:デフォルトの名無しさん
09/03/20 10:12:05
そんなことよりエロゲつくってくださいよぉ

473:デフォルトの名無しさん
09/03/20 10:16:37
了解

474:デフォルトの名無しさん
09/03/20 10:39:39
音ゲー作ろうかと思ったけどMIDIわかんえ

475:デフォルトの名無しさん
09/03/20 12:33:21
URLリンク(www13.plala.or.jp)
URLリンク(www13.plala.or.jp)
URLリンク(www13.plala.or.jp)

476:デフォルトの名無しさん
09/03/20 17:05:58
2.6 と 2.5 の共存はどうやるのがいいんでしょうか?
窓環境で ctypes で dll にアクセスする用途で 2.6を
入れたはいいものの、環境変数の設定を 2.5 -> 2.6と
設定し直す手間がとても面倒なんです…

477:デフォルトの名無しさん
09/03/20 17:39:23
そうだね

478:デフォルトの名無しさん
09/03/21 19:58:48
3もでてるのに何で今更2.6が使いたいの?
モジュールの対応状況ならまだ2.5が最良だろ?


479:デフォルトの名無しさん
09/03/21 20:01:37
>>478
3はまだ先行者による地雷発掘中だから一般人は使っちゃダメ。
2.6 に移行して from __future__ しまくるのがベスト。

480:デフォルトの名無しさん
09/03/21 23:37:35
とか言ってる割には
今から使い始めるには3からが良いよ
ってのを良く見るんだが…

まぁ、バグ出しの問題と
仕様変更による混乱回避の問題は別物だけど
使っちゃ駄目ってのもおかしな話だ

だったらリリースすんなよって言われても仕方ない

481:デフォルトの名無しさん
09/03/21 23:53:31
>>今から使い始めるには3からが良いよ
言ってねーよ。少なくとも2chでは…

482:デフォルトの名無しさん
09/03/22 00:10:39
ruby1.9のがはるかに先をすすんでいる。

483:デフォルトの名無しさん
09/03/22 00:12:09
>>482
それは絶対にないwww

484:デフォルトの名無しさん
09/03/22 00:38:56
ipython 重すぎね?
何をそんなにがりがり読み込んでんだよ

485:デフォルトの名無しさん
09/03/22 00:45:05
レジストリ

486:デフォルトの名無しさん
09/03/22 00:54:09
それ古いんじゃね
今ならjython使え

487:デフォルトの名無しさん
09/03/22 00:57:28
Duron600Mhz, mem 256MBなPCを買い換えろよ

488:デフォルトの名無しさん
09/03/22 14:19:00
>>476
URLリンク(d.hatena.ne.jp)

2.5系を環境変数に登録しといて
2.6系, 2.7系, 3.0系, 3.1系を呼び出すような
スクリプトを書いて > python distributed.py test_script.py
みたいに呼び出せればいいじゃないか、とか
思いつくもののどう書いたらよいか思い付かず(沈

489:デフォルトの名無しさん
09/03/22 15:42:09
環境変数ってbinフォルダへのパスだったの?
それならバッチ書いてパスの通ったとこに置いとけばいいよ
python3.1.bat

c:\Python31\bin\python.exe
みたいなので

ほかの環境変数もいじれるよ


490:デフォルトの名無しさん
09/03/22 15:58:42
俺は単にexeの名前変えてる
python25.exeとかpython26.exeとか
で、両方のbin/を環境変数に登録しとけば
いちいち環境変数弄らんでも、いつでも好きなほうを使えるよ

491:デフォルトの名無しさん
09/03/22 16:30:20
数当てスクリプト作ってるんですけど、
乱数を一回だけ発行するにはどうすりゃいいんでしょうか・・・?

492:デフォルトの名無しさん
09/03/22 16:31:49
>>491
一回だけ生成すればいいだけだろ
意味が分からん

493:デフォルトの名無しさん
09/03/22 16:32:04
そのくらいぐぐろうよ・・・
Python 乱数 で一発だよ

494:デフォルトの名無しさん
09/03/22 16:46:22
ぐぐってもよくわかりません

495:デフォルトの名無しさん
09/03/22 17:01:26
while(True):
print'1-9?'
if int (raw_input())==random.randint(1,9):
print 'ok'
else:
print'bad'

これで合ってます?

496:デフォルトの名無しさん
09/03/22 17:04:47
>>491
import time;time.clock()

497:デフォルトの名無しさん
09/03/22 17:08:06
>>495
まちがってます。ヒントは型。

498:デフォルトの名無しさん
09/03/22 22:43:45
>495
ループに入る前に生成して変数に

499:デフォルトの名無しさん
09/03/23 06:08:06
>>495
みんなのPythonから始めたほうがいいと思う
URLリンク(www.amazon.co.jp)みんなのPython-柴田-淳/dp/479733665X

500:デフォルトの名無しさん
09/03/23 06:25:16
ミス
URLリンク(www.amazon.co.jp)

501:デフォルトの名無しさん
09/03/23 14:17:27
いやいや、分厚い初めてのPythonで挫折しようぜ

502:デフォルトの名無しさん
09/03/23 18:31:06
漏れはdoskeyだね。
doskey py26=c:\python26\bin\python $*
doskey py31=c:\python31\bin\python $*
とかバッチファイルに書いて、
cmd.exe /k, c:\util\setdos.bat
とかショートカット作ってこれを実行するようにしてる。

503:デフォルトの名無しさん
09/03/24 11:03:28
>>484
IPython 0.9.1 + Python 2.6.1 の環境で、 Sets の Warning
出している部分を
#import Sets
Sets = sets
と書き直してやったら早くなった気がする。

504:503
09/03/24 11:15:53
やっぱりあまり変わらないかも…
どっちも1秒で起動する。

505:デフォルトの名無しさん
09/03/24 15:21:00
ヤマタノ

506:デフォルトの名無しさん
09/03/24 15:30:54
ダルに代わったときはどうなることかと思った

507:デフォルトの名無しさん
09/03/25 16:22:43
すいません、質問です。
関数内で構造体に値を入れまくって、関数抜けた後
次の関数でその値を参照する。と言う感じのことをやるにはどうしたらよいでしょうか?

クラスメンバに代入する方法で書いてみたのですが、
なんか上手くいきませんorz

説明下手ですいません(´Д`;

508:デフォルトの名無しさん
09/03/25 17:01:17
構造体って何?

509:デフォルトの名無しさん
09/03/25 17:10:34
class foo: pass
x = foo()
x.y = 1
x.s = 'abc'
x.b = True

これって構造体っぽい物ですか?

510:デフォルトの名無しさん
09/03/25 17:31:14
動的にメンバ変数を増やせるメリットがいまだに分からない

511:デフォルトの名無しさん
09/03/25 17:45:20
>>507っす。
すいません、色々試してたら自己完結しました。
引数とかでエラー出てると思ってたら、配列指定のトコでこけてましたorz

修正前:print frm.name
修正後:print frm[0].name

イラネーYO、と言われそうですが、
色々試してたソース張ってみます。

512:507
09/03/25 17:46:35
class Frame:
  def __init__(self,name,len):
    self.name  = name
    self.len  = len

def func_in(frm):
  frm.append(\
    Frame(
      name  = "sigA",\
      len    = 32\
  ))

def func_out(frm):
  print frm[0].name
  print frm[0].len


frm=list()
func_in(frm)
func_out(frm)



513:デフォルトの名無しさん
09/03/25 17:46:35
イラネーYO

514:デフォルトの名無しさん
09/03/25 17:46:59
イラネーYO

515:デフォルトの名無しさん
09/03/25 19:15:31
>>510
わざわざ新しいクラス作らなくても済む

516:デフォルトの名無しさん
09/03/28 00:55:11
URLリンク(morepypy.blogspot.com)
これは期待していいのか?

517:デフォルトの名無しさん
09/03/28 02:33:12
構造体の代わりだったら辞書で十分でないの?

518:デフォルトの名無しさん
09/03/28 02:36:55
辞書は順番保持しないじゃん
名前つきタプルなら代わりになりそうだが

519:デフォルトの名無しさん
09/03/28 05:51:36
名前で参照出来るなら順番はどうでもいいことが多いが

520:デフォルトの名無しさん
09/03/28 12:29:38
↑(笑)

521:デフォルトの名無しさん
09/03/28 13:49:47
**kwargsを知らんのだろ
あるいはJavaユーザーが流れてきたか

522:デフォルトの名無しさん
09/03/28 16:51:05
>>516
『Google公布新项目将改进Python的性能 』
URLリンク(opensourcechina.blog92.fc2.com)

中華なイパネマ経由で把握した
うん…いやなんでもないんだ…

URLリンク(code.google.com) (中段辺り
Note that many of the areas we will need to address have been
considered and developed by the other dynamic language
implementations like JRuby, Rubinius and Parrot, and in particular
other Python implementations like Jython, PyPy, and IronPython.
In particular, we're looking at these other implementations for
ideas on debug information, regex performance ideas, and generally
useful performance ideas for dynamic languages. This is all fairly
well-trodden ground, and we want to avoid reinventing the wheel
as much as possible.

523:デフォルトの名無しさん
09/03/28 18:57:48
>PyPy Status Blog
この名前はどうにかならんのか
日本で流行らない一因だ

524:デフォルトの名無しさん
09/03/28 19:05:09
読み方はパイパイ?

525:デフォルトの名無しさん
09/03/28 19:27:53
URLリンク(docs.python.org)
keyword argument があると method の overload

URLリンク(www.math.tu-berlin.de)
が楽になるけど、ないと引数の順番を呼び出すときに絶えず
確認しなければならず、めどい => IDEに丸投げする

526:デフォルトの名無しさん
09/03/28 23:46:43
中華なパイパイ

527:デフォルトの名無しさん
09/03/29 03:25:03
桃白白を馬鹿にするな

528:デフォルトの名無しさん
09/03/29 22:25:13
Pylonsスレまた落ちてるね

529:デフォルトの名無しさん
09/03/29 23:47:03
そういや、pylonsのメーリングリスト誰か管理しろよw

530:デフォルトの名無しさん
09/03/30 02:51:22
初心者なんですが、特に使いたいフレームワークがないので3.1使ってもいいですよね?
柴田とかいう人の影響を受けている人の意見はいらないです。

531:デフォルトの名無しさん
09/03/30 04:51:33
誰かの影響を受けたくないとか言うなら自分で決めろよ

532:デフォルトの名無しさん
09/03/30 05:15:42
>>530
初心者なら2.6にしとけ

533:デフォルトの名無しさん
09/03/30 07:15:24
名無しの影響を受けるのは平気ってのがすごい

534:デフォルトの名無しさん
09/03/30 07:21:35
自称初心者が突然柴田とか言いだす背景にはいったい何が

535:デフォルトの名無しさん
09/03/30 08:10:10
>>530
初心者が、Webに転がってる大量の情報や本が信頼できない環境でプログラム書けるの?
言語のUpdateに伴って標準ライブラリにも一部不整合があるけど大丈夫なの?

玄人でも Python3 を日常的に使うのはためらうんだ。初心者は手を出すな。
Python3 が一般人に薦められるようになるには、最低でも3年はかかる。

536:デフォルトの名無しさん
09/03/30 12:44:49
>>530
3.1に取り組んでおくのもいいと思いますよ。

取り急ぎ。

537:デフォルトの名無しさん
09/03/30 13:01:20
別に取り急ぐようなことでもないのにw

# あくまで俺は>>536に言ったわけで

538:デフォルトの名無しさん
09/03/30 13:33:58
もしかしてこの本の著者か?
URLリンク(www.kohgakusha.co.jp)
最悪だな

539:デフォルトの名無しさん
09/03/30 13:51:02
柴藤?

540:デフォルトの名無しさん
09/03/30 14:18:58
そもそも。日本語の入門書よんで勉強するなんて馬鹿げてる…
情報古いし、内容も薄いし…

stardictとか入れて、日本語以外のMLとか
配布されてるマニュアルよめばいいじゃん。

英語も勉強できて一石二鳥だよ


541:530
09/03/30 14:48:59
そのパクリタイトルの著者も評判悪いですね。
ぼくの周りでは。
そうですね。日本語やめます。
今日から英語でやります。

542:デフォルトの名無しさん
09/03/30 15:33:26
えっ?、アドバイス言ってくれる人が周りにいたの?

543:530
09/03/30 15:39:30
ぼくはそんなこと書いていませんよ^^
stardictといえばキングソフトが丸パクリしてますよね
どーでもいいーですな

544:デフォルトの名無しさん
09/03/30 19:53:05
知恵が無いのに自意識を大事にしすぎ

545:デフォルトの名無しさん
09/03/30 21:09:13
URLリンク(www.itmedia.co.jp)

Unladen SparrowはGAEのために作ってたのか

546:530
09/03/30 23:26:50
知恵がないってどうやって判断できるんでしょうなあ
ほんとにプログラマかこいつら

547:デフォルトの名無しさん
09/03/30 23:33:20
>>530は柴田をネタにして話題を作り、そこからただ荒らしをしたいだけの人と読んだがどうか。

548:デフォルトの名無しさん
09/03/30 23:35:42
柴田はツッコミ所を減らしてもっと殺伐とすべき

549:デフォルトの名無しさん
09/03/30 23:45:13
>>546
どうやっても何も、相手の知恵は相手の言動から判断するのが普通だよ。知らないの?

まぁお前風に言えば、「レスアンカーも無いのにお前が言われたとどうやって判断したの?」とか、
「一人の言い分を読んでどうしてそこから“こいつら”と複数への疑問に繋げるの?」とかが
モロ突っ込み所なわけで、その辺の「間抜けな割に上からモノ言いたがる」ところがまさに>>544の通り。

550:デフォルトの名無しさん
09/03/30 23:46:43
おまえらスルーしろよ

退避スレ
スレリンク(tech板)

551:530
09/03/31 00:35:14
>>549
なんかよくわからんがそれでいいと思うよ。
IDない板は嫌いなんだよなー
しらんが。

552:530
09/03/31 00:37:54
退避してもIDがないとか、ほんきで馬鹿馬鹿しい。
荒れないところに、才能は集まらないんだよなあ。
だからここも駄目ー。ハッカー頑張ってねー^^

553:デフォルトの名無しさん
09/03/31 00:41:38
ハッカーはこんなレベルの低いとこ見てないよ

554:530
09/03/31 00:45:03
そうなのか。
質問する場所も考えないとなあ^^
うんこして寝ます

555:デフォルトの名無しさん
09/03/31 00:47:08
モテなそう。

556:デフォルトの名無しさん
09/03/31 00:49:52
ふつーにモテるよ

557:デフォルトの名無しさん
09/03/31 00:56:44
アホのくせにプライドばかり高くてモテるわけないだろ(wwWwwwWWWwww
早く寝て布団でクソしろ(w

558:デフォルトの名無しさん
09/03/31 01:39:20
Djangoスレに来てるのこいつかw

559:デフォルトの名無しさん
09/03/31 01:40:09
アホでプライド高くても女は寄ってくる。
俺には寄ってこないけどなー

560:デフォルトの名無しさん
09/03/31 02:48:28
2次元でいいだろ。

561:デフォルトの名無しさん
09/03/31 09:03:28
じゃあ俺は次元で

562:デフォルトの名無しさん
09/03/31 10:13:53
>>558
ダンジョーと愉快な仲間たち(w

563:デフォルトの名無しさん
09/03/31 12:58:10
Windows上でLinuxサーバー用にモジュールをビルドするにはどうすればよいですか?

564:デフォルトの名無しさん
09/03/31 13:09:47
VMWareでも使えば?

565:デフォルトの名無しさん
09/03/31 13:15:45
やっぱり何かしらの方法でえLinux使うしかないかー。
ありがとうございました。

566:デフォルトの名無しさん
09/03/31 14:24:36
草民とも今日でお別れ

567:デフォルトの名無しさん
09/03/31 14:56:27
クロスコンパイルすれば出来るけど、
coLinuxでもVMWareでも使った方が良いと思う。

568:デフォルトの名無しさん
09/03/31 16:06:08
柴田って人は随分人気があるんだなぁ

URLリンク(d.hatena.ne.jp)


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