回答編集履歴

1

追記

2019/09/19 06:09

投稿

hayataka2049
hayataka2049

スコア30935

test CHANGED
@@ -17,3 +17,55 @@
17
17
 
18
18
 
19
19
  ちゃんとインデントがわかるようにコードブロックで囲まれていて、どのように引数を与えたのかがわかるようなコードを示していただかないとこれ以上はなんとも言えませんが、ロジックに問題がありそうな気がします。
20
+
21
+
22
+
23
+ ### 追記
24
+
25
+ 関数部分で余計な代入を除去すると、以下のコードになります。
26
+
27
+
28
+
29
+ ```python
30
+
31
+ def mmF(x,raw,Mfct):
32
+
33
+ if x <= 2:
34
+
35
+ Mfct.append(0)
36
+
37
+ elif x >= 3:
38
+
39
+ dtA=x-1
40
+
41
+ dtB=x-2
42
+
43
+ curMF=raw[dtA]-raw[dtB]
44
+
45
+ Mfct.append(curMF)
46
+
47
+ return Mfct
48
+
49
+ ```
50
+
51
+
52
+
53
+ 第三引数を受け取って、操作した後に返す関数になっていることがわかります。
54
+
55
+
56
+
57
+ 一方main側では
58
+
59
+
60
+
61
+ ```python
62
+
63
+ a=mmf(num,raws,MF)
64
+
65
+ MF.append(a)
66
+
67
+ ```
68
+
69
+
70
+
71
+ の部分で、結果的に`MF`に`MF`を`append`するコードになっていますから、質問文のような状況になります。