トップページ⇒tech
1001コメント288KB

Pythonのお勉強 Part3000.12

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/08/30(水) 00:02:30
日本Pythonユーザ会
http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
まとめwiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/
問題集
http://www.pythonchallenge.com/

Pythonのお勉強 Part11
http://pc8.2ch.net/test/read.cgi/tech/1155219600/

みんなのPython著者はこんなブログを書いてる人
>> http://coreblog.org/ats/scbscriber-of-coreblogml
> 「インストール方法」みたいな低ーーーいところとか,「落ちている物を拾って使います」的な乞食みたいな思想から抜け出せないのでは危ないと思います。
> 趣味で使うならいいんだけどね。しかしまあ,趣味の延長ではおいしい物食べられないし,車とかプラズマテレビは買えない(笑)。
0153デフォルトの名無しさん2006/08/30(水) 22:39:56
>>152
はいはい、似てるね.良かったね。
0154デフォルトの名無しさん2006/08/30(水) 22:39:59
>>151
お前うざいぞ。
0155デフォルトの名無しさん2006/08/30(水) 22:40:11
この速さなら言える!
3.主な用途:urllibで連番画像DL
0156デフォルトの名無しさん2006/08/30(水) 22:42:14
>>153
>はいはい、似てるね.良かったね。
.と。が混じってる。
お遊びもほどほどにすれ。
0157デフォルトの名無しさん2006/08/30(水) 22:43:49
「私のことを”しばたじゅん”と呼んでください」

キンモ〜☆
0158デフォルトの名無しさん2006/08/30(水) 22:44:43
初心者です。教えてください。

def A:
..
..

def B:
..
..


という関数が2つあったとします。これは同一人物なのでしょうか?
0159デフォルトの名無しさん2006/08/30(水) 22:45:14
「数値計算」が利用目的の人が、今のとこ多いみたいだね。
俺は一度も数値計算に使ったこと無いけど、便利なのか。
0160デフォルトの名無しさん2006/08/30(水) 22:45:38
>>158
いいえ、違います。
斎藤さんと荒木さんです。
0161デフォルトの名無しさん2006/08/30(水) 22:46:02
この速さなら言える!
インディーズ時代からしばじゅんのファソだった!
0162デフォルトの名無しさん2006/08/30(水) 22:46:50
>>161
作者乙
0163デフォルトの名無しさん2006/08/30(水) 22:47:47
キチガイは死ぬまで直らないね。
0164デフォルトの名無しさん2006/08/30(水) 22:47:52
なにこの速さwwwwwwwww
0165デフォルトの名無しさん2006/08/30(水) 22:48:05
逆に、Pythonに似ていない言語って何だろうか
Whitespaceとかか?
0166デフォルトの名無しさん2006/08/30(水) 22:48:10
この速さなら言える!
車とプラズマテレビは月賦だ。
0167デフォルトの名無しさん2006/08/30(水) 22:48:32
>>163
こいつ一人がいなくなれば、かなり落ち着くと俺は思うwwwww
0168デフォルトの名無しさん2006/08/30(水) 22:49:23
>>167
そういう奴に限って、変な所で粘り強いから嫌だ。
0169デフォルトの名無しさん2006/08/30(水) 22:49:31
>>167
俺も正直そう思ってた・・・
0170デフォルトの名無しさん2006/08/30(水) 22:49:38
>>166
貧乏人乙彼!!!
0171デフォルトの名無しさん2006/08/30(水) 22:52:49
「キチガイ」と「私怨」をNGワードに入れればいいよ。
0172デフォルトの名無しさん2006/08/30(水) 22:56:22
>>160
ありがとうございました。
0173デフォルトの名無しさん2006/08/30(水) 22:59:56
>>159
実際に計算する部分はCやFortranで書かれたコードを呼ばないとパフォーマンスが出ないんだけど、
データの入出力とかユーザインタフェース(UI)とかはC/Fortranで書くのはめんどい。
故にC/Fortranとの連携が容易で、データ入出力やUIを書くのに便利なPythonが本領を発揮するわけ。

