2017-10-06 75 views
0

我有以下代碼:第一個變量代替他人

from a3_functions import convert_date 

date=int(input('Please enter the date in the format: ddmmyyyy')) 

days, months, years=convert_date(date) 

print("{0:02d}/{0:02d}/{0:04d}".format(days, months, years)) 

print(days) 

print(months) 

print(years) 

但是當我運行它輸出如下:

Please enter the date in the format: ddmmyyyy03061314 
03/03/0003 
3 
6 
1314 

爲什麼我輸出的句子形式只是輸出的第一變量三次?即使當我單獨打印它們時,它們也會打印它們各自的值。

+0

請使用格式化工具,在你的問題來格式化代碼使其更具可讀性。 – ingofreyer

+0

如果我的回答對您有幫助,如果您可以請將其標記爲正確答案,我將非常高興。如果您需要更多解釋,請回答更多問題。 – ingofreyer

回答

0

您的格式字符串使用位置索引(全部爲0,因此取第一個元素)。如果你想保持位置參數

>>> print("{:02d}/{:02d}/{:04d}".format(days, months, years)) 
03/06/1314 

,你可以只是遞增的數字是這樣的::

試試這個格式的字符串,而不是(我基本只在:前所有0移除)

>>> print("{0:02d}/{1:02d}/{2:04d}".format(days, months, years)) 
03/06/1314 

或者,你也可以命名位置使用一個更可讀的格式字符串:

>>> print("{day:02d}/{month:02d}/{year:04d}".format(day=days, month=months, year=years)) 
03/06/1314 

PyFormat擁有新風格的格式字符串一個很好的概述:

款式新格式化是可能的(在Python 2.6甚至 強制性)給佔位符的明確位置索引。

這允許重新排列顯示的順序而不改變參數 。

此操作不適用於舊式格式。

新: '{1} {0}' 格式( '一', '二')

輸出:兩個一