[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 02/23 23:49 / Filesize : 112 KB / Number-of Response : 432
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part 27



1 名前:デフォルトの名無しさん [2008/06/13(金) 04:22:02 ]
Python オフィシャルサイト
ttp://www.python.org/
ttp://www.python.org/doc/
日本Pythonユーザ会
ttp://www.python.jp/Zope/
ttp://www.python.jp/doc/
FrontPage - Pythonのお勉強
ttp://python.rdy.jp/
前スレ
pc11.2ch.net/test/read.cgi/tech/1209480428/
◆関連スレッド
Microsoft IronPython 1.0
pc11.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
pc11.2ch.net/test/read.cgi/tech/1153585095/
Python Challengeをやろう!
pc11.2ch.net/test/read.cgi/tech/1175919288/
Pythonについて(アンチ専用)
pc11.2ch.net/test/read.cgi/tech/1203557046/
Pythonに見られるインデントによる制御構造の是非
pc11.2ch.net/test/read.cgi/tech/1169473442/
pythonがこの先生きのこるには
pc11.2ch.net/test/read.cgi/tech/1167996371/
Eclipse統合M25【Java/C/PHP/Ruby/Python/Perl】(PyDev)
pc11.2ch.net/test/read.cgi/tech/1211505494/
【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
pc11.2ch.net/test/read.cgi/tech/1209289408/
デザパタ + Python/Ruby/Smalltalk part2
pc11.2ch.net/test/read.cgi/tech/1175959706/
2ch検索: [python]
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python

52 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:30:52 ]
そうだね、プロテインだね。

53 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:34:53 ]
「初めてのPython」は、読んだら後輩にあげればいいじゃん
それか、貸すとか

54 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:59:28 ]
名前を連呼しなければならないくらい売れてないんですね、よく分かります。

55 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 23:02:30 ]
そこで「はじめてのPython」ですよ

56 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 23:19:08 ]
信者って本当にいるんだな、イタいな(www

57 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 23:43:30 ]
Pythonの入門書っぽい書籍を集めて、アマゾンのランキングを並べてみた。

みんなのPython 6,881位
Pythonチュートリアル 80,907位
初めてのPython 第2版 71,260位
実践Python 146,100位
Pythonプログラミング入門 183,682位
はじめてのPython 230,568位
速効!Pythonプログラミング 357,963位

差がありすぎて笑った(ww

58 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 23:49:25 ]
>>57
どこがどうおもしろいの?

59 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:02:53 ]
Jythonプログラミング 63,943位

60 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:04:28 ]
みんなのPython Webアプリ編 82,077位



61 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:11:31 ]
はじめてのPythonネットワークプログラミング 166,030位

62 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:34:59 ]
Python クックブック 第2版 149,610位

63 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:40:14 ]
>>57
みんPyははじPyの10倍売れてるってことか
すごいな

64 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:02:26 ]
1位の本は2位の本より2倍売れてることになるのか
すごいな

65 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 03:32:45 ]
Amazonで買う香具師ってナカミ見ないで
他人の評判だけで本選んでんだろ?

66 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 03:35:23 ]
順位でソートしてみた

みんなのPython 6,881位
Jythonプログラミング 63,943位
初めてのPython 第2版 71,260位
Pythonチュートリアル 80,907位
みんなのPython Webアプリ編 82,077位
実践Python 146,100位
Python クックブック 第2版 149,610位
はじめてのPythonネットワークプログラミング 166,030位
Pythonプログラミング入門 183,682位
はじめてのPython 230,568位
速効!Pythonプログラミング 357,963位


67 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 03:53:56 ]
>>66
出来れば出版社著者出版年金額も

68 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 04:13:31 ]
>>66
はじめてのpythonって新しいのがでてたのかよwwww

69 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 08:39:26 ]
Jython本は出たばっかりなのに、あまり売れてないってことなんですか?
みんなのPythonは出てからしばらくたってるのに売れ続けているということですかね〜。
現実は厳しいですね(^^)。


