Pythonのお勉強 Part 27
at TECH
147:デフォルトの名無しさん
08/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回返されるかな…
計算結果を格納した暫定結果リストを返してくれれば便利そげだけど
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4718日前に更新/112 KB
担当:undef