回答編集履歴
1
typoなど
answer
CHANGED
@@ -4,11 +4,12 @@
|
|
4
4
|
その上で、具体的に困ったことがあれば、ここで聞くとアドバイスがもらえると思います。
|
5
5
|
|
6
6
|
> 以下のような簡単な関数を定義しようとしましたが、うまく動作しません。
|
7
|
+
|
7
8
|
この関数の定義で問題はありません。 うまく動作しないと考えた理由を教えてください。
|
8
9
|
|
9
10
|
> 期待通りの動作になっているか不安
|
10
11
|
|
11
|
-
|
12
|
+
どのような動作を期待しているのか(=仕様)明確にして、そのとおりに動作しているか試験することで安心を得ることができます。
|
12
13
|
|
13
14
|
> defキーワードを使って関数を定義する基本的な構文が知りたいです。
|
14
15
|
> 引数と戻り値の扱い方がよくわかりません。
|
@@ -28,7 +29,7 @@
|
|
28
29
|
> 関数のスコープについて、具体例を挙げて説明していただけると助かります。
|
29
30
|
|
30
31
|
これも入門書に譲ります。
|
31
|
-
ただ、一つよく初心者がつま
|
32
|
+
ただ、一つよく初心者がつまずくのが、参照だけなら上位のスコープの変数の値にアクセスできる仕様です。
|
32
33
|
|
33
34
|
```python
|
34
35
|
a = 10
|
@@ -37,7 +38,7 @@
|
|
37
38
|
def sample_fn():
|
38
39
|
# a = 20
|
39
40
|
b = a + 50 # エラーになる 上の行のコメントを外すと、 b は70になる。
|
40
|
-
a =
|
41
|
+
a = 30 # ここで aに値を入れているので、aはこの関数のローカル変数になる
|
41
42
|
|
42
43
|
y = x + 50 # 上位のスコープのxを参照できる。
|
43
44
|
```
|