これは数値計算に限った話ではなくて、いわゆるグルー(糊付け)言語が必要かつ有用なケースのひとつ。
処理効率のいいコンポーネントをぺたぺた張り合わせるのに超便利。
しかもPythonの場合はそういうコンポーネントが既にいっぱいある。もうウハウハ。
01741162006/08/30(水) 23:21:56
おお、やっと止まった。
自分を入れても少しだけど、書いてくれる人もちらほら。>>116, >>137, >>155 (?)
ありがとうございます。
0175デフォルトの名無しさん2006/08/30(水) 23:25:27
おまえら、そんなよくわからん小難しい話やめてキチガイ叩きゴッコしようぜ!!













じゃ、まず俺が鬼な!
0176デフォルトの名無しさん2006/08/30(水) 23:27:52
pythonプログラマーのみなさんへ

あなた達が望もうが望むまいがこれからpythonは日本で盛り上
がっていきます。くだらないことで相手を皮肉ったり警戒する
のはやめてもっとpythonの中の話をしましょう。

何も分かっていない初心者(キチガイを除く)がここに訪れ
るかもしれません。
それに対して、人によってはこないでくれといらいらするか
もしれません。しかし、初心者には優しく時には厳しく接し
ていきましょう。
これからの日本にはみなさんの技術が必要なんですよ。まじです。
0177デフォルトの名無しさん2006/08/30(水) 23:58:59
Python が初めてのプログラミング言語じゃないけれど、初めて自分でまともな
プログラムが組めるようになりそうなのは Python かも。
昔 C を勉強したことがあるけど、賢さが足りなかったみたいw
実用プログラムを組めるようになる前に挫折…。

