トップページ⇒tech
988コメント292KB

Pythonお勉強スレッド Part2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
1000までマターリ1年ほどで行きましょう

前スレ
http://pc.2ch.net/test/read.cgi/tech/965815778/

過去スレ
http://mentai.2ch.net/prog/kako/965/965058106.html

>>2 2GET
>>3 関連書籍
>>4 関連サイト
0153105=111NGNG
>>144
言葉足りなさ過ぎだよアナタ…。
それはともかくレスどうもです。文字リテラルとselfに関するサンプルですね。
この場合、変数やクラス名はそのまんま参照になってるということなんですな。

でもこれみてると思うんだけど、Cやアセンブラなんかで直にメモリさわった
経験のない人には、こういうのってどうイメージしてるんだろ、って思う。

これみてると、確かに代入っていうのは違和感あるよなぁ…でもフツーにint
なんかだったら別に代入でもいいんじゃないか、とも思う。混乱の元かな?

>>149
…なんつーか、ここまでアレだと可哀相に思えて来るよ…。
他人を見下して自信を保とうとするのは好ましい事ではないと思うな。

>>150
どうも、このスレをひっかきまわしている中心人物です。すんません。

>>151
ほっといてくだちい。(笑)

>>152
どうも。まあ、空気読めない人間はどこにもいる訳で…。(汗
0154デフォルトの名無しさんNGNG
>>144
その意図は?

その例が、なんで、クラスとインスタンスの仕組みの解説になるのか、わからん。
単にインスタンスに無い属性は、クラスの属性から探すっていう事だけしか示していないようだが…

0155154NGNG
あ、なんかわかった。
つまり>>144は、Pythonには定義はあっても、宣言は無いって事がいいたいのか?
0156デフォルトの名無しさんNGNG
メソッドの第一引数が必ずインスタンス名になるってことを例示しただけ。>>155
0157155NGNG
なんだ、結局>>144も良くわかってないわけか。
0158デフォルトの名無しさんNGNG
>>153
> どうも。まあ、空気読めない人間はどこにもいる訳で…。(汗

あんたもね。
0159デフォルトの名無しさんNGNG
ん?>>157が何を言いたいのかわからんぞ。
0160デフォルトの名無しさんNGNG
おお、Pythonスレでも知ったかぶり同士の罵しり合いが出るようになったか。
やっと日本でも定着してきた証拠だな。
赤飯でも炊くか?
0161157NGNG
>>159
メソッドの第一引数にはインスタンスを渡さなくちゃいけないっていう*規則*になってること
x.f()はClassOfx.f(x)のシンタックスシュガーだってこと、
最低この2つがわかってれば、>>144の例が、メソッドの第一引数がインスタンスだって
保証されてることの例としては、ナンセンスだってわかるだろ。

>>144
>Pythonのクラスとインスタンスがどんな仕組みの上に成り立っているのか、
>理解できてないんじゃない?

>>144は、init(self)を呼ぶ前にFooのインスタンスは属性xを持っていないっていう事しか
示してないんじゃないか?

つーこった。
ひきつづき、つっこみよろしく。
0162デフォルトの名無しさんNGNG
>>> class Foo:
...  x = 'Hello'
...  def init(this):
...   this.x = 'Good bye'

Foo.xが属性として参照可能になるのって仕様としてどうなの?
x('Hello'を参照している方)はローカル変数になる方が良い気がする。

あと、pythonにおけるクラスとインスタンスの定義って何?
確かpythonは2.2からmetaclassのサポートがあるので、
明確に定義するのが難しいと思うんだが、そう感じるのは俺だけ?
0163デフォルトの名無しさんNGNG
>>162
Pythonは、アクセス制限が出来なから、外から参照できないっていう
意味でのローカル変数ってのは、存在しないんだよね。

>明確に定義するのが難しいと思うんだが
クラスとインスタンスってのはは、相対的な関係だってことだよ。
0164デフォルトの名無しさんNGNG
......相補的の方が近い?
0165デフォルトの名無しさんNGNG
> 相対的な関係だってことだよ。

意味不明じゃ
この知ったか野郎
0166名無しさん@EmacsNGNG
>>>163
>Pythonは、アクセス制限が出来なから
できなかったからのまちがい??

__hoge
_hoge
でできます。
_おおいほど制限あり.
0167163NGNG
>>166
「出来ないから」のつもりでした。 で、最近のバージョンはアクセス制限できるの?
漏れの知ってるのは、__name が _classname__nameに変換されるところまでで、フルネーム書けば外からアクセスできる、ってとこまで。

>>165
クラスもメタクラスから見ればインスタンスだってことだ、だから相対的。
このへん、Smalltalkやってれば、ごくあたりまえの事だよ。
オブジェクト指向FAQ
http://www.zzz.or.jp/~iizuka/EOO/Japanese/oofaq-j/oo-faq-toc.html
の、「メタクラスって何ですか?」のあたりを読んでみてほしい。
0168名無しさん@MeadowNGNG
>>167
フルで書くとアクセスできるね。
0169デフォルトの名無しさんNGNG
>>161
キミの言いたいことがようわからん。
「メソッドの第一引数について解説するために適切なコード」ってのを出してくれよ。
0170161NGNG
そういう*規則*なんだから、
「ほら、最初の引数として渡したオブジェクトが、呼ばれた側の最初の仮引数になってるよ」
って例をあげてもしょうがないだろ。

メソッドの第一引数にはインスタンスを渡さないとエラーになることを示すなら、例えばこー
>>> class Foo:
...   def foo(a):
...     a
...
>>> Foo.foo(0)
Traceback (most recent call last):
 File "<interactive input>", line 1, in ?
TypeError: unbound method foo() must be called with Foo instance as first argument (got int instance instead)
>>>
0171167NGNG
>>168
さんきゅーです。
>>167書いたあとで考えたんだけど、pythonではフルで書かないと
アクセスできないっていうのが、アクセス制限なんだろうね。
0172名無しさん@EmacsNGNG
>>171
スクリプト言語なんであまり強力に型とか制限とかしない方針みたいです。
ちょっとめんどくさいよ。でもできる。。
って所がある。
ここの所が意見いろいろあるだろうけど、きがるに利用できる利点でもあると
おもいます。
0173デフォルトの名無しさんNGNG
>クラスとインスタンスってのはは、相対的な関係だってことだよ。
うん。smalltalkでちょっといじったことがあるので、
その辺はある程度分かるつもり。

で、上のような前提にたった場合、

>>144
>Pythonのクラスとインスタンスがどんな仕組みの上に成り立っているのか、

について教えてほしいんだけど。
0174デフォルトの名無しさんNGNG
windows上でTkinterを使って遊んでいるんですけど、
ドラッグ&ドロップはどうすればいいんでしょうか。
TKにそれっぽいのが見当たらないし、API呼び出すんでしょうか?
0175デフォルトの名無しさんNGNG
えと、こうゆうことなんですが、わかりましたあ?>>105の人。
0176174NGNG
自己レス。
Tkinterは今のところないみたい。
デフォルトでTkdnd.pyが入っているが、これはTK内でのドラッグ&ドロップのみ対応。
wxPythonが対応しているのでそっちに乗り換えてみます。
0177デフォルトの名無しさんNGNG
>>175
age荒らし視ね。
0178171NGNG
>>172
そうそう、Pythonって柔軟で強力で、危険(w
間違いやすいところはサポートはするけど、制限はしない、ってのがいいなと思う。
漏れはどちらかというと、気軽に利用できる利点よりも、危険だけどちゃんと使えば強力なのが好き。

話それるけど
今、ネット対戦型のシミュレーションゲームのサーバをPythonで書いてるんだけど、
こーゆー事が出来たらいいのに、っておもうことがたいてい出来るのがいい。
だから、どうゆうふに実現するのか、じゃなくて、なにをするかに集中できるんだ。

最近、Assertコードをクラスのソースに書かずに、unittestクラスから与える
のをちょっと試してるんだけど、ちょっと面白いことが出来そう。
0179デフォルトの名無しさんNGNG
> こーゆー事が出来たらいいのに、っておもうことがたいてい出来るのがいい。
> だから、どうゆうふに実現するのか、じゃなくて、なにをするかに集中できるんだ。

はげしく同意。
頭の中の概念がすらすらコードに落ちるというか。
0180デフォルトの名無しさんNGNG
>>179
>頭の中の概念がすらすらコードに落ちるというか。
はぁ、´Д`
そんなレベルにたどり着けるのは、かなり先っぽい。
0181デフォルトの名無しさんNGNG
>>180
私もまだまだですが、Programming Python だったかに書いてあった、
executable psudo code っていう表現は、的確だと思う。
0182名無しさん@EmacsNGNG
>>176
wxPythonはUNICODE正式対応してないので日本語あつかい変だよ(T_T)
win版は対処されてるかもだけど。。他の環境だとあれかも。。。

>>178
> こーゆー事が出来たらいいのに、っておもうことがたいてい出来るのがいい。
さがせばたいていの事できてしまうんだよね。。
なくても作成簡単だったりするし。

考える速度で記述できる数少ない言語ではある。。。。

# 無関係だけどワタシskkツカイアルヨ。。。
0183デフォルトの名無しさんNGNG
下げ進行具合がPython使いの陰湿さを表しているな

Ruby>>>>>>>>>>>Python

0184デフォルトの名無しさんNGNG
全角か・・・
0185デフォルトの名無しさんNGNG
Pythonやめました。
Rubyはじめました。
0186デフォルトの名無しさんNGNG
半角か…
0187デフォルトの名無しさんNGNG
互角か?
0188デフォルトの名無しさんNGNG
錯角だ
0189デフォルトの名無しさんNGNG
折角だから…
0190 ◆PYTHONJs NGNG
これってバグですか?

>>> import math
>>> print math.pi.__doc__
float(x) -> floating point number

Convert a string or number to a floating point number, if possible.
0191デフォルトの名無しさんNGNG
>>> import math
>>> print math.pi
3.1415926535897931
>>> print 3.1415926535897931.__doc__
float(x) -> floating point number

Convert a string or number to a floating point number, if possible.
0192デフォルトの名無しさんNGNG
>>> print float.__doc__
float(x) -> floating point number

Convert a string or number to a floating point number, if possible.
0193デフォルトの名無しさんNGNG
>>> help(float)
Help on class float in module __builtin__
class float(object)
| float(x) -> floating point number
|
| Convert a string or number to a floating point number, if possible.
|
(略)
0194デフォルトの名無しさんNGNG
>>193
helpにこんな使い方があるとはしらなかった。
piでやってみた。

>>> import math
>>> help(math.pi)
Help on float:

3.1415926535897931
0195デフォルトの名無しさんNGNG
DCOracle2のインストール方法を知ってるか?
sourceからのmakeはできたが、インストールができん。
日本語Solaris2.6, python2.2.1, Oracle8.1.5EE, WS5.0という環境だ。
REAME, INSTALLを読んでも分らん。
python install.py とするとbinaryをインストールしようとする。
make install もだめ。
install.py をpython2.2 対応にしてみたがだめそうだ。
教えてくれよ。
0196デフォルトの名無しさんNGNG
素直にメーリングリストで聞けよ。>>195 誰も読んでいないぞ、ここ。
0197デフォルトの名無しさんNGNG
GCとかPS2でpythonが動くと何かうれしいかな。
pygameでゲーム作れたらおもしろいかな。
0198デフォルトの名無しさんNGNG
再度アンケートを取ります。

1.Python 何に使ってるの?
2.プラットホームは?
3.使用暦
4.Python の好きなところは?
5.Python の不満点
6.コメント

よろしく。
0199デフォルトの名無しさんNGNG
1.Python 何に使ってるの?
何に使えるの?
2.プラットホームは?
全体的に高いですね。
いつも他の店で買っています。
3.使用暦
新品
4.Python の好きなところは?
PerlやRubyと違って6文字なところでしょうか?
5.Python の不満点
英語、日本語にかかわらず、書籍に恵まれていない。
6.コメント
#ではじめます。
”””でもOKです。
0200デフォルトの名無しさんNGNG
とりあえず、200
0201デフォルトの名無しさんNGNG
1. いろいろ。自作のツールがメイン。
  仕事ではテストプログラム作成に勝手に使うぐらい。
2. linux(debian), windows(2000/XP)
3. python-ml-jpが立ち上がる前ぐらいから。
4. インデント, 代入式が値を持たない。
5. self
6. stacklessキボンヌ
0202201NGNG
>>198
つーか、まず自分でかけよ。
0203名無しさん@カラアゲうまうまNGNG
1.Python 何に使ってるの? 
 もう最近使ってないの
2.プラットホームは? 
 犬
3.使用暦 
 6ヶ月
4.Python の好きなところは? 
 Ruby のような汚さがない (いろんな意味で)
5.Python の不満点 
 self うざい
6.コメント
 C++ マンセー
0204名無しさん@EmacsNGNG
>>197
Python2.1はPS2とGFで動作するようです。
http://mail.python.org/pipermail/python-dev/2002-June/025503.html
pygameは動作不明ですが、対応はいずれするのではないかな?

0205名無しさん@EmacsNGNG
>>204
s/GF/GC/
0206デフォルトの名無しさんNGNG
1. Python 何に使ってるの? : 仕事
2. プラットホームは? : いろいろ、windowsとmacふくむ
3. 使用暦 : 3年ぐらい
4. Python の好きなところは? : インデント
5. Python の不満点 : バイナリでかい、起動遅い
0207デフォルトの名無しさんNGNG
1. Python 何に使ってるの?
仕事
2. プラットホームは?
Linux(serioware)
3. 使用暦
3年弱
4. Python の好きなところは?
ソースの見た目が感覚的に好き。あと拡張子の.pyってのがよい。
5. Python の不満点
2chにコピペしにくい。
6. コメント
モンティパイソンは見ない。
0208デフォルトの名無しさんNGNG
1.Python 何に使ってるの?
  怪しげなアプリ作成。たまに仕事で。

2.プラットホームは?
  Solaris

3.使用暦
  4年目突入

4.Python の好きなところは?
  LISP風味な部分が見え隠れするところ

5.Python の不満点
  Native Code Compiler無い。JITでも(・∀・)イイ!!

6.コメント
  上の答えで誰だかバレバレ(w
0209デフォルトの名無しさんNGNG
>>208
Psycoわ?
http://homepages.ulb.ac.be/~arigo/psyco/
0210デフォルトの名無しさんNGNG
py2exeってのもあった気が・・・
0211デフォルトの名無しさんNGNG
py2exeわ違うだろ>>210
0212デフォルトの名無しさんNGNG
改行文字を削除するにはどうすればよいのですか?
0213デフォルトの名無しさんNGNG
>>212
http://sourceforge.net/tracker/?group_id=5470&atid=305470&aid=403029&func=detail
0214名無しさん@カラアゲうまうまNGNG
Zaurus で Python … もうすぐ … ハァハァ
0215デフォルトの名無しさんNGNG
:s/vim/emacs
0216デフォルトの名無しさんNGNG
文字コードがJISのものをS-JISなどに変換するにはどうすればよいのでしょうか?
JISのままだと文字化けしまくりで^^;
0217デフォルトの名無しさんNGNG
このサイトで
↓    ↓
http://g-forum2.com/kakure.htm

2チャンネルが挑戦を受けてます!〔証拠〕
↓      ↓      ↓  
http://ime.nu/g-forum2.com/bbs/ibo/ibo.cgi?mode=tp&digest=1&page=2&file=20020625013330

我々は田代神に誓い闘います!!

このスレッドで義勇兵を募集しています。
↓      ↓      ↓
http://live.2ch.net/test/read.cgi/festival/1024740193/l50
0218名無しさん@EmacsNGNG
>>216
http://www.gembook.jp/html/moin/moin.cgi/PyKf
とかです。
kanjilibどこいったかな??
0219デフォルトの名無しさんNGNG
>>218
面倒くさいかもしれないけど、JapaneseCodecs使ってもできますね。
0220_NGNG
kconv はどう?
PurePython版がインストが楽
0221デフォルトの名無しさんNGNG
>>218
ありがとうございます。
ちゃんとこちらの思い通りに動いてくれています。
日付を見る限り、2002/03/02に初公開なんですか?
(´-`).。oO(かなり最近だなぁ)
0222デフォルトの名無しさんNGNG
質問です。
os.chdir() を使ってディレクトリを移動するとき、移動先のディレクトリの名前が数字で始まっていると、
エラーメッセージが表示されます。
たとえば、"C:\10hoge"へ移動しようとすると、

>>> os.chdir("C:\10hoge")
Traceback (most recent call last):
  os.chdir("C:\10hoge")
OSError: [Errno 22] Invalid argument: 'C:\x08hoge'

という具合です。
どう対処すればよいのでしょうか?
OSは Windows 2000です。

補足ですが、 C:\ をつけずに、
>>> os.chdir("5")
とかだとOKのようです。
0223デフォルトの名無しさんNGNG
>>222 c:\ を c:\\ にすればいいのでは?
0224デフォルトの名無しさんNGNG
いま気づいたんだけど、内包表現で使う変数って、
この中だけのスコープだと思ってたんだけど外の変数を使ってんのね。
なんか美しくないなあ。

>>> i=0
>>> [ 0 for i in range(10) ]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> i
9
0225デフォルトの名無しさんNGNG
>>224
気持ちはわからないでもない、けど、関数の中でさらにローカルなスコープって、書けたっけ?
0226デフォルトの名無しさんNGNG
>>225
lambda 使えばできるじゃん。内包でもこうなってほしいわけよ。

>>> i=0
>>> map(lambda i:0, range(10))
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> i
0
0227デフォルトの名無しさんNGNG
あまり関係ないけど、みんなlambda使ってる?
Pythonを始めたとき、他人のソースを見ていて、lambdaの箇所が
読み取りにくかった思い出がある。
0228デフォルトの名無しさんNGNG
>>226
lambda式の返すのは無名の関数で、i は仮引数だろ。
>>224とは関係無いじゃん。
まぁ、気持ちはわからないでもないが…
0229デフォルトの名無しさんNGNG
Scheme出身なのでlambdaがないと生きていけませぬ
0230デフォルトの名無しさんNGNG
(´-`).。oO(高林哲さんのようなひとが、Pythonで何か作ってくれたらなぁ)
0231デフォルトの名無しさんNGNG
かれ、Ruby信者じゃん。
0232デフォルトの名無しさんNGNG
>>> def numeric_compare(x, y):
>>>   return x - y
>>>
>>> a = [5, 2, 3, 1, 4]
>>> a.sort(numeric_compare)
>>> print a
[1, 2, 3, 4, 5]
---------------------------
これって、どういう風にソートされているのですか?
0233デフォルトの名無しさんNGNG
>>232
ど、ど、どういう風にソートされているかっていっても、
き、きみはなにがわからないのかなあ。
0234デフォルトの名無しさんNGNG
>>233
a = [5, 2, 3, 1, 4]
のなかから2個ずつ選んで、大小関係を比較しているのはわかるんですけど、
a = [] のなかから、どういう風に選んでいるのかと思って。

今はソートする対象が5つしかありませんけど、これが1万とかだと、
どんなかんじなのかと。
0235デフォルトの名無しさんNGNG
なんだこいつ?>>230
なんか欲しいものあるなら、自分で書けばいいだろ。
0236名無しさん@EmacsNGNG
>>234
http://www.python.jp/Zope/articles/tips/sorthowto
でも参考にしてください。

内容を深く追及するならソースおかけるとたのしいです。
0237名無しさん@EmacsNGNG
>>235
純粋にネームバリューのある人にPython使いになってほしいのではないかな。。
高林氏といえばけっこう有名ですから。

日本人は結構日本人の有名人によわいです。
外人の有名人はしらんからかもしれんが。。。

# RMSも、ESRもPythonつかい。。
# てかそういう系の人はほとんど利用してるねPython
0238デフォルトの名無しさんNGNG
>>237
よくわからん奴らだな。
有名人が使ったからって、テメーのウデが上がるじゃないだろ。
0239名無しさん@EmacsNGNG
>>238
237です

そうなんだよね。。。
自分ができないと結局無意味。。

てもよらば大樹のかげというか。。自分が利用してる物に
何かの後ろだてが欲しいとかって人は意外といるのです。

我関せずって人の方が少ない。


0240デフォルトの名無しさんNGNG
漏れが使ってるよ!
0241デフォルトの名無しさんNGNG
240も使ってるんだから、いいじゃん
でもやっぱり高林のことが忘れられないのか>>230
0242名無しさん@EmacsNGNG
Python で作った rogue like game ありませんか?
Pangband がそうかと思ったのですが、違うようです。

教えて偉い人!
0243デフォルトの名無しさんNGNG
>>242

http://old.lwn.net/2001/0621/a/kernel-adventure.php3
0244名無しさん@EmacsNGNG
>>243
curses module を使って rogue clone を作れないかと思ったのですが、
スレッドを使う必要がありそうで、サンプルコードがあれば良いなぁと
思って書きました。Packman clone でも良いのですが。

google で探してみたんだけど、どうも見当たらない。
0245デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/linux/1007375984/551-
0246デフォルトの名無しさんNGNG
↓↓↓↓ぴちょんくん登場↓↓↓↓
0247ぴちょんくんNGNG
呼んだか?
0248デフォルトの名無しさんNGNG
>>244
http://innerspace.sourceforge.net/
http://twistedmatrix.com/products/reality
0249デフォルトの名無しさんNGNG
>>244
curses使ったのって見かけないなあ。こんなのは?
http://kuoi.asui.uidaho.edu/~kamikaze/Umbra/
0250デフォルトの名無しさんNGNG
こういう個人のソフトってどこで見つけてくるんですか?
ソースフォージとかだと、言語でフィルターをかければ見つかるでしょうけど、、、
0251名無しさん@MeadowNGNG
>>250
いろいろ。
ググッテみつける場合もあるし。

偶然の場合もある。
0252デフォルトの名無しさんNGNG
なんでこんなにさがってんだy?
■ このスレッドは過去ログ倉庫に格納されています