Как напечатать диапазон с десятичными точками в Python? - PullRequest
1 голос
/ 13 марта 2010

Я могу легко напечатать диапазон чисел, используя диапазон, но есть возможность напечатать диапазон с 1 десятичным знаком от -10 до 10?

* 1003 например *

-10.0, -9.9, -9.8 все они до +10?

Ответы [ 5 ]

7 голосов
/ 13 марта 2010
[i/10.0 for i in range(-100,101)]

(.0 не требуется в Python 3.x)

2 голосов
/ 13 марта 2010

Существует рецепт ActiveState , который реализует диапазон с плавающей запятой. В вашем примере вы можете использовать его как

frange(-10, 10.01, 0.1)

Обратите внимание, что это не будет генерировать 1 десятичный знак на большинстве архитектур из-за представления с плавающей точкой . Если вы хотите быть точным, используйте десятичный модуль .

0 голосов
/ 14 марта 2010

Определите простую функцию, например:

def frange(fmin, fmax, fleap):
    cur=fmin
    while cur<fmax:
        yield cur
        cur+=fleap

Позвоните, используя generators, например:

my_float_range=[i for i in frange(-10,10,.1)]

Некоторые проверки работоспособности (например, fmin<fmax) могут быть добавлены в тело функции.

0 голосов
/ 14 марта 2010
print(', '.join('%.1f' % x/10.0 for x in range(-100, 101)))

должен делать в точности то, что вы просите (то есть печатную часть!) На любом уровне Python (довольно длинная строка, конечно - несколько сотен символов! -). Вы можете опустить внешние скобки в Python 2, можете опустить бит .0 в Python 3 и т. Д., Но кодирование, как показано, будет работать во всех выпусках Python.

0 голосов
/ 13 марта 2010

numpy.arange может хорошо служить вашей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...