[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/24 01:18 / Filesize : 206 KB / Number-of Response : 962
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Pythonのお勉強 Part30



1 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 19:09:55 ]
Pythonオフィシャルサイト
www.python.org/
日本Pythonユーザ会
www.python.jp/Zope/
まとめWiki
python.rdy.jp/
関連スレ
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
前スレ
pc11.2ch.net/test/read.cgi/tech/1223543412/

304 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:03:52 ]
x=range(100);print x
for i in x: print i;print '\n';

これなら出来るけど

class hoge: def func(): pass;

みたいにインデントが必要なのが2つ以上は無理だと思うよ

305 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:18:02 ]
今時メモリすらギガ単位で計られる時代に
たかがスクリプトのファイルサイズを気にする奴がいるとはな

306 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:30:41 ]
低スペックに気を配れないプログラマはゴミ

307 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:31:53 ]
可読性に気を配れない奴もな

308 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:32:03 ]
300K以上のスクリプト起動すると遅くない?

309 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:34:27 ]
インタプリタだから容量は実行速度にも影響出るだろ

310 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:51:35 ]
じゃぁメモリに置いとけや

311 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:53:12 ]
バイトコンパイルして実行するんだから
インデントが実行速度に影響するわけないだろ

312 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:53:36 ]
>>309
> インタプリタだから

関係ねえし。




313 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:57:51 ]
インデント削るととか、大昔のBASICの高速化技術みたいだな
発想が化石過ぎて感動した

pycってファイルが何なのか分かってるか?

314 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:11:32 ]
書き込み権限がないからpycが無いです

315 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:13:22 ]
1つの.pyに詰め込んでるのでpycが無いです

316 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:13:30 ]
昔のBASICって、よく使う変数はプログラムの最初の方で
宣言しておいた方が速くなるとかあったなw

そういえば、レンタル鯖とかでPythonのCGIを実行する場合って
pycは作られるのかな?

317 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:14:17 ]
>>316
作られるよ

318 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:14:52 ]
pyc作られようが作られまいが、内部的にはバイトコンパイルしてから
実行だから、「インデントが」速度に影響出るなんてことは、あり得ねえけどな

319 名前:デフォルトの名無しさん [2008/12/02(火) 04:06:23 ]
>>302
> pythonでインデント使わない方法はありませんか?
> ファイルサイズが大きくて困ってます
ハードタブにしろ

320 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 07:30:44 ]
今時ハードタブはありえない

321 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 08:30:29 ]
内部的にバイトコンパイルする速度には影響出るが
全体の実行時間に対する割合で言えば影響は無いと言ってもいいくらいという

322 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 08:42:55 ]
pc11.2ch.net/test/read.cgi/tech/1169473442/l50



323 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:06:44 ]
>>321
ギャバンが蒸着を完了する程度の差しか無いだろうな。

324 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:29:07 ]
Pythonのスレで思うのは
バージョン間ごとの信者なんて沸かないことだな。
安定だの不安定だの、信頼性に欠けるとか。
ドキュメント化されてるからそうなってるんだろうなー。

325 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:36:25 ]
>>324
バージョンあがるごとに確実によくなってるし、Deprecated Warning を無視していない
限りはほぼ確実に次のマイナーバージョンアップ (2.4 -> 2.5 みたいな) で問題ないから
移行も楽だからねぇ。

Python3.0も、互換性はなくなるけどオブジェクトシステムとか基本が変わらないし、
Python2.6にPython3.0移行支援が用意されてる (大量の Deprecated Warning と 2to3) から、
php4 -> php5 とか perl5 -> perl6 とか ruby1.8 -> ruby1.9 とかよりも簡単に
移行できそう。まぁ、ある程度有名ライブラリが3.0に対応してくるまで自分のアプリは
2.x 用のままだけど。

326 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:37:20 ]
まぁ一年は様子見るけどな

327 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 18:45:34 ]
PILでimage sequenceをゼロから作る方法をみつけれない
どこかにいいsample codeないのかな

328 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 18:51:24 ]
GoogleCodeSearch

329 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:41:14 ]
静止画はPIL
動画はpygame
という使い分けでいいのか?


330 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:40:31 ]
どういう用途において?

331 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 02:00:48 ]
PILはaviファイルの読み込みする方法はみつけたけど
加工して書き込みできなかった

