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

回答編集履歴

4

テキスト修正

2018/01/07 06:40

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  ![イメージ説明](1fbb511f26aec9a3b3b5e1dc896c7c3a.png)
54
54
 
55
- 最初のコードは、`i` は リストのインデクスになる想定で書いており、
55
+ 最初のコードは、`i` は リストのインデクスになる想定で書いており、
56
56
  0, 1, 2
57
57
  になることを期待しているわけですから、上記の `4` で明らかに
58
58
  何かがおかしいと思うことができます。

3

テキスト修正

2018/01/07 06:40

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -44,6 +44,8 @@
44
44
  print(i)
45
45
  list[i]*=2
46
46
  return list
47
+
48
+ all2x([1,2,3])
47
49
  ```
48
50
  を実行してみたりするわけです。(上記を main.py とします)
49
51
  すると、以下のように、2回目の `print(i)` で(なんと) `4` が出力されます。

2

テキスト修正

2018/01/07 06:16

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -46,7 +46,7 @@
46
46
  return list
47
47
  ```
48
48
  を実行してみたりするわけです。(上記を main.py とします)
49
- すると、以下のように、2回目の `print(i)` で `4` が出力されます。
49
+ すると、以下のように、2回目の `print(i)` で(なんと) `4` が出力されます。
50
50
 
51
51
  ![イメージ説明](1fbb511f26aec9a3b3b5e1dc896c7c3a.png)
52
52
 

1

テキスト追記

2018/01/07 06:15

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -12,4 +12,45 @@
12
12
  くることを想定したコードになっているから、うまく動かない
13
13
  のではないでしょうか?
14
14
 
15
- 参考になれば幸いです。
15
+ 参考になれば幸いです。
16
+
17
+ ---
18
+ 追記
19
+
20
+ ```
21
+ def all2x(list):
22
+ for i in list:
23
+ list[i]*=2
24
+ return list
25
+
26
+
27
+ all2x([1,2,3])
28
+ ```
29
+ と書いて、実行してみたときに、[発生している問題・エラーメッセージ] にあるとおり
30
+ `IndexError: list index out of range`
31
+ が出るわけですが、このメッセージは、
32
+ 「リストのインデクスがリストの許容する範囲外になっている。」
33
+ という意味です。
34
+ これを見たときに、
35
+ 「あれ? インデクスがリストの範囲外になってる?そんなはずはないだろう・・・さて?」
36
+ と思うことが大事です。
37
+ そう思えたら
38
+ 「では、範囲外になってしまったインデクスの値は何だろう?」と思うでしょう。
39
+ すると、`list[i]*=2` で、`list` のインデクスにしている `i` の値を
40
+ ループの毎回表示させるために、直前に `print(i)` を入れて
41
+ ```python
42
+ def all2x(list):
43
+ for i in list:
44
+ print(i)
45
+ list[i]*=2
46
+ return list
47
+ ```
48
+ を実行してみたりするわけです。(上記を main.py とします)
49
+ すると、以下のように、2回目の `print(i)` で `4` が出力されます。
50
+
51
+ ![イメージ説明](1fbb511f26aec9a3b3b5e1dc896c7c3a.png)
52
+
53
+ 最初のコードは、`i` は リストのインデクスになる想定で書いており、
54
+ 0, 1, 2
55
+ になることを期待しているわけですから、上記の `4` で明らかに
56
+ 何かがおかしいと思うことができます。