2017-03-06 7 views
-2

問題は、ユーザにケース番号を割り当てて、ユーザに与えられた番号をプリントしたいのですが、ただし、「なし」と表示されます。私はrandom.setstate戻りなしかなり確信して私はケース番号をユーザに割り当てています。割り当て済みのケース番号を印刷したい

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

ループ内で「ランダム」をインポートすることはありません。 – nbro

+0

私は今このプログラムが何をしているのか混乱しています。なぜあなたは** whileループを一度だけ実行してから壊れるのですか?なぜあなたはランダムにインポートし、各反復でラムダ関数を定義していますか?プロセス状態で何をやっていますか? – Prune

+0

大きなプログラムのほんの一部でした。申し訳ありませんが、私は言及するのを忘れました。 – TheCompStudentAJ

答えて

0

Welcome 
Your case number is: 
8239 
Sending data: 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は、戻り値はありません。単にその仕事をしているだけです。 状態は設定している値です。代わりにそれを印刷したいでしょうか?

この範囲の乱数を取得して印刷したい場合、コードははるかに簡単です。あなたはユニークな番号が必要な場合は、あなたがチェックし、使用済みまたは未使用の番号のリストを維持する必要があります

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

import random 

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

出力:たとえば、あなただけの5つの数字を生成する必要がある場合それに対して毎回

+0

状態を印刷しようとすると、多くの数値が表示されます – TheCompStudentAJ

関連する問題