70 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:09:12 ]
>>65
ほかにどうすりゃいいんだよw



71 名前:デフォルトの名無しさん [2008/06/15(日) 09:09:25 ]
Jython本は一番新しいし、
古いことが載っている本を避けたいひとにはおすすめだと思う
www.amazon.co.jp/dp/4839922829?tag=nishiohirokaz-22

72 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:13:23 ]
それでもなお売れているみんぱいは化け物だな(ww

73 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:21:23 ]
>>70
普通のひとは本屋で手にとって中身確認してから買うと思う


74 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:25:54 ]
>>73
そして「評判」とやらをネットに書くわけだが。

75 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:30:41 ]
Django の日本語本出るみたい
ttp://www.cbook24.com/bm_detail.asp?sku=9784048672092


76 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:35:01 ]
>>71を踏むと
nishiohirokazというID持ってる奴に
インセンティブ入るから、?tag以降を削ってからアクセスしろよ

77 名前:デフォルトの名無しさん [2008/06/15(日) 09:38:17 ]
>>76 は真っ赤な嘘。全然大丈夫。

78 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:40:23 ]
イケメンハッカーが自己発電しました。

79 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:55:28 ]
みんなのPythonも十分ダルイと思う。一応は買った。

売れているのは、ここで「バイブル」って書いてるからだろ。

なにかチェックしたい時に見るのはチュートリアル(書籍版)
やクイックリファレンスだな。

初めてのPython、みんなのPythonは持ってはいるけど長い間開
いた事も無い。

チュートリアルを敢えて紙で読むのは、手早く探せるっていう
のが大きい。Webだと読み返す気になれん。

80 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 10:07:37 ]
>>79
ここでバイブルと書いてあるのはこの本ですよ(売れてないけど)

www.amazon.co.jp/dp/4839922829?tag=nishiohirokaz-22




81 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 10:09:09 ]
Python関連書籍は別スレで、それもできればID出る板でやってくんねえかな
別でやってくれるなら工作員だろうが信者だろうが文句いわれないだろ
ここ最近明らかに異常だぞ

82 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 10:37:47 ]
おまえらが反応するからだ

83 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 10:39:16 ]
81こそ工作員だろJK

84 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 10:42:10 ]
都合が悪くなるとコロコロと言うことを換えるのが工作員の特徴

85 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:30:48 ]
都合が良くても言うことは代わる

86 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 14:22:51 ]
今見たらみんPyは23,477位だった
1時間ごと更新らしいが変動が大きいな

87 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:17:02 ]
>>84
「敵」は一人じゃないと気が済まないんですね、わかります。

88 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:31:21 ]
そういうことにしたいのですね。

89 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:52:38 ]
見えない敵と戦ってるんだよ

90 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:22:28 ]
工作員って、メメントのジョン・Gみたいなもんでしょ。



91 名前:デフォルトの名無しさん [2008/06/15(日) 18:28:46 ]
未定義の新しいクラス名が出てきたと思ったら、そのクラスを生成しちゃう裏技は?

a = B() # Bは未定義
a.met() # B::met()は未定義

ってあったとき、B()もmet()も空っぽでいいんでとりあえず実行させたいんだけっこ

92 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:35:28 ]
>>91
NameErrorやAttributeErrorを処理するんじゃ駄目なの?

93 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:08:30 ]
>>91
それって確かクックブックに載ってた気がする。


94 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:16:24 ]
>>91
あった。6.17 Null Objectデザインパターンを実装する...ってやつ
でいいんじゃないか?

本を持ってなければASPNに探しに行けば同内容のが載ってると思うよ。

95 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:20:16 ]
これかな
aspn.activestate.com/ASPN/Cookbook/Python/Recipe/68205

96 名前:デフォルトの名無しさん [2008/06/15(日) 21:29:59 ]
宿題スレでスレ違いと言われたのでこっちに引っ越しま〜す♪


