回答編集履歴

1

Python 2/3系の除算結果の違いについて言及

2015/08/01 14:36

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 変数への代入時点で型を使い分けておくと、その後の計算結果に影響するケースがあります。
5
+ **Python 2.x系**では、変数への代入時点で型を使い分けておくと、その後の計算結果に影響するケースがあります。
6
6
 
7
7
  ```python
8
8
 
@@ -21,3 +21,13 @@
21
21
  ```
22
22
 
23
23
  このコードの[実行結果](http://melpon.org/wandbox/permlink/FzCiLQN0R5FhzGeX)は `1, 1.5` となります。
24
+
25
+
26
+
27
+ なお**Python 3系**ならば、同コードの[実行結果](http://melpon.org/wandbox/permlink/Q4ZQkYEWE6I8G9iS)は `1.5 1.5` と型によらず結果が安定します。
28
+
29
+
30
+
31
+ これはPython 2.x系と3系の挙動の違いの一つです。Python 2系に慣れていると戸惑いますが、3系の挙動の方が「[驚き最小の原則](https://ja.wikipedia.org/wiki/%E9%A9%9A%E3%81%8D%E6%9C%80%E5%B0%8F%E3%81%AE%E5%8E%9F%E5%89%87)」に沿っているとは思います。
32
+
33
+