2013-08-08 2 views
3

Я использую некоторые старые коды, написанные на Python 3 в моем проекте Google-App Engine, который использует Python 2.7. Различные алгоритмы round() в Python 3 и Python 2 дают мне головную боль. Есть ли удобный способ реализовать метод round() Python 3 в Python 2.7?Реализация функции Python 3 в Python 2.7

Еще один вопрос: Python 2 и Python 3 обрабатывают целые операции совсем по-другому. Например, следующие операторы имеют различные выходы в Python 2 и 3:

2/4 # 0 in Python 2, 0.5 in Python 3 
round(3/2) 
math.ceil(0.5) # 1.0 in Python 2, 1 in Python 3 

Любой простой способ для преобразования кодов из Python 3 на Python 2, сохраняя при этом поведение, чтобы быть точно такой же?

Спасибо!

+0

Используйте 'from __future__ import division', чтобы получить поведение деления py3.x в py2.x. –

ответ

4

Банковское округление выполнено в future. Поплавковое деление можно сделать по умолчанию с импортом __future__.

from __future__ import division 
from future.modified_builtins import round 
+2

Я пробовал «from future.modified_builtins import round» в моем Python 2.7 и получил сообщение ImportError: Нет модуля с именем future.modified_builtins. Я не могу получить полезные результаты об этой библиотеке «future.modified_builtins». Что-то здесь не так? –

+0

Попробуйте сначала установить его? –

+1

Я специально не установил его. Только стандартные библиотеки Python 2.7 и GAE. –

Смежные вопросы