pygameが読み込みも加工も新規作成もできる


332 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 14:21:04 ]
クラス変数についてです。
class foo(object): CON = 'const'
print foo.CON # print CON としたい

例えば上のprint文で、いちいち"foo."を書くのが面倒です。
importっぽいことをやって、"foo."を省略できるように
させる方法はあるのでしょうか?




333 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 14:53:10 ]
研究室の学生の人数全分のmatlab買えないので
pythonに切り替えた

はたしてこの選択は間違っていなかったのか

334 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 15:10:02 ]
カローラと自転車を比べてもしょうがないな

335 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 16:25:36 ]
>333
python というより numpy, scipy の話って感じかな

sage ってのもなんか似た臭いなんだけどどういう位置づけなのかな?
scipy のさらに上位のまとめライブラリ?


ただ matlab から"乗り換え" というのなら普通は
scilab とか octave とかが思い浮かぶけど

336 名前:デフォルトの名無しさん [2008/12/03(水) 16:41:24 ]
>>333
俺は windows用の matlab なら持ってるけど、俺がメインでつかう
linux 用の matlab はもってないから、完全に matlablib に乗り換えた。
(en.wikipedia.org/wiki/Matplotlib)

matlab はソフトウェアには組込めないけど、matlablibは
簡単にインテグレーションできるので、移行してよかった。
てか、matlablib を見つけれてよかったとおもってる。

お勧めするよ。

337 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 16:45:21 ]
matplotlib の話なのか、
おれが知らない matlablib の話なのか
はっきりしてくれ

338 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 16:48:23 ]
>>337
ごめん、matlablib は自分用語で、公式にはmatplotlib。

339 名前:デフォルトの名無しさん [2008/12/03(水) 20:20:50 ]
>>333 pythonに切り替えた
  はたしてこの選択は間違っていなかったのか

Matlab は揃いすぎ。理屈が解らなくても、マウス・クリックだけでフィルタ設計ができ
てしまう。Python ならば、学生が理論を理解できていなかったら結果を出せない。学生
用ならば python のほうが良いと思う。


>>335 ただ matlab から"乗り換え" というのなら普通は
  scilab とか octave とかが思い浮かぶけど

Python 使いならば matlab から scipy に乗り換えてもおかしくない。sympy など、他の
モジュールとの連携させる意味では python のほうが matlab より扱いやすい。もう
matlab は言語としては古臭くなっていると思う。

Matlab の優位性は、matlab 言語での膨大な蓄積とドキュメントの豊富さだと思う。


340 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 22:08:10 ]
>>332
class foo(object): CON = 'const'
CON = foo.CON
print CON

どうよ?

341 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 01:25:08 ]
>332
import foo.CON as CON


342 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 01:36:37 ]
すみません、12文字以内でお願いしますです。



343 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 02:45:06 ]
file1
--------
class foo(object): CON = 'const'
--------
file2
--------
from file1 import foo.CON as CON
print CON
--------

344 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 05:42:06 ]
matlabが今のlapackみたいな位置づけになるのも遠くないのか

345 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 09:09:15 ]
話のネタっす

ナイトツアー問題
slashdot.jp/article.pl?sid=08/12/03/0419216


346 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 09:56:16 ]
shutil.move()
ってめっさ遅くないですか?
ローカルにある2MBくらいのファイルを移動するのに0.4秒から1秒かかったんですけど
流体の計算より時間かかるってどんだけ

347 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 10:48:53 ]
OSやドライブorディレクトリのマウント状況によるだろう

348 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 11:05:44 ]
>>346
時間がかかってるんなら、それはクロスデバイスな移動を行おうとしたからで、
実際にはコピーが走ってるんだろ

コピーはshutil.copyfileobj()で行われるはずだが
デフォルトでは16KB単位(デフォルト引数でlength=16*1024となっている)
のようだから、ddでも使ってその環境での最適なバッファ長を確認したうえで、
shutil.copyfileobj.func_defaultsを書き換えてみたら

349 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 11:08:41 ]
言わずもがなだが、念のため
キャッシュに一旦入ってしまうとコピーは一瞬で終わるし
コピーの性能を評価する時には色々気をつけなければならないことは沢山あるぞ

勿論同一デバイス上でのrenameでいいのなら、それに越したことは無い

