2013-10-01 5 views
1
python -c "print float(7/3)" 

печатает 2,0 на моем компьютере. Что я делаю не так?Почему python -c "print float (7/3)" print out 2.0

Это то, что я использую:

Python 2.7.4 (default, Apr 19 2013, 18:28:01) 
[GCC 4.7.3] on linux2 
+0

Если вы хотите использовать python -c для калькулятора командной строки, я предлагаю вам проверить pythonpy (https://github.com/russell91/pythonpy). Вы можете сделать это как: py 7/3 => 2.3333333 – RussellStewart

ответ

13

7/3 является целочисленное деление на Python 2 и, таким образом, возвращает 2 (int). Затем вы конвертируете это в float, что дает 2.0.

Возможно, вам понравилось float(7)/3, 7/float(3), 7.0/3 или 7/3.0.

Также обратите внимание, что вы можете сделать from __future__ import division так, чтобы деление было плавающей точкой по умолчанию (тогда вы используете // для целочисленного деления).

+0

Хорошее объяснение. То, что OP вероятно _wanted_ было 'print float (7)/3'. (Или, проще говоря, '7.0/3'.) – abarnert

+0

дополнительная точка, целые деления усечения :) – ohmusama

+6

@ohmusama: Нет, это _floors_. '7/-3' -' -3', а не '-2'. – abarnert