2017-03-06 24 views
-2

問題是我已經爲用戶分配了一個案例號,我希望它打印給用戶的號碼,但是它顯示「無」。我正在爲用戶分配一個案例號,我想打印已分配的案例號

Welcome 
Your case number is: 
8239 
Sending data: None 

這是代碼:

while True: 
    print('Welcome') 
    print('Your case number is:') 
    import random 
    variable1 = lambda: random.randint(1, 10000) 
    print(variable1()) 
    state=random.getstate() 
    print('Sending data:',(random.setstate(state))) 
    break 
+0

不要在循環中導入'random',即使它只運行一次。 – nbro

+0

現在我對這個程序的功能感到困惑。爲什麼你有一個** while while循環只執行一次然後中斷?爲什麼在每次迭代中導入隨機數並定義一個lambda函數?你在做什麼工作狀態? – Prune

+0

這只是一個較大程序的一小部分,對不起,我忘了提及。 – TheCompStudentAJ

回答

0

我敢肯定random.setstate回報無。這就是爲什麼None被打印。

我不認爲你需要在這裏與國家混在一起。只需存儲variable1()的結果並打印即可。

while True: 
    print('Welcome') 
    print('Your case number is:') 
    import random 
    variable1 = lambda: random.randint(1, 10000) 
    x = variable1() 
    print(x) 
    print('Sending data:',x) 
    break 

順便說一下,有沒有在具有while循環,如果你無條件地突破它遠點。如果只打算一次調用它,那麼用lambda創建一個函數對象沒有多大意義。所以,你可以在你的代碼簡化爲:

import random 

case_number = random.randint(1, 10000) 

print('Welcome') 
print('Your case number is:') 
print(case_number) 
print('Sending data:',case_number) 
+0

謝謝你的工作 – TheCompStudentAJ

0

setstate沒有返回值;它只是做它的工作。 狀態是您正在設置的值;也許你想打印它,而不是?

如果您只想抓取並打印該範圍內的隨機數,代碼要簡單得多。舉例來說,如果你只需要生成5個號碼:

import random 

for _ in range(5): 
    case_id = random.randint(1, 10000) 
    print("Case #", case_id) 

輸出:

Case # 4842 
Case # 5146 
Case # 6898 
Case # 8274 
Case # 658 

如果你需要的唯一號碼,那麼你就必須保持使用或不使用的號碼清單,檢查每次都要反對。

+0

當我嘗試打印狀態許多數字出現 – TheCompStudentAJ