回答編集履歴

1

補足

2017/05/21 07:48

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -8,13 +8,11 @@
8
8
 
9
9
  質問者さんのpythonのバージョンは2.7だと思います。むむと思って2.7と3.6の違いを調べてみると
10
10
 
11
- [PEP 238 -- Changing the Division Operator](http://legacy.python.org/dev/peps/pep-0238/)というのが見つかりました。整数同士を除算すると2.7では切り捨て(floor)になってしまうようです。
11
+ [PEP 238 -- Changing the Division Operator](http://legacy.python.org/dev/peps/pep-0238/)というのが見つかりました。整数同士を除算すると2.7では切り捨て(floor)になってしまうようです。3.6では仕様が変わり切り捨てを行わない仕様になったようです。
12
-
13
- 3.6では仕様が変わり切り捨てを行わない仕様になったようです。
14
12
 
15
13
 
16
14
 
17
- ここまでわかれば回避として、除数を浮動小数にすればよいことが分かりした
15
+ ここまでわかれば回避として、除数を浮動小数にすればよいらしいことが推測でき
18
16
 
19
17
  limX = 10
20
18
 
@@ -23,3 +21,13 @@
23
21
  limX = 10.0
24
22
 
25
23
  に変更してみてください。期待通りの結果が得られます。
24
+
25
+
26
+
27
+ ---
28
+
29
+ ※: 整数同士の除算結果が整数になることについて
30
+
31
+ これはCやJavaなどのコンパイラー言語の仕様と同様なのでそういう感覚では自然に思えますが、動的な型を持つpythonとしてはちょっと不自然に感じますね。そういう意味で仕様が変更されたのだろうと想像しました。これはなかなか大きな仕様変更ですね。本件で自分も勉強させていただきました。
32
+
33
+