質問編集履歴

1

codeを足しました

2019/07/08 09:13

投稿

Mr_K
Mr_K

スコア28

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,91 @@
1
1
  プログラムを書いていて疑問に思ったことを質問させてください。少し抽象的になるかもしれませんがお許しください.ある変数a,bがあるときにこのに変数を辞書型{a,b}として別の配列c=[]にappendした場合を考えます.この時cをプリントしたところ[{b,a}]の順で表示されました.これが不思議で質問させていただいています.
2
2
 
3
3
  私の仮説なのですが辞書型を配列にappendする際に辞書のa,bの順にpushされるので配列cにはaが先に代入され,c=[{b,a}]という形になると考えています.つたない文章で申し訳ありませんがどなたか教えてください.
4
+
5
+ ちなみに書いているコードがこれです.初めにいくらの借金をしますかと尋ねられるので30000000と入力してください.すると結果が辞書型でリストに内包した状態で返ってきます.その際に上記の疑問が生じました.
6
+
7
+
8
+
9
+ ```python
10
+
11
+ import time
12
+
13
+ def calc_money(num,c,syakkin):
14
+
15
+ b = num
16
+
17
+ bonus = c
18
+
19
+ y1 = syakkin
20
+
21
+ month=0
22
+
23
+ while month < 360:
24
+
25
+ y2 = y1+y1 * 0.02 / 12.0 - b
26
+
27
+ y1 = y2
28
+
29
+
30
+
31
+ month += 1
32
+
33
+ if month % 6 == 0:
34
+
35
+ y2 = y1 - bonus
36
+
37
+ y1 = y2
38
+
39
+ if y1 <= 0:
40
+
41
+ break
42
+
43
+ return y1,month
44
+
45
+
46
+
47
+ if __name__ == '__main__':
48
+
49
+ start = time.time()
50
+
51
+ saiteki_kingaku =[]
52
+
53
+ syakkin = int(input('いくらの借金をしますか?'))
54
+
55
+
56
+
57
+ for c in range(100000,150000,5000):
58
+
59
+ for b in range(5000,110000,1):
60
+
61
+ result = calc_money(b,c,syakkin)
62
+
63
+ if result[0] <=0 and result[1]==360:
64
+
65
+ #print('月'+str(b)+'円の時クリア')
66
+
67
+
68
+
69
+ saiteki_kingaku.append({b,c})
70
+
71
+ #print(result[0],result[1])
72
+
73
+ #plt.plot(result[0],result[1],marker='o')
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+ print(saiteki_kingaku)
82
+
83
+
84
+
85
+ #plt.show()
86
+
87
+ elapsed_time = time.time() - start
88
+
89
+ print ("elapsed_time:{0}".format(elapsed_time) + "[sec]")
90
+
91
+ ```