Pythonのお勉強 Part15
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/12(日) 22:51:44http://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のお勉強 Part14
http://pc8.2ch.net/test/read.cgi/tech/1161272096/
0577デフォルトの名無しさん
2006/12/01(金) 11:49:33あぁ、なるほど。ありがとうございます。うまくいきました。
クラスオブジェクトのままではだめか……
0578デフォルトの名無しさん
2006/12/01(金) 12:59:37zip(range(0, len(n), 2), range(1, len(n), 2))とやったんですが
もうちょいスマートなやり方ないですかね?
0579578
2006/12/01(金) 13:01:380580デフォルトの名無しさん
2006/12/01(金) 13:01:52>>> [(i, i+1) for i in range(0, n, 2)]
[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]
0581デフォルトの名無しさん
2006/12/01(金) 13:17:04思いつかなかった自分にへこむ・・・・・・
0582Python初心者(復活)
2006/12/01(金) 16:42:36>>537,538
色々とあるもんですねぇ。
そこで、無理やりgeneratorで実装してみました。
def foo(n):
a = [n]
i = 0
while 1 :
val = (yield i)
if val is not None:
a[0] += val
print a[0]
else:
print 'send(any number)!'
f = foo(1)
f.next() #<-これが無いとエラーになる。
f.send(2)
f.send(3)
f.send(4)
f.next() #<-これは正常に動作する。
f.send(5)
f.next() #<-これは正常に動作する。
これからするとgeneratorにはいきなり値を
渡すことが出来ないことになるが?
(TypeError: can't send non-None value to a
just-started generator)
他に最初から値を渡す方法があるので
しょうか?
0583デフォルトの名無しさん
2006/12/01(金) 17:36:45モジュール名を実行時に指定するわけです。
現状の構文とは相容れないとはわかってますが、
exec("import %s" % name) よりスマートな方法があれば教えてください。
0584デフォルトの名無しさん
2006/12/01(金) 17:42:54>>> sys
<module 'sys' (built-in)>
0585デフォルトの名無しさん
2006/12/01(金) 19:53:47返させる関数だから、停止してない最初に呼べないのはあたりまえ。許した
としても、yieldで停止した後に呼ばれたsendで上書きされるので意味がない。
0586デフォルトの名無しさん
2006/12/01(金) 20:35:39何でそう思った?
0587デフォルトの名無しさん
2006/12/01(金) 20:44:23という流れだと予想。
0588デフォルトの名無しさん
2006/12/02(土) 04:56:38さんくすです。そうか、ライブラリじゃなくて組み込み関数だったのか。
このままだと代入先があらかじめわかってないとだめなので
mod_name = 'mymodule'
locals()[mod_name] = __import__(mod_name)
でいくことにしました。execよりは見た目複雑ですけど、これでOKです。
>>586
import モジュール名 と
import 変数名 との区別がつけられないからです。
現状の構文では、import XXX によって、モジュール名と、そのモジュールを代入する変数の両方を同時に指定している訳で、
これが import 'モジュール名' だとモジュールを代入する変数を文字列で指定することになり、pythonのしくみとしてはおかしいかなと思いました。
rubyとは違って、モジュールを変数に代入するのがpythonなので、これは仕方ないと思ってます。
0589デフォルトの名無しさん
2006/12/02(土) 08:25:05動的にモジュールを決めてロードしたいだけなら、モジュール名と同じ名前で束縛する必要はない。
temp_module = __import__('mymodule')
として、モジュールオブジェクトtemp_moduleの属性にアクセスするだけでいいと思うよ。
0590デフォルトの名無しさん
2006/12/02(土) 13:26:42だな。
むしろ変数名のほうがコロコロ変わったんじゃ使いにくいだろね。
>>588のやりたいことがいまいちよくわからん。
0591デフォルトの名無しさん
2006/12/02(土) 14:32:34> 現状の構文では、import XXX によって、モジュール名と、そのモジュールを代入する変数の両方を同時に指定している訳で、
import A as B という構文もあるわけだが。
0592デフォルトの名無しさん
2006/12/02(土) 15:18:43はいはい、見当違いレス乙。
588の下の段落は586へのレスだろうが。
0593デフォルトの名無しさん
2006/12/02(土) 15:50:25馬鹿乙
0594デフォルトの名無しさん
2006/12/02(土) 16:10:150595Python初心者(復活)
2006/12/02(土) 16:29:40>sendはyieldで停止しているジェネレータを再開するときにyieldに値を
>返させる関数だから、停止してない最初に呼べないのはあたりまえ。
これは納得。
>許したとしても、yieldで停止した後に呼ばれたsendで上書きされるの
>で意味がない。
許せば少なくとも、停止させるだけの無意味なf.next()を書く必要が
なくなるので意味はある。
ところで、先生!
>>582
if val is not None:
a[0] += val
print a[0]
else:
print 'send(any number)!
f = foo(1)
f.next() #<-これが無いとエラーになる。
f.send(2)
f.send(3)
f.send(4)
f.next() #<-これは正常に動作する。
f.send(5)
f.next() #<-これは正常に動作する。
最初のf.next()の時だけ何故、else:節が実行されない
のでしょうか?
0596デフォルトの名無しさん
2006/12/02(土) 16:46:161.最初にsend(x)する
2.yield iでジェネレータが止まる。呼び出し側にはiが返る
3.次にsend(y)する
4.yieldがyを返し、ジェネレータが実行を再開して次のyieldでまた止まる。
だからxは意味がない。
0597デフォルトの名無しさん
2006/12/02(土) 17:15:44バカはお前だボケ。文盲は黙ってろな。
0598デフォルトの名無しさん
2006/12/02(土) 17:26:45馬鹿乙
0599デフォルトの名無しさん
2006/12/02(土) 18:14:06文盲乙
0600デフォルトの名無しさん
2006/12/02(土) 21:44:040601デフォルトの名無しさん
2006/12/02(土) 21:50:19発売前もそうだけど、発売されてからも全然わだいにならないのはなぜ?
誰も注目してないの?
そんなにひどい内容なの?
やっばり「しっぱい」なの?
0602デフォルトの名無しさん
2006/12/02(土) 21:57:07補足しとくと、
仕様書を読むだけでなく実際にジェネレータを定義して試してみればわかるが、
最初にsend(x)できるのはxがNoneの時だけ。
0603デフォルトの名無しさん
2006/12/03(日) 00:31:06Zope関係者乙
0604デフォルトの名無しさん
2006/12/03(日) 00:42:14内容がひどいからというよりも、書いてる人が偉くも偉そうでもなくて煽りどころがないからじゃないの。
0605デフォルトの名無しさん
2006/12/03(日) 01:01:39Blog検索で調べてみたけど、言及数が少ないなー。
普通に話題になってないだけだと思われ。
Pythonもこういう駄本が出版されるようになったということか。
ま、いいことですな。
>>604
みんぱいの作者タソはZope関係者に粘着されてたんでしょう?
実践Pythonの著者もZope関係者らしいが(WWWWWWWWWW
0606デフォルトの名無しさん
2006/12/03(日) 01:06:29何を話題にしろと?どこに注目しろと?
・・・表紙?
0607デフォルトの名無しさん
2006/12/03(日) 01:07:00ttp://kashino.exblog.jp/4781584
これが日本語で出版されるPython入門本の決定番だ!という気持ちであり、
もちろん今もその気持ちだが
話題にならない本の作者にしては十分偉そうじゃね?(w
0608デフォルトの名無しさん
2006/12/03(日) 03:55:060609デフォルトの名無しさん
2006/12/03(日) 10:32:57>困ったときの
誰か困っているの?
0610デフォルトの名無しさん
2006/12/03(日) 13:35:13いや、ほとんど社交辞令みたいなもんだろそれ
0611デフォルトの名無しさん
2006/12/03(日) 15:56:32Zopeの管理画面にfavicon.icoを表示させたいんですが
どこ置けばいいですか?
0612デフォルトの名無しさん
2006/12/03(日) 16:47:37おまえ2chのトップに「2ちゃんねる検索」のフォームが貼ってあることを知ってるか?
http://find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=zope&COUNT=50
0613Python初心者(復活)
2006/12/03(日) 18:39:29>>602
>yieldで止まってるから。
f.next() #<-これは何もOPしない。しかし無いとエラー。
f.send(2)
f.send(3)
f.send(4)
f.next() #<-else節のsend(any number)!をOP
f.send(5)
f.next() #<-else節のsend(any number)!をOP
しつこいようですが、最初のf.next()が
yieldで止まってelse節まで実行しないなら、
何故?二番目や三番目のf.next()は
else節を実行するのでしょうか?
0614デフォルトの名無しさん
2006/12/03(日) 19:15:52while 1:
yield
#else節
で説明すれば、最初のnext()は「関数の最初から」「次に出くわすyieldまで」
を実行する。その間にelse節はないので実行されない。
二回目以降のnext()は「止まっているyield」から「次に出くわすyieldまで」
を実行する。yieldの後else節があるので、それを実行した後while 1で戻されて
yieldで止まる。つか、最初のnextが気に入らないなら無理にジェネレータを
使う必要ない希ガス。
0615デフォルトの名無しさん
2006/12/03(日) 20:21:12心持ちとしてはすごくまっとー
>>607は厨房か、ひっきーか?
正直社会人の感性ではないな
0616デフォルトの名無しさん
2006/12/03(日) 20:23:58def consumer(func):
def wrapper(*args,**kw):
gen = func(*args, **kw)
gen.next()
return gen
wrapper.__name__ = func.__name__
wrapper.__dict__ = func.__dict__
wrapper.__doc__ = func.__doc__
return wrapper
@consumer
def func(n):
while 1:
val = yield n
if val is not None:
n += val
else:
print "send(any number)!"
f = func(1)
print f.send(2)
print f.send(3)
print f.send(4)
0617デフォルトの名無しさん
2006/12/03(日) 20:33:23>つか、糞本ですが買ってください
そうだね、
たとえ本当に糞本だったとしても、普通はそんなことは言わないね。
0618デフォルトの名無しさん
2006/12/03(日) 22:27:420619デフォルトの名無しさん
2006/12/04(月) 07:32:22同人のノリですな。キモイよね。
0620デフォルトの名無しさん
2006/12/04(月) 09:42:540621デフォルトの名無しさん
2006/12/04(月) 10:10:48>ttp://blog.livedoor.jp/dankogai/archives/50704894.html
>著者は日本でもトップレベルのPythonistasだ。
ググっても名前が全然出てこないんだけど...。
何で有名な人なの?
0622デフォルトの名無しさん
2006/12/04(月) 11:18:310624デフォルトの名無しさん
2006/12/04(月) 12:25:13>Really Pythonic Code!
お前が言うなよ(WWWWWWW
つか,参照先間違ってね?
0625デフォルトの名無しさん
2006/12/04(月) 14:09:50これはカッコいい!デコレータってすごいな!
0626デフォルトの名無しさん
2006/12/04(月) 14:17:04うまく動かない環境では、
"ほげ".decode(エンコード名)と
u"ほげ" の内容が一致しないのです。
--------------------------------
Python 2.3.5 (#2, Sep 4 2005, 22:01:42)
[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
>>> "ほげ".decode('euc-jp')
u'\u307b\u3052'
>>> u"ほげ"
u'\xa4\xdb\xa4\xb2'
--------------------------------
Python 2.3.4 (#1, Nov 4 2004, 14:06:56)
[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
>>> "ほげ".decode("utf-8")
u'\u307b\u3052'
>>> u"ほげ"
u'\xe3\x81\xbb\xe3\x81\x92'
--------------------------------
Python 2.4.3 - Enthought Edition 1.0.0.beta4 (#69, Jul 13 2006, 15:35:31)
[MSC v.1310 32 bit (Intel)] on win32
>>> "ほげ".decode('mbcs')
u'\u307b\u3052'
>>> u"ほげ"
u'\u307b\u3052'
0627デフォルトの名無しさん
2006/12/04(月) 14:24:01これだけが二つの式の内容が一致しています。
残りはいずれも、u"ほげ"の側はデコードされていません。元のエンコードの
ままです。
そこで予想を立てたのですが、Python2.3以前では、対話環境では u"ほげ"を
デコードしないのではないかと思うのです。
ということでお願いなのですが、print u"ほげ"がうまく行く方、行かない方、
それぞれPythonのバージョンを教えていただけないでしょうか?
ただし、すみませんがsitecustomize.py を設定している方に限ります。
http://lowlife.jp/nobonobo/zine/5/6.html
0628デフォルトの名無しさん
2006/12/04(月) 14:38:11対話環境で
>>>print u"ほげ"
ほげ
がうまく表示される方、されない方、
それぞれPythonのバージョンを教えていただけないでしょうか?
できたらOS等の環境もお願いします。
0629デフォルトの名無しさん
2006/12/04(月) 14:55:490630デフォルトの名無しさん
2006/12/04(月) 15:37:33> Python2.3以前では、対話環境では u"ほげ"を
> デコードしないのではないかと思うのです。
その通りだと思われ。
0631626
2006/12/04(月) 15:39:31むしろ問題は、対話環境自体のようです。
同じWinXPの Python 2.4.3 - Enthought Edition 1.0.0.beta4 でも、対話
環境の種類で結果が変わりましたので。
---------------------------
# 通常の対話シェル
>>> "ほげ".decode("cp932")
u'\u307b\u3052'
>>> u"ほげ"
u'\u307b\u3052'
---------------------------
# IDLE 1.1.3
>>> "ほげ".decode('cp932')
u'\u307b\u3052'
>>> u"ほげ"
u'\x82\xd9\x82\xb0'
---------------------------
# IPython 0.6.15 -- An enhanced Interactive Python.
In [6]: "ほげ".decode('cp932')
Out[6]: u'\u307b\u3052'
In [7]: u"ほげ"
Out[7]: u'\x82\xd9\x82\xb0'
0632626
2006/12/04(月) 15:42:58・Pythonのバージョンを上げて、その標準の対話環境を使う
・u"ほげ"のデコードに対応した対話シェルを捜す
このどちらかになりそうです。
しかし、前者はなかなか難しいし、
後者も、IDLEとIPythonがダメですからねえ。うーん。
0633デフォルトの名無しさん
2006/12/04(月) 15:52:22"mbcs" のところは環境依存。
汎用性のある方法が分かっているのにヌルーするのはなぜ?
0634626
2006/12/04(月) 16:08:31その理由は、
・"ほげ".decode("cp932")と書くより、u"ほげ"の方が簡単
・スクリプトファイルの中では u"ほげ" と書いているので、統一したい
(スクリプト内では当然、エンコーディング指定は冒頭の一箇所のみにしたい)
・違うサーバごとに、対話環境で違うエンコーディングを打ち込むのは混乱する
"ほげ".decode("cp932"|"euc-jp"|"utf-8")
などです。
0635デフォルトの名無しさん
2006/12/04(月) 16:09:38ちなみに以下の例ではキー入力のエンコーディングはファイルシステムのエンコーディングと同じに違いないっ!と仮定。
>>> import sys
>>> class u(unicode):
def __new__(cls, s, enc=sys.getfilesystemencoding()):
return unicode(s, enc)
>>> u("ほげ")
u'\u307b\u3052'
0636626
2006/12/04(月) 16:30:22これは面白いですね!ありがとうございます。ちょっといじってみました。
>>> class u(object):
... import sys
... def __new__(cls, s, enc=sys.getdefaultencoding()):
... return s.decode(enc)
...
>>> u("ほげ")
u'\u307b\u3052'
u"ほげ"にカッコをつけるだけですむのは確かに楽です。しかし、
>>> u"ほげ"
u'\xa4\xdb\xa4\xb2'
こちらが直らないのは、やはり残念ですね。
0637デフォルトの名無しさん
2006/12/04(月) 16:49:44ttp://python.matrix.jp/tips/compatibility/interact_encoding.html
とかが参考にならんか?
0638626
2006/12/04(月) 17:18:27> sys.stdin.encodingやらsys.stdout.encodingやらがasciiになってるんじゃないの?
残念ながら、なっていません。
DebianではEUC-JP、RedHatではUTF-8、WinXPではCP932です。
> http://python.matrix.jp/tips/compatibility/interact_encoding.html
> とかが参考にならんか?
残念ながら、ならないようです。
環境変数「PYTHONSTARTUP」に
interact.py
# -*- encoding: mbcs -*-
などを各サーバに指定してみましたが、結果は同じでした。
そもそもこのページには、内容に疑問があります。
mbcs, cp932, shift_jisはほとんど同じもので、ひらがなの文字化けの原因には
ならないと思うのですが。
0639デフォルトの名無しさん
2006/12/04(月) 17:53:51> \python25\python -c "import sys; print sys.stdout.encoding"
cp932
> \python25\python -c "import sys; print sys.stdout.encoding" > out.txt
> more out.txt
None
という違いがあることも書いてあるといいかもね。
0640デフォルトの名無しさん
2006/12/04(月) 18:11:36リダイレクトしても、結果は変わらなかったぞ(Python2.3 on Linux)。
2.5だとそうなるの?
0641640
2006/12/04(月) 18:13:37print sys.stdout.encoding を
間違えて sys.getdefaultencoding() にしちまってた。
0642デフォルトの名無しさん
2006/12/04(月) 19:28:42まとめると
A: 判型が微妙
B: レイアウトが微妙
C: 実践というタイトルが微妙
D: サンプルコードが微妙
E: 著者は無名、(何がかは微妙だけど)トップ
なるほど、これでは話題になるわけがないな.
0643デフォルトの名無しさん
2006/12/04(月) 19:40:31必死だな
0644デフォルトの名無しさん
2006/12/04(月) 19:56:39『みんなのPython』はぼろくそに叩かれていたけれど、人に借りて読んでみたら
ごく普通の入門書だった。まあ買う気はないけど。
Rubyも散々な言われようだったけど、使ってみたら、好みは分かれるだろうが
悪い言語じゃなかった。
この煽りどもの暗い情熱はどこから涌いてくるのだろうか?
ママの愛情が足りなかったのか?
0645デフォルトの名無しさん
2006/12/04(月) 19:56:490646デフォルトの名無しさん
2006/12/04(月) 21:54:11ワタシはMatlab鹿使えないんですが.
0647デフォルトの名無しさん
2006/12/04(月) 21:57:32好みのライブラリが揃ってるほう
0648デフォルトの名無しさん
2006/12/04(月) 22:02:40いや、ここ2chだし。責任って重石の取れた、匿名筆談ならこんなもん。
人間の品性にどんな希望を抱いてるか知んないけど、
リアル以上に下司の声が大きいくらいが、むしろ自然じゃないか。
どんな板・話題でも、下層民のルサンチマンは所嫌わず。
努力してそうしてるわけではない。
0649デフォルトの名無しさん
2006/12/04(月) 22:11:490650デフォルトの名無しさん
2006/12/04(月) 22:21:22Rubyの事情は良く知らないんだけど、たぶんPythonでいいと思う。
NumPy, SciPy, mathplotlibといった、洗練されたライブラリが大量にあるから。
0651デフォルトの名無しさん
2006/12/04(月) 22:41:26648さんごめんなさい。
0652デフォルトの名無しさん
2006/12/04(月) 22:52:01みんぱいの場合は、作者本人への粘着もあったよな
Zope関係者の仕業と言うことになってるんだっけか?
0653デフォルトの名無しさん
2006/12/04(月) 23:10:13>Rubyも散々な言われようだったけど
Matzも他言語をよく扱下ろすからな。同情できん。
0654デフォルトの名無しさん
2006/12/04(月) 23:37:07ある意味とっても健全だわな。
なんて書いてて思ったんだけど、mixiにPythonコミュってある?
0655デフォルトの名無しさん
2006/12/04(月) 23:53:350656デフォルトの名無しさん
2006/12/05(火) 00:23:07Windowsだったら、この Python Enthought Editionをまず使ってみてよ。
http://code.enthought.com/enthon/
これさえインストールすれば、数値計算に必要なライブラリやツールが
ほぼすべて揃う。つうか盛りだくさん過ぎて使い切れない。
これで不足だったら、そのあとで他の選択肢を考えればいいよ。
0657デフォルトの名無しさん
2006/12/05(火) 02:17:34Matlabで用が足りているなら学習コストをかけてPythonを使う必要はない希ガス。
科学技術計算以外のこと「も」やりたいなら超お勧めだけどね。
0658デフォルトの名無しさん
2006/12/05(火) 02:35:20そういう時、無料というメリットは大きい。
あと、SCILABとかと違って、汎用言語だというのは、
欠点でもあるけど、メリットでもある。
自分の場合、計算結果をRDBに保存する必要がでてきて、
ああPythonでよかったと思った。
0659デフォルトの名無しさん
2006/12/05(火) 03:28:450660646
2006/12/05(火) 11:55:46matlabだけだと学校出た後にきついかなと思ったのと,
ゲームとかも作れるようになりたいなと思ったので質問しました.
>>656 のmac版はないかなぁ…
0661デフォルトの名無しさん
2006/12/05(火) 11:57:290662Python初心者(復活)
2006/12/05(火) 13:10:27>つか、糞本ですが買ってください
>>616のコードも良いけど、>>615のこれも
結構Really Pythonicだと思わん?
泣けるで…
ところで、
三項演算子はandとorの組み合わせで代用可能だと、
どこかで読んだ覚えがある。
x = 2
print ('One' if x == 1 else 'Not One')
print (('One' and x == 1) or 'Not One')
これはうまく作動するが、x = 1 になると下の式は
Trueを返す???
正しくはどうやるんでしょうか?
0663Python初心者(復活)
2006/12/05(火) 13:21:21始めてのPythonにしてもそうだが、外人が書く本は
どこか著者が全力で書いている部分がある。
そこが読者の心を打つ。
ところが日本人が書く本は、どこかこの程度で
いいじゃん的な部分が見られて萎える。
これは内容が分かり易いとか難しいとかを
超えたものだと思う。
自らの著作に対する姿勢の問題じゃないか。
0664デフォルトの名無しさん
2006/12/05(火) 13:25:22・・・・・・・・・・。
print x == 1 and 'One' or 'Not One'
0665デフォルトの名無しさん
2006/12/05(火) 13:29:13ただ、Pythonだと0は偽になるんで、値が0の時を真にしたい場合にハマる危険がある。
0666デフォルトの名無しさん
2006/12/05(火) 13:30:28Pythonの and と or はLISP風。
http://www.shido.info/py/python2.html#operator
タプルを使ったエラー回避。まあ2.5には三項演算子があるわけだが。
http://web.archive.org/web/20060109122923/http://www.geocities.jp/shido_takafumi/py/python2.html#operator
0667デフォルトの名無しさん
2006/12/05(火) 13:40:20ぶっちゃけ得られる銭が全く違うからなぁ・・・
日本では専門書なんて売れないから印税なんて雀の涙
米国では図書館が買ってくれるだけれも馬鹿にならない
そういう文化インフラが嫌になるくらい違うんだよね
0668デフォルトの名無しさん
2006/12/05(火) 13:42:29そうだね。トリッキーな書き方はPythonに似合わない気がする。
素直に if 文で分けるか、2.5 以降の三項演算子を使うのが吉。
0669デフォルトの名無しさん
2006/12/05(火) 16:43:30>どこか著者が全力で書いている部分がある。
全力で書きすぎて厚くなってしまった本をありがたがるのは
体力がありあまっているガイジンかオマエみたいな変わり者だけだよ
0670デフォルトの名無しさん
2006/12/05(火) 17:34:53日本のpy本はまとめサイト級(ほめ言葉)って気がする(読んでないから知らんけど)。
0671デフォルトの名無しさん
2006/12/05(火) 17:41:06>読んでないから知らんけど
ハイハイ、妄想しがちなヒキコモリは黙っていてね
0672デフォルトの名無しさん
2006/12/05(火) 18:01:120673デフォルトの名無しさん
2006/12/05(火) 22:04:46そんなあなたにはmatzの本がおすすめ。
0674デフォルトの名無しさん
2006/12/05(火) 23:07:520675デフォルトの名無しさん
2006/12/06(水) 14:41:320676Python初心者(復活)
2006/12/06(水) 21:19:19>ただ、Pythonだと0は偽になるんで、値が0の時を
>真にしたい場合にハマる危険がある。
x = 0
print x == 0 and 'Zero' or 'Not Zero'
これ、ハマらないようだけど?
■ このスレッドは過去ログ倉庫に格納されています