657 名前:デフォルトの名無しさん[] 投稿日:2008/06/15(日) 20:24:59
Jythonのアプレットでexecが使いたい件
www.jython.org/applets/issues.html
↑証明書つければOKって読んだんですが、
証明書つけても、↓。たすけて

Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: org/python/core/parser
at org.python.core.Py.compile_flags(Unknown Source)
at org.python.core.Py.compile_flags(Unknown Source)
at org.python.core.__builtin__.compile(Unknown Source)
at org.python.core.__builtin__.eval(Unknown Source)
at org.python.core.__builtin__.eval(Unknown Source)
at org.python.core.BuiltinFunctions.__call__(Unknown Source)
at app$_PyInner.actionPerformed$36(app.java:556)
at app$_PyInner.call_function(app.java:245)
 (ry


97 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:33:00 ]
Jythonスレでも立てたら?

過疎るだろうけど。

98 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:43:31 ]
>>92
print "0"
try:
 print "1"
 a = B()
 print "2"
 a.c()
 print "3"
 # ...
 # a = C()とかいっぱい
except NameError:
 print "NameError" # 確認用に出力してるだけ
 # ここで、2に戻りたい??
except:
 print "abc"
print "z"

期待 "0123z"
結果 "01NameErrorz"

>>93-95
ありがとうございます。
Nullだけでは、だめで
class B(Null): pass
とか定義しないとだめかもなきがします。
それすら横着したいんですが・・orz

99 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:52:46 ]
B()はともかく
foo.bar なら __getattr__ でいけそうな気がするが


100 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:03:36 ]
100



101 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:10:37 ]
101

102 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:20:13 ]
>>96
JythonもJAVAも知らんけど、そのリンク先では「アプレットでは"exec"と"eval"
は使えない。」って言ってると思ふ。


103 名前:102 mailto:sage [2008/06/15(日) 23:31:23 ]
いや、「unsigned applets では・・・」だな。
ごめん、忘れておくれ。

104 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:12:48 ]
>>79
>売れているのは、ここで「バイブル」って書いてるからだろ。

このスレの書き込みがそんなに影響力あるわけないだろ〜、こ〜の〜(www
イナカモノの妄想は恥ずかしいな(www


105 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:48:00 ]
どっちも推測の域を出てないけどな

106 名前:職場にそういってたのが二人いるんだよね mailto:sage [2008/06/16(月) 12:32:40 ]
>8
お主、俺の同僚だったりしないだろうな?

107 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 12:33:20 ]
>このスレの書き込みがそんなに影響力あるわけないだろ〜、こ〜の〜(www
あるんじゃないか?マイナーな言語だから他にソースないし。
こっちの方がMLより活発だしね。

108 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:21:23 ]
>>107
そうだね、君には神の声が聞こえるよね。

109 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:27:21 ]
Pythonで学ぶソフトウェア作法の新しいやつでないかな。

110 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:29:37 ]
出るよ。
にちゃんねるがソースの情報だけど。



111 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:33:38 ]
>>108
君の神が「そんなわけない」と言ってるのはわかったよ。

112 名前:デフォルトの名無しさん [2008/06/16(月) 13:38:00 ]
class A:
  B = 1

a = A()
a.B

a.B呼び出しをフックしたいのですが、
(a.Bが実行される前に__getattr__のようなメソッドが呼ばれるとうれしい)

113 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:38:22 ]
なんでも否定されているように感じるのは、ヒキコモリの特徴だね。

114 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:49:31 ]
2chしか情報源がないなんてかわいそうだね.

115 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:49:40 ]
まったくだ。
神とか言い出してまで食い下がるトコじゃないのにね。

116 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:58:22 ]


117 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:58:52 ]
>>112
プロパティ使えば?
class A:
 @property
 def B(self):
  print "B"
  return 1

118 名前:117 mailto:sage [2008/06/16(月) 14:03:42 ]
>>112
プロパティ使わなくても、objectから継承すれば__getattribute__でフック出来たわ

119 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 14:20:56 ]
>>115
そうあなたのウッチュウジンが言ったんですね。分かります。

