teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2018/06/02 05:08

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -23,4 +23,110 @@
23
23
  def n(m):
24
24
  10**11+10**m
25
25
  ```
26
- これは関数の定義ではなく、for文の中で関数を定義しているだけです(しかもreturnもしていないから無意味な関数だし・・・)。for文を回している意味もないし(何回定義しても最後に定義されたものしか残らないし、そもそもforで値が束縛されるmと仮引数のmとが別物なので意味ないとか、それ以前にnを呼び出していないとか・・・)、何がしたいのかよくわかりません。
26
+ これは関数の定義ではなく、for文の中で関数を定義しているだけです(しかもreturnもしていないから無意味な関数だし・・・)。for文を回している意味もないし(何回定義しても最後に定義されたものしか残らないし、そもそもforで値が束縛されるmと仮引数のmとが別物なので意味ないとか、それ以前にnを呼び出していないとか・・・)、何がしたいのかよくわかりません。
27
+
28
+
29
+ ### 追記2
30
+ 1つずつ加算で計算するコードはなんか書けました。
31
+
32
+ ```python
33
+ def incr_enzan(lst):
34
+ result_lst = lst[:]
35
+ if lst[-1] != 1:
36
+ first_one_passed = False
37
+ for i, x in enumerate(lst):
38
+ if x == 1 and not first_one_passed:
39
+ first_one_passed = True
40
+ elif x == 1 and first_one_passed:
41
+ break
42
+ result_lst[i] = 0
43
+ result_lst[i+1] = 1
44
+ else:
45
+ for i, x in enumerate(lst):
46
+ if x == 1:
47
+ break
48
+ result_lst[-1] = 0
49
+ result_lst[i] = 0
50
+ result_lst[i+1] = 1
51
+ result_lst[i+2] = 1
52
+ return result_lst
53
+
54
+
55
+ lst = [1,1,0,0,0,0,0,0,0,0,0,0]
56
+ print(1, lst)
57
+
58
+ for x in range(2, 67):
59
+ lst = incr_enzan(lst)
60
+ print(x, lst)
61
+ """
62
+ 1 [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
63
+ 2 [1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
64
+ 3 [1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]
65
+ 4 [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
66
+ 5 [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
67
+ 6 [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
68
+ 7 [1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]
69
+ 8 [1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
70
+ 9 [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
71
+ 10 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
72
+ 11 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
73
+ 12 [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
74
+ 13 [0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]
75
+ 14 [0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
76
+ 15 [0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
77
+ 16 [0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
78
+ 17 [0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]
79
+ 18 [0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
80
+ 19 [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
81
+ 20 [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
82
+ 21 [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
83
+ 22 [0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0]
84
+ 23 [0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0]
85
+ 24 [0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0]
86
+ 25 [0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0]
87
+ 26 [0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0]
88
+ 27 [0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0]
89
+ 28 [0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0]
90
+ 29 [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0]
91
+ 30 [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1]
92
+ 31 [0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0]
93
+ 32 [0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0]
94
+ 33 [0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0]
95
+ 34 [0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0]
96
+ 35 [0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0]
97
+ 36 [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0]
98
+ 37 [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0]
99
+ 38 [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1]
100
+ 39 [0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0]
101
+ 40 [0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0]
102
+ 41 [0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0]
103
+ 42 [0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0]
104
+ 43 [0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0]
105
+ 44 [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]
106
+ 45 [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1]
107
+ 46 [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0]
108
+ 47 [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0]
109
+ 48 [0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0]
110
+ 49 [0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0]
111
+ 50 [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0]
112
+ 51 [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]
113
+ 52 [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0]
114
+ 53 [0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0]
115
+ 54 [0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0]
116
+ 55 [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0]
117
+ 56 [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]
118
+ 57 [0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0]
119
+ 58 [0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0]
120
+ 59 [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0]
121
+ 60 [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1]
122
+ 61 [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0]
123
+ 62 [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0]
124
+ 63 [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1]
125
+ 64 [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0]
126
+ 65 [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1]
127
+ 66 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1]
128
+ """
129
+ ```
130
+
131
+ もしかしたら式1つでn番目の項が出せるかもしれませんが、思いつかなかったので得意な人に譲ります・・・。
132
+ こういうコードで一式出して、辞書に突っ込んでおけば良いでしょう。

2

追記

2018/06/02 05:08

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -12,4 +12,15 @@
12
12
  ['<', 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', ' ', 'n', ' ', 'a', 't', ' ', '0', 'x', '7', 'f', '5', '1', '6', '1', 'a', 'e', '1', 'f', '2', '8', '>']
13
13
  ```
14
14
 
15
- `str(func)`で関数オブジェクトを表す文字列が返るので、それを変換しようとしてしまっています・・・。
15
+ `str(func)`で関数オブジェクトを表す文字列が返るので、それを変換しようとしてしまっています・・・。
16
+
17
+ ### 追記
18
+ ```python
19
+ for m in range(1, 12):
20
+ def n(m):
21
+ 10**12+10**m
22
+ for m in range(12, 22):
23
+ def n(m):
24
+ 10**11+10**m
25
+ ```
26
+ これは関数の定義ではなく、for文の中で関数を定義しているだけです(しかもreturnもしていないから無意味な関数だし・・・)。for文を回している意味もないし(何回定義しても最後に定義されたものしか残らないし、そもそもforで値が束縛されるmと仮引数のmとが別物なので意味ないとか、それ以前にnを呼び出していないとか・・・)、何がしたいのかよくわかりません。

1

説明

2018/06/02 03:58

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -1,4 +1,4 @@
1
- `def`は関数の定義であって呼び出しではないので、そのコードで関数を定義している意味はありません。
1
+ `def`は関数の定義であって呼び出しではないので、そのコードで関数を定義している意味はありません。というか、意図通り動いていません。
2
2
 
3
3
  エラーの原因は`list(str(n))`が何になっているか確認してみるとわかります。
4
4