2016-01-23 31 views
-4
def game(digits): 
    five_digit = "" 
    for x in range(digits): 
     five_digit = str(random.randint(0, 9)) 
     five_digit += five_digit 

正常工作,當我打印five_digit我得到的22輸出,885533錯字 - For循環不爭論

回答

2

這麼多的問題:

  • 變量和函數命名很差;爲什麼game返回一串數字?爲什麼字符串five_digit是任意數字的字符?

  • 您的縮進在您的問題和解決方案中都被打破。現在已修復

  • 重複字符串連接速度慢; str.join是一個更好的方法(雙關語意)

嘗試,而不是

from string import digits 
from random import choice 

def digit_string(length): 
    return "".join(choice(digits) for _ in range(length)) 

也許

from random import randint 

def digit_string(length): 
    return "{0:0{1}d}".format(randint(0, 10**length - 1), length) 
+0

我試圖縮短我的代碼,然後當我介紹我的論點不斷變化的變量名稱,我只是不斷想念他們,然後當我複製並粘貼到我的問題的代碼我的縮進混亂了,然後我沒有檢查我剛剛發佈,下次我一定要檢查通過我的代碼徹底。 – Navin

+0

請問我應該怎樣稱呼我的函數和變量? – Navin

+1

@Navin:函數和變量名稱應該是文檔的第一級 - 它們應該表明你如何使用它們的*含義*。你應該能夠把你的代碼展示給一個完全陌生的人(編者:誰是能幹的程序員),他們應該能夠弄清楚它在做什麼。顯然,這比藝術更具藝術性; - / –

1
def game(digits): 
    five_digit = "" 
    for x in range(digits): 
     digit = str(random.randint(0, 9)) 
     five_digit += digit 

我知道我在哪裏出了問題,我的for循環被覆蓋five_digit