120 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 14:36:45 ]
pass



121 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 14:53:54 ]
None

122 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:14:35 ]
God

123 名前:デフォルトの名無しさん [2008/06/16(月) 17:20:13 ]
class Aに定義
 def __getattr__(self, mname):    # C
 def __getattribute__(self, mname): # D

# object継承/非継承と、変数定義/未定義のパターン
class A(): #1
 #b = 1
 #B = 1

class A(): #2
 b = 1
 B = 1

class A(object): #3
 #b = 1
 #B = 1

class A(object): #4
 b = 1
 B = 1

a = A()

アクセスしたときの挙動
   #1 #2  #3 #4
a.b C  ○  D  ○
a.B C  ○  D  ○
A.b x  ○  x  ○
A.B x  ○  x  ○

x ・・・ AttributeError: class A has no attribute 'b'

124 名前:デフォルトの名無しさん [2008/06/16(月) 17:22:40 ]
>>117-118
ありがとうございます。
objectの継承と、__getattribute__使ってみました

結果、>>123なんですが、暑いので、
なにがやりたいのかわからなくなってきました
閑話休題

ところで、
class A():
 b = 1
のbはクラス変数であってますか?

インスタンスを作らずにA.bというふうにアクセスしてもいいですか?

>>123のxのところをなんとかしてください?m(__)m

125 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:03:08 ]
つ __metaclass__

126 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:35:50 ]
懐かしいな。
久しぶりにメタクラスの話題をやろうぜ。
あとデザインパターンも。

127 名前:デフォルトの名無しさん [2008/06/16(月) 22:06:15 ]
そういうことは西○さんにまかせとけ

128 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:10:34 ]
>>> x+y
x + y
>>> -(x-y)
y - x

>>> 24-72
-48
>>> trace('24-72')
24-72
-(-24+72) # 省略可
-(72-24)

数値のリテラルをオブジェクトとして演算子'-'で展開する
とか、どうやればよいでしょうか?

関数作って文字列加工でお茶濁すのもじぶんには書けない…orz

129 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:23:36 ]
__sub__
__neg__



130 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:58:22 ]
お茶を濁すのはこんなのでいいの?
>>> def adder(a,b):
... print '%s + %s' % (str(a),str(b))
...
>>> def subtracter(a,b):
... print '%s - %s' % (str(b),str(a))

>>128が書いてあるような操作が必要なときってどんなときが
あるの?想像がつかないんだけど。



131 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:26:12 ]
>>130
いやね。(24-72) 弟がわからんいうとるのよ
どう筆算したらええねんとか -(72-24)ならわかるらしい(謎

132 名前:131 mailto:sage [2008/06/17(火) 02:31:54 ]
def trace(exp):
 '''
 >>> trace('24-72') # one '-' elements
 '-(72-24)'

 >>> trace('x-1/2-1/3-1/4') # two '-' elements
 '-(1/4+1/3+1/2+x)'

 >>> trace('24+72') # no '-' elements
 '-(-72-24)'
 '''
 if '+' in exp:
  n = len(exp.split('+'))
  if n >= 3:
   print 'not implement...'
  else:
   elm = '-'.join(list(reversed(exp.split('+'))))
  return '-(-' + elm + ')'
 
 else: 
  n = len(exp.split('-'))
  if n >= 3:
   elm = '+'.join(list(reversed(exp.split('-'))))
  else:
   elm = '-'.join(list(reversed(exp.split('-'))))
  return '-(' + elm + ')'

import doctest
doctest.testmod()

ユニットテストは通るけど、初項の符号が間違ってるし…
二項なら上手くいきそうだけど、おいらには三項以上は無理そげ

133 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:38:13 ]
繰り上がりは分かるけど繰り下がりがわからないんだろな

134 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:26:38 ]
奇数列を簡単に生成するには
どうすれば良いですか?

135 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:29:35 ]
[i for i in range(100) if i % 2]

