回答
對於您在IDLE中的問題,我會定期嘗試flushing the stdout以查看它是否有幫助。
有關您的代碼如下一些意見:
關於使用全局變量,在大多數情況下,你可以簡單地通過函數參數代替其使用。當你(認爲你)需要修改一個全局變量時,通常你會選擇寫錯的函數。作爲一個例子,絕對不需要在generate()中設置猜測變量,你可以在play()中完成。
而不是
allowed = ('0','1','2','3','4','5','6','7','8','9','0','+','*')
, 考慮import string ; allowed= list(string.digits+'+'+'*')
。在解釋器中執行dir(string)
以獲得更有用的變量。沒有必要評估布爾值的相等性。
while (numguesses < maxguesses) and flag==True:
應該是while (numguesses < maxguesses) and flag:
play_again()
是不必要的遞歸。s1 = secret[0] ; s2 = secret[1]
可能是s1,s2=secret[:2]
for i in range(max): ; num = num + str(randint(0,9))
可以改寫爲"".join([str(randint(0,9)) for i in range(max)])
。有些人會認爲第一個更具可讀性,您可以自行決定。
最後這一點:
if (i%2 == 0):
evaluated = evaluated + s1
else:
evaluated = evaluated + s2
可以簡單地通過evaluated= (evaluated+s1) if not(i%2) else (evaluated + s2)
取代。 我認爲你實際上並不需要括號,但它們增加了可讀性,恕我直言:
很明顯,關於代碼的一般結構還有很多可以說的,我試圖專注於python語言功能,你可能不會此時知道
非常感謝,我設法清理了一些並刪除了5個變量! – userrandomnums
- 1. dataTaskWithURL有時沒有返回
- 2. 當運營商沒有返回記錄時返回null或零
- 3. 有沒有辦法阻止SQL Express 2008怠速?
- 4. 設置時區沒有被優化
- 5. Light.exe在沒有變化時運行
- 6. SLComposeViewControllerResultDone在沒有連接時返回
- 7. textboxfor在提交時沒有返回值
- 8. 返回沒有在適當的時候
- 9. 迴歸沒有在R運行時?
- 10. 設備方向有時在旋轉速度太快時返回未知值
- 11. 運行時優化
- 12. Urllib2 - 返回有時沒有,有時頁面內容
- 13. 當我沒有返回值時將回調轉換爲Promise
- 14. tmdb什麼也沒有返回,有時返回值
- 15. 優化具有小時
- 16. Python3分區:當沒有餘數時返回int,當有餘數時返回float。
- 17. 沒有JIT優化
- 18. Zend Framework - fetchAll在沒有行返回時返回致命錯誤?
- 19. 如何在沒有行從表返回時返回默認值
- 20. Zend_Db_Adapter_Abstract :: fetchOne在失敗時返回什麼(即沒有行返回)?
- 21. 返回false有時
- 22. c#sql日期沒有時間返回
- 23. @@ IDENTITY沒有時SCOPE_IDENTITY如何返回null?
- 24. 空集返回時沒有錯誤
- 25. Calendar.getInstance(TimeZone.getTimeZone(「UTC」))沒有返回UTC時間
- 26. ANY和ALL時沒有行返回
- 27. ISNULL()時沒有記錄返回
- 28. 如何返回時,沒有發現
- 29. select()返回時沒有傳入連接
- 30. Salt請求超時 - Minion沒有返回
請確保此處的縮進與您的程序中的縮進相同;例如,它在'def play_again():'之後關閉。 –
這聞起來像功課。 –
#2,你應該在代碼審查中發佈這樣的內容:http://codereview.stackexchange.com/。 @GamesBrainiac,它可能是家庭作業,但具體足夠通過。 – lolopop