2016-08-18 18 views
0

我有以下腳本,似乎是一個錯誤:與數字Python腳本錯誤01

import random, time 
from random import randint 

while True: 
    part_1 = randint(1,31) 
    part_2 = randint(1,12) 
    part_3 = random.choice([81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,00,01,02,03,04]) 

    if part_3 == 01 or part_3 == 1: 
     part_3 = 0 + part_3 
    full = str(part_1) + " " + str(part_2) + " " + str(part_3) 
    print full 
    time.sleep(1) 

在part_3我想使它所以它是01,但它只是打印關爲1。我想與2,3等相同的行爲。我該怎麼做?

+0

請編輯您的帖子,包括源代碼,直接在問題備選答案。外部鏈接可能不會永遠持續,未來的用戶將無法在沒有代碼的情況下閱讀和理解您的問題。 –

回答

2

變化full到你的宣言:

full = "%02d %02d %02d" % (part_1, part_2, part_3) 

你可以閱讀更多關於格式字符串here

+0

TypeError:%d格式:需要一個數字,而不是str – Ted6794

+1

@ Ted6794不要將整數轉換爲字符串;把它們作爲整數留在元組中。 – jacob

0

使用str.format

part_1 = randint(1,31) 
part_2 = randint(1,12) 
part_3 = random.choice([81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,00,01,02,03,04]) 

full = ('{:02d} '*3).format(part_1, part_2, part_3).rstrip() 
# '16 09 97'