LINUX.ORG.RU

Python округляет число ПИ до 3 целых.

 ,


1

2

Пишу:

import math
print math.pi
Ответ:
3
Python 2.6.6
Может и правда, было бы лучше договориться и приравнять число ПИ к трем целым для простоты вычислений?



Последнее исправление: qumo (всего исправлений: 3)
Ответ на: комментарий от tailgunner

Я не конкретно про проверку переполнения говорил, а про то, что на каждый чих должна вызываться проверка типов, без которой логика летит в тартарары.

imtw
()
Ответ на: комментарий от imtw

Я уже посмотрел: в питоне типы переменных столь же конкретны, как и кот Шрёдингера.

В рантайме они совершенно неспутанны.

baverman ★★★
()
Ответ на: комментарий от imtw

Поэтому питон никогда не станет быстрым, кстати.

Именно по-этому невозможно существование таких вещей как numpy и scipy.

aedeph_ ★★
()
Ответ на: комментарий от imtw

Я не конкретно про проверку переполнения говорил, а про то, что на каждый чих должна вызываться проверка типов

А... я думал, уже все знают о runtime specialization.

tailgunner ★★★★★
()
Ответ на: комментарий от baverman

ТС, если у тебя реальная проблема, то обнови свою OS. mironov_ivan уже проверил — в свежаке всё работает.

Обновился - отвалились иксы! Пишу с livecd.

qumo
() автор топика
Ответ на: комментарий от qumo

Обновился - отвалились иксы!

Добро пожаловать в клаб, бро. Единственная проблема, твой дистр походу умер и никто тебе уже не поможет.

baverman ★★★
()
Ответ на: комментарий от imtw

Вы про это?

Нет, я о технике оптимизации программ.

December 16, 2007; 5 years ago

Что такое 5 лет для человека, свободно оперирующего понятием «никогда»?

tailgunner ★★★★★
()
Ответ на: комментарий от aedeph_

Ровно так же, как и в педоне.

Сколько раз во влажных снах я мечтал переопределить __str__ у datetime, но мое мартышко-фу оказалось бессильным перед суровым бородачем.

baverman ★★★
()
Ответ на: комментарий от aedeph_

Cпасибо. Поправил точность пи. Теперь у меня как у всех: Math::PI==3.

blan4
()
Ответ на: комментарий от tailgunner

Нет, я о технике оптимизации программ.

Полностью она проверок типов снять не может. Для функции двух переменных эта оптимизация может снять только одну проверку, что будет полумерой в прямом смысле.

imtw
()
Ответ на: комментарий от tailgunner

datetime плохой пример. Есть примитивные типы, и куча (41 в 2.7) модулей которые грузятся перед __main__ и хрен знает кто и где сохранил ссылки на их содержимое. Поэтому замена класса чревата нежданчиками.

Может оно и к лучшему, иначе бы все руби-хипстеры сидели на питоне.

baverman ★★★
()
Последнее исправление: baverman (всего исправлений: 1)
Ответ на: комментарий от baverman

Я не слишком далеко вверх лез по вашей ветке, у вас обсуждение кастрированного манки-патичнга в питоне?

cdshines ★★★★★
()
Ответ на: комментарий от tailgunner

Подробнее, пожалуйста. Ну, пусть у меня такой код:

def f(x):
    for i in [a,b,c,d,e, ...]:
      x + i

Если действовать по-моему, то хотя бы для x можно проверку типов отбросить. По-вашему - нет.

imtw
()
Ответ на: комментарий от chinarulezzz

в твоём дистре?

Так сложно разделить на два. Даже последний идиот это может сделать в столбик. 1. Опять же, по всей вероятности округленная до целого числа.

qumo
() автор топика
Ответ на: комментарий от tailgunner

Ну и да, мне кажется, что вместо

if type(a) == foo and type(b) == bar:
    optimized_foo_bar_alg(a, b)
else:
    get_trace_and_optimize(alg, (a, b))

лучше просто

optimized_foo_bar_alg(a, b)
imtw
()
Ответ на: комментарий от qumo

Так сложно разделить на два. Даже последний идиот это может сделать в столбик. 1. Опять же, по всей вероятности округленная до целого числа.

пардон, а ты о чём вообще? :-D

chinarulezzz ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.