import random, string
goal='methinks it is like a weasel'
def simulation(length):
return ''.join(random.choice('abcdefghijklmnopqrstuvwxyz ') for i in range(length))
def score(stri):
if stri==goal:
print(100)
else:
print(0)
n=0
stri='abcd'
while score(stri) != 100:
n += 1
stri = simulation(28)
print(n)
最後のwhileループでは、スコア(stri)が100に等しくない限り、繰り返し、nを累積します。それから私は、スコア(STRI)が等しい100whileループのPythonカウンタの混乱
に起こっ蓄積nは、プリントアウトだろう。しかし、私は次のような結果を得た:明らかに
0
0
0
0
0
0
...
それは常に「N = 0」outputingています。これはグローバル変数なのですから?
しかし、私は、ループがしながら、非常に簡単に試してみました:ループが原因def()
の間違ったSTHを取得しながら
n=0
while n <= 5:
n += 1
print(n)
それが正常に私の最初のコードがうまくいかない理由を私は知らない6
を出力していますが、推測しますか?
'score'から何も返されていないので、あなたは印刷しているだけなので、' score'は 'None'を返します。そして、「None!= 100」は常にfalseと評価されます。 –
あなたが使っているチュートリアルを続けて、この種の基本的な質問をするのではなく、機能に関する部分を読んでください。 – TigerhawkT3
レコードの場合、あなたが与えたこのコード例は、すべての目的と目的のために、無限ループです。 28個の値のそれぞれに27個のオプションがあり、28個の値のそれぞれは、ループが終了するための 'goal'と一致する必要があります。偶然に起こる確率(PRNG出力のサイクルの問題を無視して、オッズを0に減らす可能性がある)は、27 ** 28で1です。あなたのRNGが本当にランダム(循環はない)であっても、132ビットあなたの目標に達する可能性が50%に達する前に仕事の比較のため、AES128は無理な力では不可能だと考えられており、それはわずか128ビットの作業です。これは10倍以上です。 – ShadowRanger