Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 6, 2012 12:59:11

rudm
От:
Зарегистрирован: 2009-10-27
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу разобраться с простыми вычислениями.

import math

side_one = 1000
side_two = 7000
side_three = math.hypot(side_one, side_two)

s_sin = side_one/side_three
s_cos = side_two/side_three
s_tan = side_one/side_two

print s_sin, s_cos, s_tan
выводит
IDLE 2.6.3      ==== No Subprocess ====
>>>
0.141421356237 0.989949493661 0
>>>
Почему нуль, если 1000/7000 равно 0.142857142857?



Офлайн

#2 Янв. 6, 2012 13:15:57

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Не могу разобраться с простыми вычислениями.

в начало добавить

from __future__ import division
Результат
0.141421356237 0.989949493661 0.142857142857

Офлайн

#3 Янв. 6, 2012 13:20:02

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

Не могу разобраться с простыми вычислениями.

Потому что side_three содержит флоат
при вычислении

s_sin - результат флоат, т.к. инт/флоат => флоат
так же с косинусом
s_tan - int/int => int

Используешь 2 версию, а в третьей “/” если правильно помню всегда флоат возвращает. На пользу “//” который округляет
код в третьей версии питона
>>> 1000/7000
0.14285714285714285
>>> 1000//7000
0

Офлайн

#4 Янв. 6, 2012 13:47:29

rudm
От:
Зарегистрирован: 2009-10-27
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу разобраться с простыми вычислениями.

Большое спасибо! Вы мне очень помогли. Поставлю наверное третий Python



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version