2017-03-04 24 views
1

我想弄清楚如何將所有有效數字保留在一個值中。因此,例如,讓我們說我想要的值「A」和「B」:Python 2.7,Sypder,保留十進制前的重要數字

a = 00 
    b = 00 

我希望能夠保留兩個0的,但如果它只是恢復到「0」。我曾嘗試在'00'後添加小數點'。',但這只是給出'0.0'。僅供參考,我使用它來創建一個文件名我的代碼如下:

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

,其中「B」將重申一次循環爲:

b += 10 

,希望這將a設置爲'01'等。然後我指出,如果B到達一定數量,則「A」值重申和「b」重置「00」:

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

由於可能是明顯的,這是我的嘗試初步建立了「時間'般的功能。這是因爲改變的部分文件名是它們被創建的時間。這令人生氣,因爲我正在使用2670多個文件,我需要一個很好的方式來設置它們以供閱讀。

回答

0

,而不是試圖墊ab,你可以使用string formatting創建填充,當你計算filename

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

請你再解釋一下嗎?我不是最好的編碼python :( –

+0

@EoinMansfield我編輯的鏈接應該解釋的東西 – Mureinik

+0

謝謝,我可以用它來幫助寫入文件名,但現在當我在做'if'語句時,它聲明它需要一個數字而不是一個字符串D:<。所以現在我需要將它轉換爲一個數字,同時保持'00'格式這是我得到的那是給我的錯誤 'if if s1> 50:' 'm1 + = 1' 's1 ='%(s)02d'%{「s」:00}' –

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