136 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:37:08 ]
range(0,100,2)
じゃだめなの?


137 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:37:28 ]
def odd(x=1): x+=2; yield x;

138 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:39:31 ]
range(1,100,2)か。奇数列なら。


139 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:59:52 ]
itertools.ifilter(lambda x: x % 2, itertools.count())

140 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:01:39 ]
itertools.islice(itertools.count(1), None, None, 2) とどっちが速いだろ



141 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:03:22 ]
>>138
>>> range(1,100,2)[0:10]
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
>>> range(0,100,2)[0:10]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

有限個の数列を生成するなら、
関数 => リスト => スライス演算(部分数列=部分リスト)
が理解しやすそうd

odz.sakura.ne.jp/projecteuler/index.php?Problem%2014

>>> t_collaz(exp)
13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1

コラッツ問題のtracerは、どう書いたら良いでしょうか?

142 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:28:31 ]
def collatz(n)
 show n
 if n.odd? and n > 1
  collatz(3n + 1)
 else if n.even?
  collatz(n / 2)

再帰で処理を分岐して、引数を数珠繋ぎに取って来て、
各ステップの値を引数に託して、リストを生成する

return '→'.join(結果リスト)。書けん…orz

143 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:38:08 ]
>>141
def collatz(n):
r=[]
while n>1:
r.append(n)
n=3*n+1 if n%2 else n/2
return r

print collatz(13) # => [13, 40, 20, 10, 5, 16, 8, 4, 2]

144 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:47:36 ]
def collaz(n):
 if n in odd and n > 1:
  collaz(3*n+1)
  yield n 
 elif n in even:
  collaz(n/2)
  yield n

>>> odd = range(1,100,2)[:10]
>>> even = range(0,100,2)[:10]
>>> [x for x in collaz(13)]
[13]

ジェネレーターの使い方がわからない…
return と、どう違うねん

145 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:56:11 ]
def collatz(n):
    while n > 1:
        yield n % 2 and 3 * n + 1 or n / 2

reduce(lambda x, y: "%s->%d" % (x,y), collatz(13), "").lstrip("->")
汚ぇw

146 名前:145 mailto:sage [2008/06/17(火) 10:59:02 ]
まあreduce()は冗談
普通はjoinだよな常考

147 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:07:29 ]
>>143
とても正しいです…

def collatz(n):
 r=[]
 while n>1:
  r.append(n)
  n = 3*n+1 if n%2 else n/2
 yield r

>>> collatz(13)
<generator object at 0x02637788>
>>> [x for x in collatz(13)]
[[13, 40, 20, 10, 5, 16, 8, 4, 2]]

def collatz(n):
 r=[]
 while n>1:
  r.append(n)
  n = 3*n+1 if n%2 else n/2
  yield r

>>> [x for x in collatz(13)]
[[13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2],
[13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2]]

なんか動作がわからない。なんで完成したリストが13回返されるかな…
計算結果を格納した暫定結果リストを返してくれれば便利そげだけど

148 名前:145 mailto:sage [2008/06/17(火) 11:13:04 ]
アホだ...こうしないと動かないよな
def collatz(n):
    while n > 1:
        yield n
        n = n % 2 and 3 * n + 1 or n / 2

>>147
どんな出力を求めてるのかが、いまいちよくわからない

149 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:18:21 ]
>>147
> なんか動作がわからない。なんで完成したリストが13回返されるかな…
yield r の開始位置を比べてみそ。

150 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:19:44 ]
yield list(r)



151 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:33:22 ]
>>148
def collatz(n):
  yield n
  n = n % 2 and 3*n + 1 or n/2

>>> collatz(13).next()
13
>>> f = collatz(13)
>>> f.next()
13
>>> f.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration

>>> [x for x in collatz(13)]
[13]

>>149
開始位置ってなんじゃらほい
サンプルとかヒントきぼん

152 名前:151 mailto:sage [2008/06/17(火) 11:36:36 ]
あほだ…while抜け取るやん…orz






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<112KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef