Python 2.7,Sypder,保留小数点前的有效数字

时间:2017-03-04 14:23:40

标签: python python-2.7 spyder

我想弄清楚如何将所有重要数字保持在一个值中。例如,让我们说我想要价值观' a'和' b':

    a = 00
    b = 00

我希望能够同时保留0'但是如果它只是恢复为' 0'。我已尝试添加小数,'。',' 00'但这只是给出了0.0'作为参考,我使用它来创建我的代码的文件名:

         filename = 'Folder/File' + str(a) + '-' str(b) + '.file'

其中' b'一旦循环完成,将重述:

    b += 10

希望这可以设置为' 01'等等。然后我说如果b达到一定数量,那么' a'价值被重述并且' b'重置为' 00':

    if b > 50:
        a += 1
        b = 00

可能很明显,这是我尝试基本设置一个类似时间的功能。这是因为更改的文件名部分是它们的制作时间。这很令人抓狂,因为我正在处理2670多个文件,我需要一个很好的方法来设置它们进行阅读。

2 个答案:

答案 0 :(得分:0)

在计算a时,您可以使用string formatting创建填充,而不是尝试填充bfilename

filename = 'Folder/File%02d-%02d.file' % (a, b)

答案 1 :(得分:0)

在计算机语言中,数字以二进制形式存储在内部,没有格式化概念。 16,0x10,0b10000是格式化数字16的所有方法。

Python有字符串格式来帮助解决这个问题:

>>> x = 16
>>> format(x,'x') # format as hexadecimal
'10'
>>> format(x,'b') # format as binary
'10000'
>>> format(x,'#x') # hexadecimal with indicator
'0x10'
>>> format(x,'#b') # binary with indicator
'0b10000'
>>> format(x,'4') # decimal with minimal length 4
'  16'
>>> format(x,'04') # decimal with mimimal length 4 and leading zeroes
'0016'

您可以在格式字符串中嵌入格式,并通过索引为同一参数指定不同的格式。下面以三种不同的方式格式化第一个参数(索引0):

>>> '{0} {0:#x} {0:#b}'.format(16)
'16 0x10 0b10000'

在Python 3.6中,有一些新的格式化字符串可以简化语法:

>>> a,b,c=1,2,3
>>> f'{c} {b} {a:02}'
'3 2 01'

对于你的例子:

filename = 'Folder/File{:02}-{:02}.file'.format(a,b)

请参阅Format Specification Mini-Language