350 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 11:42:52 ]
3.0きたな。

351 名前:346 mailto:sage [2008/12/04(木) 11:43:58 ]
いちおスペックは
XPsp2 core2 Cドラ 空き100ギガ以上

とりあえずファイルの操作はpopenでシェル呼んでやったほうが速いですか?

popen2.popen4('move '+ファイルパス+' '+ディレクトリパス+' /y')

でいけますか?

352 名前:332 mailto:sage [2008/12/04(木) 12:02:47 ]
>>340 >>341 >>343
お返事有難うございました。
するとなると、下記のような場合で foo.CONX を一気に CONX と
書けるようにするのは難しいのでしょうか?
class foo(object):
 CON1 = 'const1'
 CON2 = 'const2'
 # 以下CON3などたくさん




353 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:04:09 ]
>>351
よくわからんな
Cドライブ→Cドライブの移動で、そんなに時間かかってんの?

354 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:21:56 ]
3.0きたけど様子見。
他のライブラリーが対応してないから

355 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:24:11 ]
まあクオリティ的には Ruby 1.9 より断然上だよな> Python 3.0
そういえば、 Perl 6 という vaporware もありました。

356 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:30:13 ]
まだ2.6にも移行してねえんだが……

357 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:41:44 ]
>>353
CからCです。
いくらなんでも遅すぎですよね。


358 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:45:06 ]
>>352
file1
--------
class foo(object):
 CON = [('const%d' % n) for n in xrange(1000)]
--------
file2
--------
from file1 import foo.CON as CON
for n in len(CON):
print 'CON%d = %s' % (n, CON[n])
--------


359 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:47:22 ]
>>357
早めにディスクのバックアップ取っとけw


360 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 13:51:33 ]
sage使ってる人います?
numpy単独よりも便利なのかな

361 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 14:13:38 ]
pythonのコードをdllや.soにする方法ってあるのかな

362 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 14:17:33 ]
3.0のWhat's Newは短いなぁ



363 名前:デフォルトの名無しさん [2008/12/04(木) 14:21:57 ]
>>362
変更点は全て列挙してあると思うけど、例を載せてほしいってこと?


364 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 15:05:48 ]
2.6に多くの機能が入ったからその分短くなったね

365 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 15:43:10 ]
そういう問題なのか???

ありすぎて書けない… わけじゃなく段差の分結果的に
"what's new" の項目数は少なくなったって感じ?

366 名前:デフォルトの名無しさん [2008/12/04(木) 15:44:05 ]
>>365
いやいや、十分長いがなw
参考文献へのリンクも含めて読んでみろよ。


367 名前:736 mailto:sage [2008/12/04(木) 15:59:14 ]
>>359
ちなみに正常な環境だと shutil.move()の実行速度って何秒くらいですか?
テスト条件はできれば同じくらいの環境で

368 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 16:16:05 ]
shutil.move("C:\test.txt", "C:\Test")みたいにdstにディレクトリを指定すると
実装のos.renameでOSErrorが発生してcopy2の方が呼ばれてるから遅くなってるのかな?
shutil.move("C:\test.txt", "C:\Test\test.txt")みたいにファイル名を追加するか
os.renameを直で使ってみたら?

369 名前:368 mailto:sage [2008/12/04(木) 16:17:10 ]
↑のはWindowsでの話。他のOSは分からない

370 名前: 株価【52】 mailto:sage [2008/12/04(木) 16:29:59 ]


371 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 17:37:20 ]
>367
0秒

372 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 19:02:54 ]
具体的にはどの段階で3.0にいこうすればいいのかね?



373 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 19:35:22 ]
>>372
お前の使ってるライブラリが対応したときだろ。

374 名前:デフォルトの名無しさん [2008/12/04(木) 19:59:37 ]
まだ 3.0 リリースせずにユーザーがもうちょっと 2.6 に慣れてから
リリースすればよかったような気がする。

でも、3.0は長い移行期間が必要とされるから、逆に早めにリリース
しておきたかったんだろうね。

375 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 20:17:04 ]
>>352
... class a:
... CONST1=1
... CONST2=2
... for x in dir(a):
... if x.startswith("CONST"):
... exec(x + "=" + "a." +x)
... print CONST1

どうよ?