俺にはやっぱりプログラミングは無理だったか orz とあきらめていたけど、
チュートリアルをやってみたら、少し希望が(;´Д`)ハァハァ
まだ 200行くらいの短いスクリプトしか書いたことがないけれど、とりあえず
動くものが簡単に書けるのが(・∀・)イイ!!
それにやっぱり Python は読みやすいです。

スーパーハカーばかりじゃなくて、自分のようなへぼい Python ファンもいるですよ。
0178デフォルトの名無しさん2006/08/30(水) 23:59:03
俺は主に行列演算でPython使ってる。さすがに計算のコア部分に対してはC呼んるが。
昔はCでやっててコア部分をアセンブラ直書きしてたんだよね。それと同じこと。
要するにUIの問題。敷居が低くなるのが利点。わかり易さは武器。
0179デフォルトの名無しさん2006/08/31(木) 00:20:51
>>178
>計算のコア部分に対してはC呼んるが
それは行列計算をPythonでやっていると言うのか?w
データ入力をやってるんじゃないのか?

つか、コア部分はCを呼び出してとかって話をよく聞くけど、まじ?
俺は断然boost::python派なんだが。
0180デフォルトの名無しさん2006/08/31(木) 00:25:36
ぱ…Pyrex…
0181デフォルトの名無しさん2006/08/31(木) 00:32:55
>>116
1.仕事: SE (ITスペシャリスト)
2.Python歴:1年
3.主な用途: テキスト加工、分析、抽出 (シェルスクリプトで出来ないものについて), CGI
4.その他: C言語的な小文字中心の識別子とスライスの扱い易さに惚れた
0182デフォルトの名無しさん2006/08/31(木) 00:34:01
便利なライブラリのPythonバインディングがあるなら、
わざわざ boost で車輪の再発明をする気にはなれんと思うよ。
0183デフォルトの名無しさん2006/08/31(木) 00:39:56
&と|と^について20分悩んだけど、理解できた。0/1に直さないとならんのね…。
それで、上の演算子の式に使える版が and,or,xorと。
0184デフォルトの名無しさん2006/08/31(木) 00:43:04
>>183
論理演算子と算術演算子の違いだよ。
0185デフォルトの名無しさん2006/08/31(木) 00:50:24
>>179
> それは行列計算をPythonでやっていると言うのか?w

もちろん。入力データの生成はそれ自体が科学技術計算だからね。
入力データとなる行列を作る処理も行列計算だったりするわけだ。

> つか、コア部分はCを呼び出してとかって話をよく聞くけど、まじ?

もちろんマジ。
例えば NumPy や SciPy には BLAS/LAPACK という有名な行列計算ライブラリの
ラッパーが含まれている。BLAS と LAPACK には参照実装の他に CPU ベンダ製の
最適化バージョンが多数あって非常に効率良く行列計算が実現できる。そういう
標準的なライブラリを Python スクリプトから難なく利用できる。
パラメタ調整→コンパイル→実行の繰り返しが必要な科学技術計算の場合、
コンパイル不要の Python だととっても楽チン。これに慣れるともう
C や Fortran でライブラリの呼び出し部分を書く気にはなれない。
とりあえずコア部分を Python に組み込んで後々楽することを考えるわけだ。
0186デフォルトの名無しさん2006/08/31(木) 01:08:00
通はATLASを使うんだよ。
0187デフォルトの名無しさん2006/08/31(木) 01:12:51
すみませんです、IronPythonについて質問させて下さい。

IronPythonがリリースされることによってVBやC#のようにPythonが
MSから正式なサポートが入るのでしょうか?

現在、社内でPythonの普及をさせようと思っていて「将来的にMSのサポートがある」
というと普及にむけて上司をの説得させる大きな材料の一つとなるので、、、

ご存じの方、ご教授お願い致します。
0188デフォルトの名無しさん2006/08/31(木) 01:25:08
手段のためなら目的を選ばないぜ
0189デフォルトの名無しさん2006/08/31(木) 01:42:26
>>187
将来のことなんて誰にもわからないよw
少なくともMSが公式にそういうコミットをしたことはないと思う
0190デフォルトの名無しさん2006/08/31(木) 01:44:41
>>182,185
なるほどね、既製品を使うって意味ね。
Cを呼ぶとか難しそうに(?)聞こえたもんで、
カスタマイズした自家製モジュールの話かと誤解してしまった。
0191デフォルトの名無しさん2006/08/31(木) 01:45:53
>>190
C++ならboost::python使うと簡単に呼べるよ
0192デフォルトの名無しさん2006/08/31(木) 01:47:00
>>184
記号の方も単語の方も、数値にも式相手にも使えるのね。対話モードで使ってみた。
数値対象のときは、bit変換後に評価するかそのまま評価するかで結果が違うけど、
式が対象のときは同様に働くみたいだし。使うシーンで論理〜と算術〜って呼び分けてるんだ。
誤解解いてくれてありがとう。いずれ恥かくか行き詰まるとこだった。
0193デフォルトの名無しさん2006/08/31(木) 01:52:11
>>191
>>190 = >>179かと。
0194デフォルトの名無しさん2006/08/31(木) 03:06:04
>>190
あーいや、既存のモジュールだけじゃなく
自前のC/Fortranコードを呼ぶための拡張モジュールを自炊することもあるよ。
既存のモジュールのソースコードを見よう見まねでコピペすれば何ら難しくはない。
テキトーに setup.py を書いとくとインストーラまで作ってくれるし便利。
0195デフォルトの名無しさん2006/08/31(木) 03:10:02
>>192
まだ誤解しているような気がするぞ。
算術演算子と論理演算子には原則として互換性はないよ。
前者はビット演算、後者は真偽値演算でまったく別物。
0196デフォルトの名無しさん2006/08/31(木) 06:10:42
>>192 1 & 2 評価してみるよろし
0197デフォルトの名無しさん2006/08/31(木) 09:03:24
numpyが使ってるのはATLASだろ。
0198デフォルトの名無しさん2006/08/31(木) 09:04:06
>>196
まずビット演算から説明しないとならない気
0199デフォルトの名無しさん2006/08/31(木) 10:54:25
アホな質問で申し訳ないんだけど
Pythonってプログラムの実行しながら
修正したりできる?

対話モードでプログラムを動かしながら挙動見つつ修正できるのかな?
0200デフォルトの名無しさん2006/08/31(木) 10:59:39
>>199
まあ、できる。
0201デフォルトの名無しさん2006/08/31(木) 11:03:00
モジュールのコードならリロードできるよ。

>>> import yourmodule
>>> yourmodule.yourfunc() # 何かがおかしい。修正する。
>>> import sys
>>> del sys.modules['yourmodule'] # sys.modulesからyourmoduleを削除。
>>> import yourmodule   # importしなおす。
>>> yourmodule.yourfunc() # 直ってる。

単にimportし直すだけではダメ。
0202デフォルトの名無しさん2006/08/31(木) 11:33:35
2回目からは reload(yourmodule) を使うという手もある。
それも面倒なら、簡易統合開発環境Idleから起動するという手もある。
0203デフォルトの名無しさん2006/08/31(木) 11:41:12
>>199氏はデバッガの話をしているんじゃないだろうか?
0204デフォルトの名無しさん2006/08/31(木) 12:24:38
>>203
おれは>>200だが、実は聞き方が微妙で困ってた。
どちらにせよ、対話モードで開発もできるし、pdb(デバッガ)もあるし・・・。


まあ、できる。
0205デフォルトの名無しさん2006/08/31(木) 12:40:21
恥ずかしながら、デバッガって使ったこと無いなあ。
print文を埋め込んでは、対話環境で関数ごとに実行するという原始的デバッグ。
本当はunittestを使うテストファーストにあこがれてるんだけど。
皆さんはどうしてますか?
0206デフォルトの名無しさん2006/08/31(木) 12:42:27
>>205
同じく!
0207デフォルトの名無しさん2006/08/31(木) 12:45:45
>>205
気持ちを切り替えればそれほど難しくない。
unittestやテスト手法に慣れるための学習時間も必要かも。

テストファーストをはじめると,自然とテストしやすい「切り分け」をする癖がついて
設計の腕も上がると思うよ。
Pythonのコードを難なく読める中級者以上にお勧め。
0208デフォルトの名無しさん2006/08/31(木) 13:01:12
おれはコーディングも実行(テスト)もpdbもすべてemacs上でやってる。
全ての作業がシームレスだよ。

>>205
pythonはC/C++なんかよりも比較的デバッガの必要性は低いけど、
それでもやっぱりデバッガ使った方が作業が早い・・・場合が多い。
0209デフォルトの名無しさん2006/08/31(木) 13:10:46
>>205
EclipseのPyDEVのデバッガ使ってるよ。
それまではEmacs + pdbを長年使ってきたけど、最近Eclipseに完全に乗り換えた。
0210デフォルトの名無しさん2006/08/31(木) 13:20:49
>>209
デバッガはたしかにいい感じの
あのコード補完機能ってどうよ
0211デフォルトの名無しさん2006/08/31(木) 13:39:09
Python使いならEric3使ってるよな?月蝕なんて捨ててしまえ。
0212デフォルトの名無しさん2006/08/31(木) 13:49:28
http://www.die-offenbachs.de/detlev/eric3-screenshots.html

これ?
02132052006/08/31(木) 15:00:49
おお、いろんなやり方があるんですねえ。

>>207
ありがとうございます。JUnitなら使ったことがあるので、Pythonでも少しずつ
導入したいと思います。動的言語のほうが単体テストの重要性は高いと思うので。

>>208
私もEmacsなんですけど、まだ全然使いこなしてないです。shellモードで
Python対話環境を立ち上げてるだけです。Emacs上でのPython開発の仕方に
ついて、どこかに良いマニュアルはないでしょうか?

>>209
Eclipseですか!あれは何でも取り込んでいくなあ。今はテキストコンソールでの
開発だから、残念ながら手を出せないんですが。
0214デフォルトの名無しさん2006/08/31(木) 15:23:20
Eric3はマスコットの可愛らしさでダントツだよね!
0215デフォルトの名無しさん2006/08/31(木) 15:27:17
Eric3はWindowsに冷たい。敷居が高すぎる。
02162082006/08/31(木) 16:15:56
>>213
python-modeつっこんで.emacsから呼ぶだけ。
こういう作業はEmacs一般の話だからあっちこっちに書かれている。
適当にコード書いてC-c C-cすれば新しいバッファに結果が表示される。
pdbはM-x pdbと打って開始。
操作方法は下。
http://www.python.jp/Zope/articles/tips/pdb-howto-2?pp=1

emacsが、「pdb?知らねーよ。」と怒ってきたら、
http://page.sourceforge.net/tricks.htm
の「Running pdb under emacs」という項目などを参考に。
(ようするにパス通すだけ?)
02172052006/08/31(木) 16:38:53
>>216
ありがとうございます。これだけで相当幸せになれそうです。
0218デフォルトの名無しさん2006/08/31(木) 17:02:52
>>195>>196>>198
>>> x,y = 1,2
>>> x==1 & y==2
False
>>> x==1 and y==2
True
数値相手どころか、式相手でも互換性がないのね。危なかった…。
直感的に分かるのは論理演算子の方でした。
リファレンスマニュアル5.8見ても、なにやってもFalse返したがる算術演算子を
式相手に使う場面は想像できませんでした。
0219デフォルトの名無しさん2006/08/31(木) 17:09:24
>>218
優先順位のちがいだな
&, ^, | は == よりも優先されるから、
x==1 & y==2 は、x== (1 & y) ==2 となる
0220デフォルトの名無しさん2006/08/31(木) 17:11:42
>>218
互換性どころの問題じゃなく両者は別物です

ビット演算について調べてください
0221デフォルトの名無しさん2006/08/31(木) 17:23:12
ビット演算は、まず、数字を全部、二進数(0と1の羅列)に変換して、それぞれ
の桁についてANDやORを取っているのだ。

それにしても、今の若い人は普通ビット演算なんて知らないんだろうなあ。しみじみ。
02222212006/08/31(木) 17:30:13
変換という言い方はまずいな。要するに、数字の内部表現そのままだ。
0223デフォルトの名無しさん2006/08/31(木) 17:32:05
なんかPython楽しそうだな。
ずっとperlとawkとsedだったけど、ここらで一念発起してみるか
0224デフォルトの名無しさん2006/08/31(木) 17:50:50
>>218
「数値」と「式」という言葉の使い分けが気になっていたのだが、
真理値(True, False)の意味で「式」と言ってるんだね。
(ふつう式といったら数値も含む。)

&, | は整数値に対してのみ使う。float や complex は NG。
一方、and, or は多くの場合、真理値に対して使う。
比較演算子の値(比較の結果)は真理値なので and, or を使えばよい。
また、Python では伝統的に 0, None, 空タプル、空リスト、空辞書などは False 扱い、
それ以外のオブジェクトは True 扱いされる。
したがって、and, or は何でもかんでも受け付ける。
0225デフォルトの名無しさん2006/08/31(木) 17:57:04
python-mode を使っている奴に訊きたいのだが
python 付属の python-mode.el (SVN-34960)と
emacs 付属の python.el (CVS-1.45)の
どっちが最新なの?
どこがどうちがうの?
単純にどちらを使うべきなの?
0226デフォルトの名無しさん2006/08/31(木) 18:05:35
>>225
バージョンなんて気にしたことナカタ
ぶっちゃけどれでも同じ
02272082006/08/31(木) 18:27:07
正しいかどうかは知らんが、とにかくこいつ
http://gunnarwrobel.de/wiki/Python.html
の言うことには、python-mode.elは今んとこスタンダードで
python.elは新しく開発されたものとか。
ファイル単位でどっちが最新かって話なら、日付を。

実はおれもあまり気にしたことがなかった。
おれのLinuxでは、pythonファイル開くと勝手にpythonモードになるからな。
これはpython.elだろな。
んで、最近Cygwin上のemacsにはpython-mode.el入れた。
0228デフォルトの名無しさん2006/08/31(木) 18:43:45
どっちが(機能的に)最新なの?
0229デフォルトの名無しさん2006/08/31(木) 18:45:22
218はまだビット演算が何なのか理解できていないに1票。
0230デフォルトの名無しさん2006/08/31(木) 18:49:30
>>221
今も昔もビット演算なんて知らないのがフツーだと思われ。
0231デフォルトの名無しさん2006/08/31(木) 18:54:33
プログラム書く人間は知っていてしかるべきだろ

そして知ろうとしないならそれで構わないが
& と | のことは 218 は今後100年は触れないようにして欲しい
0232デフォルトの名無しさん2006/08/31(木) 18:58:11
夕方に近づくと荒れそうになる件。
0233デフォルトの名無しさん2006/08/31(木) 19:06:17
>>210
俺はJavaも使うのでPythonの環境移行はJavaついでという感だね。
で、PyDEVのデバッガ使える。いい。
コード補完はオマケと思って過度な期待をしなければ結構便利。
0234デフォルトの名無しさん2006/08/31(木) 19:11:18
>>219
a == b == c って書けたんだ…
これまで(a == b) and (a == c)って書いてたよorz

というわけで>>218の例をやってみる。

>>> x,y = 2,3
>>> x == 2 & y == 2
True

なるほどね。
0235デフォルトの名無しさん2006/08/31(木) 19:14:40
>>230
アセンブリ言語も地質学的昔ということなんだろうか。
#組み込み系とか制御系ではまだまだ現役なんだけどな。
0236デフォルトの名無しさん2006/08/31(木) 19:16:12
>>234
(a == b) and (a == c) と書くほうが俺は好きだ。
0237デフォルトの名無しさん2006/08/31(木) 19:16:44
Cでうっかりa==b==cと書いてハマる ●1点
0238デフォルトの名無しさん2006/08/31(木) 19:19:58
>>234 1 < 2 < 3 なんてのもあるよ。
0239デフォルトの名無しさん2006/08/31(木) 19:41:21
これを書くと誰だかばれそうだが

>>> 1+3j.real
1.0
>>> 1+3j.imag
4.0
>>>

がしばらく理解できなくて恥をかいた.
0240デフォルトの名無しさん2006/08/31(木) 19:49:08
>>239
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・なるほどw
0241デフォルトの名無しさん2006/08/31(木) 19:56:56
>>239 理解するのに10分はかかった俺は負け組。
0242デフォルトの名無しさん2006/08/31(木) 19:57:30
×負け組 → ○人生の敗北者
0243デフォルトの名無しさん2006/08/31(木) 19:58:32
俺もしばらく理解できなかった
0244デフォルトの名無しさん2006/08/31(木) 20:02:07
俺は見る前から理解できた。
0245デフォルトの名無しさん2006/08/31(木) 20:02:30
>>239
かっこ わるい
02461992006/08/31(木) 20:07:36
変な質問してすみませんでした
3Dプログラミングやっててどうにも動作の仕組みがわからないんで
動作中にそれぞれ値がどうなってるか見てみたかったんです

ここで聞くのはスレ違いにも程があるっていうのはわかっていたんですが
使ってる3Dライブラリが海外産なのでドキュメントも全て英語という始末
解読を試みたものの時間がかかってかかってorz
変な質問でしたが丁寧に答えてくださり本当に助かりました
とりあえずデバックで試してみます
0247デフォルトの名無しさん2006/08/31(木) 20:18:36
>>246
基本はレイトレーシング。光学計算をやればよろしい。

# みんPy立ち読みした。明らかにはじPyの二番煎じ。コーデックの説明なんてPython依存じゃなかったし。
0248デフォルトの名無しさん2006/08/31(木) 20:40:31
>>246
なんて3Dライブラリ?
0249予想2006/08/31(木) 20:45:26
>>248
PyGameに一票
02501992006/08/31(木) 21:13:37
>>248
Panda3Dって奴です
http://www.panda3d.org/
フリーのライブラリとしては凄いのではと思います
チュートリアル、リファレンスがかなり豊富で
ディズニーとカーネギー大学の共同開発ってのもミソかもしれません
元はディズニーのMMOゲームのエンジンとして開発されたようです
http://toontown.disney.co.jp/

ただ問題はPython弄ってるみたいなんですよね
なのでこのスレ的にはちょっと敬遠されるかもしれません
確かZopeというのも弄ってたので嫌われてるという話でしたが・・・。
0251デフォルトの名無しさん2006/08/31(木) 21:29:02
>>250
Pythonベースのシステムが全部嫌われるわけじゃない。
Zopeについては色々といいたいことがあるが、
Zopeが日本に紹介された初期に Python == Zope用の拡張言語 というような風潮があったことがあって、
それがPythonを「プログラミング言語」として利用していた層には受けが悪かったという話。
今ではそんな話も過去のこと。
なので、Panda3DぜんぜんOKと思われ。
俺はtrueSpaceというPythonでスクリプトを書ける3Dツールを使っていたこともあるので、
グラフィックス系には興味ある。
0252デフォルトの名無しさん2006/08/31(木) 21:31:33
pygameスレに日記書いてたのはおまえかー
■ このスレッドは過去ログ倉庫に格納されています