2017-12-05 1 views
0

は、次のPythonの関数を考えてみます。Pythonの関数time.time(の奇妙な行動)

def prandom(): 
    t = time.time() 
    s = t - int(t) 
    s = str('{0:.16f}'.format(s)) 
    print s 
    s = int(s[5]) 
    print(s) 
    return s 

素朴な意図が擬似ランダム数字を取得することです。 しかし、どうやって何回(Windows 10マシン上で)何度も機能を実行しても、0か9のどちらかが得られます。私が紛失しているものはありますか?

+0

私は時間がWindowsで返されるかについての奇妙なOS Xの何かに、ここからすべての10桁の数字を取得しますか? – khelwood

+0

私もWindows上で10桁すべてを取得しています。 –

+0

私のための仕事2.7.10。ところで、 'format'の周りに' str() 'は必要ありませんが、出力には影響しません。 – cdarke

答えて

0

あなたのコード内のいくつかの変更、より良いあなたの関数を変更します。

def prandom(): 
    t = time.time() 
    return str("{0:.16f}".format(t))[-1] 

これは、乱数を生成するための最良の方法は、ランダム関数にランダム

インポートを使用することで、すべての値

を与えます

a = random.randint(0, 9) # two argument will generate number between those numbers 
print a # random digit from 0 to 9 

OUTPUT

8