回答編集履歴
2
スコープの話ではなかった
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
~~ython では `if` 文ブロックの中で 変数のスコープが閉じていますのでその中で宣言した変数はブロックが終わると寿命が終わってしまいます。それより外で宣言された変数であれば `if` の中から書き換えても生き残ります。つまり `Q` に初期値を入れないと `Q` の中身がない可能性があるよ、と言っているわけです。~~単純に `if` の条件漏れで `Q` が定義されてない場合があります。なので
|
2
2
|
|
3
3
|
```Python
|
4
4
|
|
1
ちょっと理解した
test
CHANGED
@@ -7,3 +7,17 @@
|
|
7
7
|
```
|
8
8
|
|
9
9
|
と関数の最初に書いておけば大丈夫でしょう(初期値が 0 なのかわかりませんが)。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
追記:
|
14
|
+
|
15
|
+
もうちょっとよく読みました。したらば
|
16
|
+
|
17
|
+
```Python
|
18
|
+
|
19
|
+
Q = P if Base_10_to_n(d,3)[0] == 1 else ec_double(P)
|
20
|
+
|
21
|
+
```
|
22
|
+
|
23
|
+
と初期値は書けますね。多分もっとネストも出来ます、が、重要なのは **Q に何らかの値が入っていること**です。
|