Я интерпретирую этот вопрос как «Я хочу преобразовать каждый из моих чисел с плавающей точкой в строку, добавляя, однако, сколько нужно пробелов, чтобы сделать их ровно семью пробелами».
На самом деле вам не нужно любые условия для этого.Метод str.format может применить заполнение к вашему значению без необходимости считать десятичные разряды или что-либо еще.
>>> a = 1.0
>>> b = -23.42
>>> c = 5.678
>>> result = "{: 7} {: 7} {: 7}".format(a,b,c)
>>> print(result)
1.0 -23.42 5.678
Если вы думаете "хорошо, но я также хочу, чтобы число отображало ровно три цифрыпосле десятичной точки, даже если они равны нулю ", тогда вы можете сделать:
>>> "{:7.3f} {:7.3f} {:7.3f}".format(a,b,c)
' 1.000 -23.420 5.678'
Если вы думаете" хорошо, но я также хочу, чтобы отступы появлялись после знак, но перед цифрами ", тогда вы можете сделать:
>>> a = -1.0
>>> "{:=7.03f} {:=7.03f} {:=7.03f}".format(a,b,c)
'- 1.000 -23.420 5.678'
Если вы думаете" хорошо, но может ли заполнение быть нулями вместо пробелов? Так что тогда каждое числоимеет ровно две цифры перед десятичной запятой ", тогда вы можете сделать:
>>> "{:0= 7.03f} {:0= 7.03f} {:0= 7.03f}".format(a,b,c)
'-01.000 -23.420 05.678'