Pythonのお勉強 Part14
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/10/20(金) 00:34:56http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
Python 2.5
http://www.python.org/download/releases/2.5/
IronPython
http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
まとめ wiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/
Pythonの入門書「みんなの Python」
http://www.amazon.co.jp/gp/product/479733665X/
Pythonのお勉強 Part13
http://pc8.2ch.net/test/read.cgi/tech/1157984472/
0446デフォルトの名無しさん
2006/10/29(日) 01:56:17意外とはまりポイントになりやすい
そのかわり、次のどっちも同じ戻り値になるわけだが
return a
return (a)
0447デフォルトの名無しさん
2006/10/29(日) 02:00:44(a) == aにならないのはおかしいって言いたいのか?
要素1個のタプルを作りたかったら、
(a,)って書かないとダメなのが気持ち悪い、とかじゃなくて?
0448447
2006/10/29(日) 02:01:330449デフォルトの名無しさん
2006/10/29(日) 02:03:25'(' ')' はダミーだと思え
0450デフォルトの名無しさん
2006/10/29(日) 02:27:05> 一つの要素を持つタプルは、値の後ろにコンマを続ける
> (単一の値を丸括弧で囲むだけでは不十分です) ことで構築できます。
> 美しくはないけれども、効果的です。
とあるね。
The Zen of Python の
> Special cases aren't special enough to break the rules.
> Although practicality beats purity.
あたりだろうか。
0451デフォルトの名無しさん
2006/10/29(日) 04:38:22return ( a
+ b
+ c )
(a)がタプルにならないおかげでこういう行継続が可能に・・・
(使い方間違ってるのかな・・・
0452デフォルトの名無しさん
2006/10/29(日) 07:52:23その自慢の「本質」とやらで空タプルを作ってくれ。
0453デフォルトの名無しさん
2006/10/29(日) 08:09:210454デフォルトの名無しさん
2006/10/29(日) 08:15:28()、[]、{}で空のが作れるのは統一されてる
0455デフォルトの名無しさん
2006/10/29(日) 08:19:03程度の意味しかないな。
0456デフォルトの名無しさん
2006/10/29(日) 09:45:23別に括弧で括らなくても、カンマを付けるだけでタプルになるんだよね。
>>> t = 1,
>>> t
(1,)
そういう意味で >>449 は「',' がタプルの本質」って書いたんじゃないだろうか。
んで、本来は括弧が不要である以上「()で空タプルができる」ってのが例外かな、と思ったんだけど。
まあ、あんまりグダグダと議論しても、Guidoにでも聞かない限り答えはでないか。
0457デフォルトの名無しさん
2006/10/29(日) 11:32:19答えは言語仕様で厳格に規定されていると思うけど
0458デフォルトの名無しさん
2006/10/29(日) 11:38:19def foo():
return 1, 2, 3
a, b, c = foo()
気が利いてるよな
0459デフォルトの名無しさん
2006/10/29(日) 11:56:02だから、タプルには 〔きっこう括弧〕 でも使う事にすれば良かったんだ
0460デフォルトの名無しさん
2006/10/29(日) 11:58:330461デフォルトの名無しさん
2006/10/29(日) 12:07:050462デフォルトの名無しさん
2006/10/29(日) 13:10:10indexの値と一緒にとりたい場合って、組み込みの関数ってあるんすかね?
(val,index)=max(list)見たいな感じで、list内の最大値と、そのインデックスが帰ってくると嬉しい。
0463デフォルトの名無しさん
2006/10/29(日) 13:21:13アドホックな方法は存在しえないかもな
max()で帰ってきた値をindex()に渡せばインデックスは得られるよ
0464デフォルトの名無しさん
2006/10/29(日) 13:38:32a=(1, 2, 3, 4, 4)
[i[0] for i in enumerate(a) if i[1] == max(a)]
0465デフォルトの名無しさん
2006/10/29(日) 13:58:43>>> def trev(t): return t[1], t[0]
>>> a = [1.0, 2.0, 3.0, 4.0]
>>> trev(max(map(trev, enumerate(a))))
(3, 4.0)
0466デフォルトの名無しさん
2006/10/29(日) 14:26:10def where_is_max(L):
for index, value in enumerate(L):
if value == max(L):
return (index, value)
0467462
2006/10/29(日) 14:32:510468デフォルトの名無しさん
2006/10/29(日) 15:48:470469デフォルトの名無しさん
2006/10/29(日) 17:37:22hoge(a, b, c)
を
hoge a, b, c
と書いたりは出来ないので表記上は別物になるでしょう
0470デフォルトの名無しさん
2006/10/29(日) 18:59:010471デフォルトの名無しさん
2006/10/29(日) 19:02:17459でもすぐに思いつく程度のことをGuidoが考えなかったとでも?
0472デフォルトの名無しさん
2006/10/29(日) 19:11:580473デフォルトの名無しさん
2006/10/29(日) 19:49:25index, value = max(enumerate(a), key=itemgetter(1))
0474Python初心者
2006/10/29(日) 20:47:08>初心者ですが、Programming Python, 3rd Edition 買ってみました。
>ページ総数1596に圧倒されてます。買う前から判ってたけどさ。
重かったろうねぇ…
「初めてのPython」->715ページの倍!
私は現在ようやく476ページまで読破したところです。
ところでLuts先生がPythonの講義をすると、必ず受講者の
半分がオブジェクト指向プログラミングのところで
脱落するそうです。ー>(熟睡する人もいるとか…)
「Pythonの」オブジェクト指向で脱落した人は本当に
「半分で」済んでいるのだろうか?
結構奥が深いというか、複雑怪奇というか、脱落するのは
ある意味必然的な結果のように感じる。
先生は他の言語でオブジェクト指向によるシステム開発
経験の有る無しが受講生の覚醒と熟睡を分けると書いて
いるが、返って有る人の方が熟睡度が深いかもね?
0475デフォルトの名無しさん
2006/10/29(日) 20:50:470476デフォルトの名無しさん
2006/10/29(日) 21:01:05Unicodeにはいろんな括弧があるから今後設計される言語は楽しみだなw
0477デフォルトの名無しさん
2006/10/29(日) 21:05:030478デフォルトの名無しさん
2006/10/29(日) 21:49:060479デフォルトの名無しさん
2006/10/29(日) 21:49:180480デフォルトの名無しさん
2006/10/29(日) 21:57:000481デフォルトの名無しさん
2006/10/29(日) 22:05:48それも嫌だが、
begin-tuple 1, 2, 3, end-tuple
みたいなのもちょっと鬱陶しいぞw
要はバランス感覚だね
0482デフォルトの名無しさん
2006/10/29(日) 22:06:09http://www.python.org/dev/peps/pep-0318/
<...>の導入はデコレータの時にも検討されているので読んでみれ。
言語の仕様策定の難しさといったら、常人の想像を越えているな。
0483デフォルトの名無しさん
2006/10/29(日) 22:12:11本は最後まで読んでから物を言え、と
何度言われれば分かるの?
0484デフォルトの名無しさん
2006/10/29(日) 22:25:40いい加減、放置したらええんでないの
0485デフォルトの名無しさん
2006/10/29(日) 22:43:320486デフォルトの名無しさん
2006/10/29(日) 22:45:010487デフォルトの名無しさん
2006/10/29(日) 23:02:260488デフォルトの名無しさん
2006/10/29(日) 23:07:25あー、交渉人が主役のエロゲでそれが決め台詞な奴いた。
0489デフォルトの名無しさん
2006/10/29(日) 23:07:550490デフォルトの名無しさん
2006/10/29(日) 23:32:32hoge((a,b,c))
を
hoge(a,b,c)
と書くこもとも出来ない、
この辺の仕様の関係で、引数の*valっていうのが抜かせないんだと思う・・
0491デフォルトの名無しさん
2006/10/29(日) 23:49:230492デフォルトの名無しさん
2006/10/30(月) 00:47:200493デフォルトの名無しさん
2006/10/30(月) 00:51:44♪ ∧,_∧
(´・ω・`) )) Simple, fun, and indented〜♪
(( ( つ ヽ、 ♪
〉 とノ )))
(__ノ^(_)
0494デフォルトの名無しさん
2006/10/30(月) 00:55:40そのための仕様だろ。
0495デフォルトの名無しさん
2006/10/30(月) 01:38:530496デフォルトの名無しさん
2006/10/30(月) 10:40:110497デフォルトの名無しさん
2006/10/30(月) 11:23:18こういうピンボケがいるからこのスレはダメになる
0498デフォルトの名無しさん
2006/10/30(月) 11:31:13>*argsとか**args
異なる引数に同じ名前をつけたらダメだよ。
基本から勉強しようね。
0499デフォルトの名無しさん
2006/10/30(月) 11:33:37お前がピンボケと思うのなら、「いや、そうじゃなくてね」と話を続けるのが大人ってもんだ.
このコミュニケーション不全野郎が.
0500デフォルトの名無しさん
2006/10/30(月) 11:56:12そういう事じゃないだろ
hogeって書いてあったら全部同じ変数かよ
0501デフォルトの名無しさん
2006/10/30(月) 12:01:06495 = 497 = 500は世間を知らないお子ちゃま決定(WWWWWW
0502デフォルトの名無しさん
2006/10/30(月) 12:04:180503デフォルトの名無しさん
2006/10/30(月) 12:08:29ハンガリアンなツワモノはいますか?
0504デフォルトの名無しさん
2006/10/30(月) 12:17:440505デフォルトの名無しさん
2006/10/30(月) 12:18:57V I P P E R か (wwwwwww
0506デフォルトの名無しさん
2006/10/30(月) 12:24:250507デフォルトの名無しさん
2006/10/30(月) 12:26:05>502
0508デフォルトの名無しさん
2006/10/30(月) 12:51:14誰もPythonが初めて実装したなんて言ってないと思うよ
0509デフォルトの名無しさん
2006/10/30(月) 13:09:48>>>type(exit)("death note")()
0510デフォルトの名無しさん
2006/10/30(月) 13:18:53カッコが多くてムズムズッとするぜ
0511デフォルトの名無しさん
2006/10/30(月) 13:39:31>>496 は天然だからほっとこう。
0512デフォルトの名無しさん
2006/10/30(月) 13:49:56>type(exit)("death note")()
TypeError: 'str' object is not callable
0513デフォルトの名無しさん
2006/10/30(月) 13:50:39>502
0514デフォルトの名無しさん
2006/10/30(月) 13:58:28>>type(exit)("death note")()
NameError: No. I wrote your name. You die.
0515デフォルトの名無しさん
2006/10/30(月) 14:09:140516デフォルトの名無しさん
2006/10/30(月) 14:18:590517デフォルトの名無しさん
2006/10/30(月) 14:22:270518デフォルトの名無しさん
2006/10/30(月) 14:33:06ん?もしかして古いpythonだと、exitが文字列だったりするんですかね?
type(exit)だけだと何になりますか?
0519デフォルトの名無しさん
2006/10/30(月) 14:46:22/path/to/lib/python2.5/site.py
class Quitter(object):
def __init__(self, name):
self.name = name
def __repr__(self):
return 'Use %s() or %s to exit' % (self.name, eof)
:
0520デフォルトの名無しさん
2006/10/30(月) 14:48:22/path/to/lib/python2.4/site.py
def setquit():
"""(ry
"""
if os.sep == ':':
exit = 'Use Cmd-Q to quit.'
elif os.sep == '¥¥':
exit = 'Use Ctrl-Z plus Return to exit.'
else:
exit = 'Use Ctrl-D (i.e. EOF) to exit.'
__builtin__.quit = __builtin__.exit = exit
0521デフォルトの名無しさん
2006/10/30(月) 15:46:480522デフォルトの名無しさん
2006/10/30(月) 16:40:110523デフォルトの名無しさん
2006/10/30(月) 16:43:510524デフォルトの名無しさん
2006/10/30(月) 16:46:44二重否定の構文は分かりづらく、メンテナンス性が悪いと思ったので
リファクタリングしてみました
> おやおや、>>521は自分だけが「基地外」であることに気づいていないようですよ。
0525デフォルトの名無しさん
2006/10/30(月) 16:48:280526デフォルトの名無しさん
2006/10/30(月) 16:58:270527デフォルトの名無しさん
2006/10/30(月) 17:06:450528デフォルトの名無しさん
2006/10/30(月) 17:25:290529デフォルトの名無しさん
2006/10/30(月) 17:30:130530デフォルトの名無しさん
2006/10/30(月) 17:39:33途中でPythonのバージョンが変わってるようですが???w
ソース確認してきたけどやっぱり2.4のexitはただの文字列で、
2.5のexitはQuitterクラス(という終了用のクラス)になってる模様。
だから2.5だと>>509みたいな遊び(?)が可能
0531デフォルトの名無しさん
2006/10/30(月) 18:00:00>ソース確認してきたけどやっぱり2.4のexitはただの文字列で、
>2.5のexitはQuitterクラス(という終了用のクラス)になってる模様。
519と520に該当コードが張ってあるじゃん。
君は分裂症とかそういう病気の人かな?
0532Python初心者
2006/10/30(月) 18:25:58>本は最後まで読んでから物を言え、と
>何度言われれば分かるの?
ご忠告により昨日頑張って525ページまで読みました。
Lutz先生がそのページにおいて、
「Pythonという言語のコア部分の解説は終わりです。
ここまで読んだ方は、十分に自分はPythonプログラマ
であると名乗る資格があるでしょう。」
と認証されました。「履歴書」にそう書けって…
0533Python初心者
2006/10/30(月) 18:28:01実装する方法を書いてましたよね?以下、私も考えましたが、
今一ぴったり来ない。他に良い手はあるでしょうか?
class Interface:
def virtual_method(self):
self.name = 'Python!'
self.act()
def act(self):
assert 0,'act must be defined!'
class Sub(Interface):
def act(self):
print 'Let us act with '+ self.name
if __name__=='__main__':
s = Sub()
s.virtual_method()
>>>
Let us act with Python!
0534デフォルトの名無しさん
2006/10/30(月) 18:34:53ああ、日本語がまったく書いてないから>>519>>520の意図が全然読めてなかった。
しかし、これで分裂症に見られるわけか。なんかもう書きたくない。
0535デフォルトの名無しさん
2006/10/30(月) 18:49:590536デフォルトの名無しさん
2006/10/30(月) 18:57:220537デフォルトの名無しさん
2006/10/30(月) 20:03:48吐き出すようなモジュールってありますか?
あるいは、そんなものって需要ありますか?作ろうとしてるんですが。
0538デフォルトの名無しさん
2006/10/30(月) 20:29:27zope3は自前でインターフェースを実装している
0539デフォルトの名無しさん
2006/10/30(月) 20:31:30そゆのは Template Method パタンとゆーのでは。
_________________________
<○ノ
‖
くく
しまった!デザパタはNGワードだった!
オレが止めているうちに他の話題に移れ!
早く!早く!オレに構わず逝け!
0540デフォルトの名無しさん
2006/10/30(月) 20:37:03ttp://www.dezentral.de/warp.html?http://www.dezentral.de/soft/XMarshaL/
ttp://xmlobject.base-art.net/
0541デフォルトの名無しさん
2006/10/30(月) 21:16:33ありがとうございます、たくさんあるんですね。
さっそくさわってみようと思います。
他に、XMLObjectなるものを見つけました。
http://xmlobject.sourceforge.net/
0542デフォルトの名無しさん
2006/10/30(月) 21:18:41ひたすらソース貼るだけで日本語では罵倒以外出来ない奴とか…。
Pythonに興味を持った人がこのスレ見て
「Pythonプログラマは人格破綻者ばっかりだ」とか思われたら
悔しくてたまらないわあ。
0543デフォルトの名無しさん
2006/10/30(月) 21:33:110544デフォルトの名無しさん
2006/10/30(月) 21:49:53このスレだけ見てそういう判断をするのは問題だし、そういう人間はおらんだろう。
0545デフォルトの名無しさん
2006/10/30(月) 22:41:44真っ先に指摘すべきは
空気が読めず何度言われても態度を改めない「Python初心者」だろ(w
お前わかりやすすぎるんだよ、馬鹿が(wwwwwww
■ このスレッドは過去ログ倉庫に格納されています