我的代碼生成隨機數加權是獲取Nonetype()<= INT()
但是,我發現了一個錯誤
output expected .05 output received .06
問題是與eval_autograder(N),但如何能在修復這個顯示直方圖?
我的代碼生成隨機數加權是獲取Nonetype()<= INT()
但是,我發現了一個錯誤
output expected .05 output received .06
問題是與eval_autograder(N),但如何能在修復這個顯示直方圖?
這裏是無來源:
>>> 100 in range(95,100)
False
>>>
但我該如何顯示直方圖?我需要4條從最小(0.69)到最高(90,100) – user3486852
現在我得到錯誤輸出預期:D 0.05收到的輸出:D 0.06 – user3486852
有你的隨機數的範圍,你在你的if
和elif
語句測試範圍之間的不匹配。 random.randint
在其參數之間生成一個隨機數,包括兩個端點。另一方面,range
包含其起始值,但不包含其最終值。
當randint
生成數字100時,它將不會被您的if
s檢測到,所以您會掉到該函數的底部,Python將返回None
。這就是爲什麼你稍後在代碼中出現錯誤。
作爲快速修復,請使用random.randrange
而不是random.randint
。這會在0-99範圍內生成一個隨機數,這是您的代碼檢查的內容。
進一步改善可能是不使用range
可言,因爲你可以簡單地做低於比較,達到同樣的效果:
def autograder():
i = randrange(0,100) # changed function here, generates numbers 0-99
if i < 45:
return randint(90,100)
elif i < 80:
return randint(80,89)
elif i < 95:
return randint(70,79)
else: # this catches i < 100, but we don't need to specify it exactly
return randint(0,69)
我離開的返回值,因爲他們,但你可能如果您不希望返回值包括0
和100
,也希望將第一個randint
更改爲randrange
(或者只是調整邊界)。
我將如何修復直方圖呢?就像我將如何顯示直方圖? – user3486852
這聽起來像一個不同於你最初問的問題。恐怕我不太瞭解Python的繪圖庫能夠幫助解決你的問題。 – Blckknght
你使用Python 2.7還是Python 3.x?您已經使用了兩個標籤,但它們的行爲卻非常不同。您還必須在某處調用此函數,但不顯示該代碼。需要更多信息。 –
@MatthewTrevor plz看到了變化。我正在使用Python 3 – user3486852
回溯還應該顯示錯誤發生在哪一行,您是否也可以包含該錯誤? –