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

Pythonのお勉強 Part16

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2006/12/14(木) 07:57:54
http://www.python.org/
http://www.python.jp/Zope/

http://www.python.jp/doc/release/
http://diveintopython.org/toc/
http://www.python.org/dev/peps/

http://wiki.python.org/moin/
http://python.rdy.jp/

http://www.amazon.co.jp/s/&url=search-alias%3Dstripbooks&field-keywords=Python
http://www.amazon.co.jp/s/&url=search-alias%3Denglish-books&field-keywords=Python

Pythonのお勉強 Part15
http://pc8.2ch.net/test/read.cgi/tech/1163339504/
0809デフォルトの名無しさん2007/02/05(月) 17:50:27
>>807
そんな基本的なことを知らない馬鹿はまずいないw
0810デフォルトの名無しさん2007/02/05(月) 17:51:44
オブジェクト指向の知ったかが多いことは過去スレが示している
0811デフォルトの名無しさん2007/02/05(月) 17:52:16
うーん、Cの方かと思うけど、
Pythonの場合は、
・ポインタ(リファレンス)
・構造体
はいらないよ。
Pythonは変数は基本的に参照渡しがデフォだし、
構造体は、メソッドのないクラスで代用だと思う。

オブジェクト指向とマルチスレッドは必須じゃないけど、
使えるようにはなりたいねー。
ただ、マルチスレッドの優先度は低いでしょ。

デザパタ本は、Pythonで書かれた本がほしいよね。
もっとも、慣れればjavaをPythonに直すのはたいした事も
ないけど。

みんなして、デザパタ本のJavaをPythonで組みなおしてるのは
無駄の極みだと思うので、誰か本ででもwebででも公開して
ほしい…。
0812デフォルトの名無しさん2007/02/05(月) 17:58:10
>>808
大丈夫かよ。
メソッドで直接インスタンスの生成とかしてないだろうね?
0813デフォルトの名無しさん2007/02/05(月) 17:58:13
「みんなして」ってことは>>811氏は当然してるってことだよね。
それを本やwebで公開したら良いと思ってるんだよね。
だったら自分でするべきことは決まってるよね?
0814デフォルトの名無しさん2007/02/05(月) 18:09:29
         _,,..,,,,_ . _
        ./ ,' 3 /   ヽ--、
        l   /        ヽ、
       /`'ー/_____/
        ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0815デフォルトの名無しさん2007/02/05(月) 18:16:12
>>811
http://www.amazon.com/dp/0130409561

表紙にワロタ
http://www.amazon.com/dp/1932394621
08168112007/02/05(月) 18:20:35
じゃ、Template Method パターンを。

>>> import sys
>>> import exceptions
>>>
>>> class _Template(object): # Abstract なつもり
... def write(self): # public なつもり
... self._writeHeader()
... self.__writeBody()
... self._writeFooter()
... def _writeHeader(self): # protected なつもり
... raise exceptions.NotImplementedError, '%s' %`self.__class__`
... def _writeFooter(self): # protected なつもり
... raise exceptions.NotImplementedError, '%s' %`self.__class__`
... def __writeBody(self): # private なつもり
... sys.stdout.write(self._message)
...
>>> class Implement1(_Template):
... def __init__(self, message):
... self._message = message
... def _writeHeader(self):
... sys.stdout.write('/ ')
... def _writeFooter(self):
... sys.stdout.write(' /\n')
0817デフォルトの名無しさん2007/02/05(月) 18:20:54
なんだよそれw
08188112007/02/05(月) 18:21:31
>>> class Implement2(_Template):
... def __init__(self, message):
... self._message = message
... def _writeHeader(self):
... sys.stdout.write('+-' + '-' * len(self._message) + '-+\n| ')
... def _writeFooter(self):
... sys.stdout.write(' |\n+-' + '-' * len(self._message) + '-+\n')
...
>>> x = Implement1('test1')
>>> x.write()
/ test1 /
>>> x = Implement2('test2')
>>> x.write()
+-------+
| test2 |
+-------+

ホントは、どっかで拾ってきたものだけどなw
0819デフォルトの名無しさん2007/02/05(月) 18:26:24
やれやれ、
インデント崩さずに持ってくるのは、難しい…org
0820デフォルトの名無しさん2007/02/05(月) 18:29:30
ファイルロックについてお尋ねします。
Windows, MacOS, UNIXの各プラットフォーム間で可搬性を
なるべく失わずにファイルロックを行うにはどうしたら良いですか?
file.flock(FILE::LOCK_SH) のようなことがしたいのです。
os.open()でいけるかとも思ったのですが、ファイルオブジェクトを
返すのではなくディスクリプタを返すらしく、使うのに躊躇しています。
0821デフォルトの名無しさん2007/02/05(月) 18:38:57
ファイルディスクリプタの扱いがわからんレベルなら、
マルチプラットフォームは諦めたほうがいい。
0822デフォルトの名無しさん2007/02/05(月) 19:08:33
>>816>>818
そういうのって、先に、Implement1と2があって、共通部分を自然に抽出
したら、_Templateが出てきました。っていうのが本来の流れであって、
はじめから_Templateありきで書き始めるのは、むしろ生産性が落ちると思う。
そして、本当に、_writeFooter、_writeHeaderが必要なのかどうか(この場合必要ない。
を考えなくなるから、いつまでたってもコードがきれいにならない
0823デフォルトの名無しさん2007/02/05(月) 19:45:51
テンプレート・パターンの重要な点は、
細部なんかどう書くのか分らないけど、
これこれこういう筋道で組み立ててよ、と指し示すためのものだ
ということでしょ。

テンプレートは作ったから、あとは君、頼むね、っていうか。
エラーが出るようになっているのは、そうなっているかを
チャックするためだし。

一般的にいって、オブジェクト指向ではクラスを作る人と
使う人が別にいて、クラスを作る人は苦労をしょいこみ、
クラスを作る人は楽をするようにする、というものでしょ。

気がついたら、ほとんどフレームワークのようになっていた
というのが理想なんじゃないかな。もちろん、そんなにうまく
いくもんじゃないけど。

クラスを作る人が苦労を背負い込めば、使う人は楽をできる。
それが基本の考えと思うよ。
あるいは、一度苦労してクラスを作っておけば、
あとで何度でも楽ができるというか。

クラスを作るのは一度だけ、でも、インスタンスは何でも
使うもんだし。
0824デフォルトの名無しさん2007/02/05(月) 19:49:16
>>811
ポインタが分からないヤツにどうやって参照渡しを説明しろと?
構造体が分からないヤツにどうやってオブジェクト指向のデータ構造を説明しろと?
0825デフォルトの名無しさん2007/02/05(月) 19:58:04
>>824
いや、だって、cならそうだろうけど、
Pythonでは基本的に参照渡ししかないし、
構造体はないから、メソッドを省いたクラスを使うしかないし。

もちろん c ならお説のとおりと思いますが。
0826デフォルトの名無しさん2007/02/05(月) 19:58:52
オレはVBで参照渡し覚えたけどな
だからCをやったときすぐにポインタが理解できた
0827デフォルトの名無しさん2007/02/05(月) 20:09:24
>>821
お手軽な手段を求めてしまった自分が恥ずかしいです。
とりあえずこれを試してみることにします。ありがとうございました。
ttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65203
# os.open()はNTではO_EXLOCKが定義されていないのでそもそもアウト

>>824
参照っていう概念さえ説明してしまえば、ポインタ抜きでデータ構造について
説明できるのがPythonみたいな言語のメリットのような気がします。
ttp://www.ibiblio.org/obp/thinkCSpy/
構造体の知識はstructモジュールとか使うときに必須?
0828デフォルトの名無しさん2007/02/05(月) 20:13:10
775です。流れを無視して遅レス。

>>806
えーと、あまり網羅的に見ているわけじゃないけど、
すくなくとも俺の知る限り、科学技術計算、特に高性能計算(HPC)の分野では
オブジェクト指向のオの字もないです。もちろんデザパタもね。
MPI とか OpenMP といった並列化技術が主流で、
みんな C/Fortran でゴリゴリと構造化プログラミング(笑)してます。
つまり、「デザパタ」と呼べるようなオブジェクト指向的共通認識が全然ない。
もちろん MPI や OpenMP には各々「定石」の書き方、たとえば all-to-all とか
reduction みたいな各種の常套手段があって、知らないと困るわけだけど、
そういうのはデザパタとは呼ばない気がする。
でもって、今ある道具や定石は抽象度が低くて生産性があまりよろしくない。
それで Fortress とか HPR とか>>778の「分散Python」みたいな話が出てくるわけです。
0829デフォルトの名無しさん2007/02/05(月) 21:49:59
所詮何が必須かなんて何をやりたいかによって変わってくるんだろうけど、
参照渡しと値渡しの違いが判らないと、pythonでも困る場合が多いような。
値渡し相当にしたくて、リスト[:]でコピーして渡す場合も多いよね。
0830デフォルトの名無しさん2007/02/05(月) 21:52:28
それに、デザパタってのは右も左もわからないような新兵どもを
それなりに使える駒の集団にするための道具であって、
一人で動くプログラマにはあまり関係ない。
「珠玉の〜」であろうとKnuth本であろうと先人の生きたコード
読んで学ぶのだろうと、好きなやりかたで学べばだいたい同じような
所に落着くしね。
0831デフォルトの名無しさん2007/02/05(月) 22:37:09
>>830
そうそう、デザパタなんて色んなスキルのヤツが沢山いる開発チームで使う
コミュニケーションの道具に過ぎない
プログラミングの神髄はもっと深いところにあるし
誰でも神髄に触れられるわけではない
0832デフォルトの名無しさん2007/02/05(月) 22:40:30
>ポインタ抜きでデータ構造について説明できる

参照渡しにしろポインタにしろ同じものを別の単語で説明しているだけだし
「ポインタ抜き」に拘る理由も[ポインタを抜いてもいい」理由もないと思う

むしろ ぽいんた というのがハッキリ見えているのは
概念の説明には便利だと思う。
0833デフォルトの名無しさん2007/02/06(火) 00:17:56
>>828
オブジェクト指向の前に構造化設計/分析が先じゃないかな。
0834デフォルトの名無しさん2007/02/06(火) 01:02:53
>>833
んー、たぶん、C/Fortranでゴリゴリってのが現場の要求に一番見合ってる分野なんだと思う。
読みやすくーとか、保守性がーとか言ってたらコードがどんどん遅くなって、
大枚はたいて買った計算時間が無駄になる世界だからね。とても保守的で旧態依然としてる。
そういう世界だと Python みたいな「速度はそこそこだけど書きやすい」的な言語は
はっきり言って異端で、使っている人がいると目立つのです。

並列計算機が安くなって計算時間を金で買わなくてもよくなった人が増えた一方で、
解くべき問題が複雑になって生産性が速度に優先するようになってきたってことなんだろうなあ。
いい流れだ。
0835デフォルトの名無しさん2007/02/06(火) 01:07:37
横からだけど、構造化設計/分析って、
UMLなどのオブジェクト指向・分析設計のこと?
それとも、構造化プログラミングの設計のこと?

僕としては、ぱっぱと関数にわけでくみ上げていける
構造化プログラミングの良さをもっと見直してもいいんじゃないかな、
という気もしてる。
UMLでいつまでも足踏みしてるのも馬鹿らしいし。
いったん構造化でコードを組んでから、必要な部分だけクラス化して
いくというような手法がいいんじゃないかと思うんだけど、
邪道かなぁ。
リファクタリングが手法として認められるなら、
これだって、よほどマトモな考えと思うんだが。

あー、もとの話はマルチスレッドによる高速化の話だったんだよね。
デザパタのマルチスレッド版の話を持ち出したのは、スレッドの同期を
いちいち手作業で考えていたのではやってられないと思ったので。
形式をあわせるだけで、スレッドの同期やロックが安心できるなら、
その方がいいかなと。
Javaではマルチスレッドのデザパタがあるようだし。(結城氏の本ね)

ところでその前に、Python自体がスレッドセーフなのかどうかが
分らないんだけどw
0836デフォルトの名無しさん2007/02/06(火) 01:17:39
「科学技術計算」というのがどこからどこまでを指すのかわからないけど、大学なんかで実験データを
加工したりといった用途ならPythonで十分な希ガス。漏れはC++で組んだけど、結構大変だった。

そういえば「電脳Ruby」とかいう数値計算にRubyを使う話があるけど、この分野なんかでもPythonで
十分といえるのではないだろうか。
0837デフォルトの名無しさん2007/02/06(火) 01:20:14
無政府状態
↓
手続きの抽象化
↓
[構造化プログラミング]
↓
データ構造の抽象化
↓
[オブジェクト指向プログラミング]
↓
データ構造の抽象化を前提とした手続きの抽象化
↓
[関数型プログラミング] ← 今このへん
↓
?????
0838デフォルトの名無しさん2007/02/06(火) 01:29:04
>835
オブジェクト指向を含めず構造化のみで組むってこと?
俺は逆に構造化のみのプログラミングの方が
データと手続きを分離しなくちゃいけなくて面倒だと思うのだが…
0839デフォルトの名無しさん2007/02/06(火) 01:33:43
もうちょっとふさわしいスレでやってくれよ。邪魔。
0840デフォルトの名無しさん2007/02/06(火) 01:35:18
>>838
スキルも経験も作りたいものも様々だから一概には言えない。
明らかに不毛な議論。
0841デフォルトの名無しさん2007/02/06(火) 02:34:51
>>821
おれも調べたけど、Pythonではwindowsとunixとで共通に使えるfile lockは提供されてないみたい。
これぐらいあってもおかしくないのにね。Rubyにはあるからできないはずないんだけど。file descriptor関係なく。
おれは
fcntl = msvcrt = None
try:
 import fcntl
except ImportError, ex:
 try:
  import msvcrt
 except ImportError, ex:
  pass
として、あとはfcntl is not Noneならfcntl.flock()を、msvcrt is not Noneならmsvcrt.locking()を呼び出す関数を定義している。
>>827の方法だとうまくいかないと思うけど、うまくいったら教えて。
0842デフォルトの名無しさん2007/02/06(火) 05:57:08
>>838
>オブジェクト指向を含めず構造化のみで組むってこと?

じゃなくて、Pythonではオブジェクト指向が強制されてないのを逆手にとって、
構造化プログラミングを基本としつつ、必要なところだけオブジェクト指向に
するという考えもあっていいんじゃないかなといってみただけだよ。

構造化は、とにかく簡単に手がつけられるからね。
オブジェクト指向だと最初の設計ですべて前倒しにくるから、
やんなるときもあるなあと。
0843デフォルトの名無しさん2007/02/06(火) 14:35:17
Pythonの勉強をしています
以下のようにしたのですがうまくいきません

>>> keys = ['a', 'b']
>>> vals = []
>>> index = {}
>>> for i in keys:
... index[i] = vals
...
>>> index
{'a': [], 'b': []}
>>> index['a'].append('hoge')
>>> index
{'a': ['hoge'], 'b': ['hoge']}

キー a の要素である空リストに hoge 文字列を追加したいのですが
b にも追加されてしまいます。

>>> index
{'a': ['hoge'], 'b': []}
こうなってほしいのですが、ご助言お願いします。
0844デフォルトの名無しさん2007/02/06(火) 14:54:22
for i in keys:
 index[i] = []

とか。
あと、keys とか index は辞書やリストのメソッド名になってるから
使わない方がいい。
0845デフォルトの名無しさん2007/02/06(火) 15:07:08
844さん
ありがとうございます。
index[i] = [] でできました。
自分でも調べてみまして、Python ライブラリリファレンス の
シーケンス型ってとこに「注意しなさい」とかいてありました。
index = range(0)
とやっても大丈夫でした。

なぜ駄目なのかはよくわかっていません。
ists = [[]] * 3 と lists = [[] for i in range(3)]の違いです。
同じ場所をみてしまう?
もう少し自分で調べてみます。

あと、keysとかindexとか普通につかってました。
どうもありがとうございました。
0846デフォルトの名無しさん2007/02/06(火) 17:15:41
参照渡しがどうのこうのってはなしじゃないの?
0847デフォルトの名無しさん2007/02/06(火) 17:43:59
プログラミングの基本はなんでも同じなんだよ。
だってハードウエアのアーキテクチャはもう何十年も変わってないんだから。
ポインタとかリファレンスの概念が分からない人は壁にぶち当たって挫折する。
0848デフォルトの名無しさん2007/02/06(火) 17:48:56
>845
>同じ場所をみてしまう?

そういうことです。詳しくはほかの人がいっている
参照渡しとかポインタと化のキーワードについても調べると
ためになると思うよ
0849デフォルトの名無しさん2007/02/06(火) 17:58:52
あまりにもドンピシャな質問だったので、ネタかと思ったぐらいだ。
0850デフォルトの名無しさん2007/02/06(火) 18:04:42
>>843を生かすのであれば

index[i] = vals[:]

かね
0851デフォルトの名無しさん2007/02/06(火) 19:27:20
>>> index = {}
>>> vals = [[]]
>>> index["a"] = vals[:]
>>> index["b"] = vals[:]
>>> index
{'a': [[]], 'b': [[]]}
>>> index["a"][0].append(1)
>>> index
{'a': [[1]], 'b': [[1]]}
>>>

マジレス禁止だからねっ
08528272007/02/06(火) 19:32:33
>>841
WinXP SP2 + Python2.5 + pywin32-210 で試してみました。結果は、
win32file.LockFileEx(hfile, flags, 0, 0xffff0000, __overlapped)
OverflowError: long int too large to convert to int
お察しのとおり、動きませんでした・・・。

msvcrt.locking()は排他ロックしかないのが気になります。
RubyだとWin95ならLockFile()、NTならLockFileEX()を呼んで
File::flock()しているようなので、ctypesをで同様のことができないか調べてみます。
いろいろと勉強になりました。ありがとうございました。 >>821 >>841
0853デフォルトの名無しさん2007/02/06(火) 20:56:23
>>844
>あと、keys とか index は辞書やリストのメソッド名になってるから
>使わない方がいい。
別にビルトイン関数じゃないし、問題ない希ガス。
>>> index
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'index' is not defined
それに、仮にindexがビルトインで自前で定義した変数・関数が
それを隠しても、モジュールなり関数なりの中だけ(スコープの中だけ)
だから気にする必要なさげ。(自分が使わなければ問題ない)
0854デフォルトの名無しさん2007/02/06(火) 21:02:11
>>843
keys = ['a', 'b']
index = dict([(k, []) for k in keys])
0855デフォルトの名無しさん2007/02/06(火) 21:02:14
>>> def foo():
... def list(*a): # ビルトイン関数を隠す
... print "list"
... list([1,2,3])
...
>>> foo()
list
>>> list([1,2,3]) # 関数の外は俺list()のスコープ外だから影響なし
[1, 2, 3]

Rubyとかだと、うっかりトップレベルでindex定義しちゃうと悲惨なことに
なるけどね。
0856デフォルトの名無しさん2007/02/06(火) 21:05:23
メソッド名を使うのはへっちゃらだな。ビルトイン関数名はハマる場合あり。
0857デフォルトの名無しさん2007/02/06(火) 21:15:09
Pythonはスコープのルールがシンプルだからいいよね
selfもまんざら捨てたものじゃない
0858デフォルトの名無しさん2007/02/06(火) 21:58:07
>>857
卒業おめでとう.成人おめでとう.
0859デフォルトの名無しさん2007/02/06(火) 23:30:01
843です
皆さんありがとうございます
本当に参考になります

>>854さん
!これかっこいいですね
これ使います
ありがとうございました
0860デフォルトの名無しさん2007/02/07(水) 01:01:48
へー、dictってタプルのリストで初期化できるんだ。知らんかった。
0861デフォルトの名無しさん2007/02/07(水) 01:17:36
>>860
入門書くらい嫁。
08628602007/02/07(水) 02:46:45
>861

スマン。Tutorialに書いてあるの斜め読みで読み落してた。
0863デフォルトの名無しさん2007/02/07(水) 04:46:37
ジェネレータ式が使える。
index = dict(((k, []) for k in keys))
0864デフォルトの名無しさん2007/02/07(水) 05:00:56
>>852
成功したら教えて。
0865デフォルトの名無しさん2007/02/07(水) 11:57:37
>>862
俺も知らんかった。今ちょうど下のようなのが欲しかったから、こりゃ便利。
Keys = ('K1','K2')
ValsA = ('V1A','V2A')
ValsB = ('V1B','V2B')
DictA = dict(zip(Keys,ValsA))
DictB = dict(zip(Keys,ValsB))
0866デフォルトの名無しさん2007/02/07(水) 13:26:17
>>865
おまえはついでにPEP8を嫁。
0867デフォルトの名無しさん2007/02/07(水) 23:41:39
コンソールからディレクトリ名を入力させてやる時に、入力補完
とかするにはどうしたらいいですか。
0868デフォルトの名無しさん2007/02/07(水) 23:56:33
IPythonを使う
0869デフォルトの名無しさん2007/02/08(木) 00:04:03
>>863
一番外側の括弧は要らないね。
0870デフォルトの名無しさん2007/02/08(木) 13:38:01
下らない質問ですいません。
ipython 0.7.3 + python 2.5 ですが。

In [23]: s = '�@'.decode('cp932'); print s, type(s), hex(ord(s))
�@ <type 'unicode'> 0x2460

これあってますよね。でも

In [24]: s = u'�@'; print s
<type 'exceptions.UnicodeEncodeError'>: 'cp932' codec can't encode character u'\x87' in po
sition 0: illegal multibyte sequence

In [27]: print type(s), hex(ord(s[0])*0x100+ord(s[1]))
<type 'unicode'> 0x8740

タイプはunicodeなのにコードはsjis。どうして?

python 2.5だと
>>> s = '�@'.decode('cp932'); print s, type(s), hex(ord(s))
�@ <type 'unicode'> 0x2460
>>> s = u'�@'; print s, type(s), hex(ord(s))
�@ <type 'unicode'> 0x2460
で望んだ結果になるんですけど。
0871デフォルトの名無しさん2007/02/08(木) 19:55:59
Python3000wktk
0872デフォルトの名無しさん2007/02/08(木) 19:58:42
>>870
一般に、対話環境において、s = u'�@' が s = u'\x87\x40' と等価になるか
s = u'\u2460' と等価になるかは個々の対話環境の実装・バージョン依存だと思われ。
だめなものはだめ。

(もちろんソースファイルに書く場合は # -*- coding: spamspam -*- の設定次第。
これはまた別問題。)
0873デフォルトの名無しさん2007/02/08(木) 21:50:51
>>410-411
http://python.matrix.jp/tips/compatibility/interact_encoding.html

対話モードのエンコードについてはこの辺がよくまとまめられてる と思われ。
0874デフォルトの名無しさん2007/02/09(金) 11:00:40
>>872
わかりました、とりあえず対話環境ではこういうものだということで理解しました。
どうもありがとうございます。
0875デフォルトの名無しさん2007/02/09(金) 23:24:57
Some クラスのインスタンス
s = Some()
に、メソッドを追加することはできますか?
s.Foo = メソッド
のようにしたいのですが。
0876デフォルトの名無しさん2007/02/09(金) 23:36:53
メソッドを定義して代入しちゃいなよ、you
0877デフォルトの名無しさん2007/02/09(金) 23:40:42
どんな風に書いたらよろしいでしょうか。
0878デフォルトの名無しさん2007/02/09(金) 23:48:24
>>> import new
>>> S = type('S', (), {})
>>> s = S()
>>> s.amethod = new.instancemethod(lambda x, y: y, s, S)
>>> s.amethod(10)
10
>>>
0879デフォルトの名無しさん2007/02/10(土) 04:53:18
pythonスクリプトのなかでPythonのバージョン番号を調べる方法はありますか
0880デフォルトの名無しさん2007/02/10(土) 05:10:21
import os
os.system('python -V')
0881デフォルトの名無しさん2007/02/10(土) 05:23:59
import sys
version = sys.version.split(' ')[0]
0882デフォルトの名無しさん2007/02/10(土) 06:47:50
import sys
print sys.version_info
0883デフォルトの名無しさん2007/02/10(土) 08:31:55
import commands
print commands.getoutput("python -V")
0884デフォルトの名無しさん2007/02/10(土) 09:05:59
>880
/usr/local/bin/python2.3 とかを起動してたら?
0885デフォルトの名無しさん2007/02/10(土) 10:30:41
TMTOWTDI!
0886デフォルトの名無しさん2007/02/10(土) 11:36:34
いつも思うんだけど読めない略語なんかつくってどうするつもりなんだろう
0887デフォルトの名無しさん2007/02/10(土) 12:55:11
ああいうのは、読めるかどうか、知ってるかどうかで
何か差別化をしたい人が使いたがるだけ。
0888デフォルトの名無しさん2007/02/10(土) 13:22:29
ということにしたいのですね。
0889デフォルトの名無しさん2007/02/10(土) 13:57:13
作った本人は、その分かりづらさに気付いてない。それだけのことです。
BGNとかVRSNとか。なんのことやら。
0890デフォルトの名無しさん2007/02/10(土) 14:10:09
はみちちです
0891デフォルトの名無しさん2007/02/10(土) 14:12:56
>>886
読んで貰えなければそれはそれで構わないと思っているのだろう。
公共の場を使って非常に狭い範囲の読者だけに伝えるという非効率的な行為に
喜びを覚える種類の人間だと思われる。
0892デフォルトの名無しさん2007/02/10(土) 14:28:18
別にプロファイリングでオナニーする必要は無いと思うんだ。
0893デフォルトの名無しさん2007/02/10(土) 16:29:32
pythonの正規表現めんどくせええええええええええええええええ
0894デフォルトの名無しさん2007/02/10(土) 16:49:45
Perlへお帰りください
0895デフォルトの名無しさん2007/02/10(土) 19:14:50
入力を一行ずつ処理
http://gotou-sci.blogspot.com/2007/02/blog-post.html

fileってopenの(openってfileの?) alias なのね…
0896デフォルトの名無しさん2007/02/10(土) 19:28:10
と言うより、openが組み込みクラスオブジェクトfileの別名だな。
0897デフォルトの名無しさん2007/02/10(土) 19:55:17
未だに codecs.open のまんま
0898デフォルトの名無しさん2007/02/12(月) 22:33:46
数値を2進数表記に変換する関数はありますか?
16進数や8進数に変換する事はできるのに・・・
うーん・・・
0899デフォルトの名無しさん2007/02/13(火) 00:09:13
自分で作ってた
0900デフォルトの名無しさん2007/02/13(火) 01:14:26
関数、ライブラリになかったら自分で作るものだと思ってた
0901デフォルトの名無しさん2007/02/13(火) 01:20:36
2chで教えてくれると思ってたッ
0902デフォルトの名無しさん2007/02/13(火) 01:27:28
def a(n,s='')return s if n == 0 and s else a(n/2, str(n%2)+s)
0903デフォルトの名無しさん2007/02/13(火) 01:28:31
def a(n,s=''):return s if n == 0 and s else a(n/2, str(n%2)+s)
0904デフォルトの名無しさん2007/02/13(火) 01:41:19
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/111286
0905デフォルトの名無しさん2007/02/13(火) 05:52:38
pythonでFortranのunformattedのバイナリファイルを
読み込むにはどうすればいいのでしょうか?
0906デフォルトの名無しさん2007/02/13(火) 07:40:32
>>903みたいな表記って難しい・・・
とくにif n == 0 and sのあたりがどうにも・・・
0907デフォルトの名無しさん2007/02/13(火) 08:57:10
lambda x: ''.join( [(x>>i and str(x>>i & 0x1) or '') for i in range(32)][::-1])
0908デフォルトの名無しさん2007/02/13(火) 11:10:26
def a(n,s=''): return s if n == 0 and s else a(n/2, str(n%2)+s) if n >= 0 else '-'+a(-n)
レス数が900を超えています。1000を超えると表示できなくなるよ。