376 名前:375 mailto:sage [2008/12/04(木) 20:18:06 ]
インデントがめちゃめちゃだ。
ごめんよ。

377 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 20:57:18 ]
printのカッコが地味に面倒だな。
こっちの方が言語的にいいのは、頭では理解してんだけどさ。
いままでの癖がなかなか抜けなくて、ぱいそんたんに怒られてばっかりだ。

378 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:26:41 ]
3.0が出たので入れてみた(Vista)

早速起動した。
> help()
打ってみた。動く。
そこで出た文章に従って
> modules spam
打ってみた。

エラー出た。
uft-8 ってエンコーディングが見つからないって。
・・・・あたりまえじゃああああ
どこが間違ってるのかよく分からんです。
Python30のディレクトリ下をgrepして出てくるのは
Lib/test/bad_encoding.py だけ。これは想定通りだろうが・・・

379 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:35:52 ]
・・・もしかしてLib/testはインストール後に
除去するのが正しい使い方?
別んとこによけておいたら、↑も通った。

380 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:38:47 ]
print("a%s%s" % ('b', 'c'))

なんかキモイな…

381 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:42:12 ]
Py3kはユニコード指定しなくていいのが嬉しい。
これでフレームワークが対応してくれれば・・・。

382 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:52:02 ]
つーか2.5とかでも別に

def printf(fmt, *args): print fmt % args,
def fprintf(f, fmt, *args): print >>f, fmt % args,

とか定義すりゃ
printf("a%s%s\n", 'b', 'c')
とか書けるわなあ

print()関数は、%とカッコがC風のprintf()より冗長に見えてしまうね



383 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 23:03:10 ]
setuptoolもまだ対応してないのかな?

384 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 23:06:11 ]
3.0わしょーい

385 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:17:30 ]
>>380
boost::format
みたいだ

386 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:28:39 ]
print("a{0}{1}".format('b', 'c'))
print("a", 'b', 'c', sep="")

387 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:32:32 ]
>>386
それもキモいな
あまり意味の感じられない多様性

Perlみたい

388 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:44:15 ]
string template は

389 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:53:59 ]
print文なんて一発プログラムでしか使わん。
ちょっと込み入った規模ならファイルオブジェクトにwriteするか
loggingを使ってる。

潔癖症にかかってる人は
変える必要など無い所まで変えやがるから
迷惑この上ない。


390 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:03:49 ]
一貫性に拘りすぎるのはバカみたいなことを
Pythonの中の人言ってなかったっけか

391 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:06:36 ]
>>390
それは本当にそう思うけど
print()関数は、後方互換性潰してまで導入したのがこれか、とは思う

392 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:07:24 ]
printは最初っからキモイ



393 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:09:51 ]
>>392
全くだw

394 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:12:03 ]
自演オワタ

395 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:15:56 ]
単要素のタプルもキモイ

396 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:21:54 ]
>>389
じゃぁお前はprintの変更の影響受けて無いじゃん。

Python開発者は潔癖症なんかじゃないよ。
print文の変更も議論の上だよ。 print文でファイルに出力する方法とか、最後に改行しない
方法とか、その為だけに構文を増やしていたのを、普通の関数呼び出しにして柔軟に
使えるようになった。

数タイプを削減するためだけに構文増やしまくってたprint文がキモ過ぎただけで、
print関数は素直で自然な姿。

397 名前:デフォルトの名無しさん [2008/12/05(金) 02:15:03 ]
後方互換性潰してまで導入したのがこれか

398 名前:  mailto:  [2008/12/05(金) 02:22:59 ]
それが何か?

399 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 04:52:48 ]
Cとの互換性を重視して文法がカオスになってるC++を見てると、
どこかで切り捨ては必要だなって思う。

400 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 09:11:27 ]
printの構文くらいしか噛みつくとこないんですね

401 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:00:42 ]
デバッグプリントしようとしてエラー吐いたときのイラつきは異常

402 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:32:16 ]
>>400
printの構文くらいしか噛みつくとこないということにする以外に噛み付く方法無いんですね



403 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:41:21 ]
print以外に互換ない所ってどこ?

404 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:44:28 ]
そもそも、printの構文なんて存在しなくなったというのが正しい。
printが関数になって、関数の構文で呼び出せるようになり、
Pythonの構文がいっそうシンプルになった。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<206KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef