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 루프의 경우 점수 (스트라이드)가 100이 아닌 한 it 반복하고 n을 쌓을 것입니까? 그럼 난 점수 (스트)이 동일 (100)while 루프를위한 파이썬 카운터 혼동
에 무슨 일이 있었 축적 된 N을, 인쇄 출력 할 수 있습니다하지만이 같은 결과를 얻었다 : 분명히
0
0
0
0
0
0
...
항상 'N = 0'하고 출력하기 것; 이것은 글로벌 변수이기 때문입니다.
하지만 다음 루프 동안 매우 쉽게 시도 : 루프 때문에 def()
의 잘못된 STH을 느끼는 동안
n=0
while n <= 5:
n += 1
print(n)
성공적으로 내 첫 번째 코드가 잘못 왜 모르겠어요 6
을 출력하는 것은 추측?
'score'의 값을 반환하지 않으므로 인쇄 중이므로 'score'는 'None'을 반환합니다. 그리고'None! = 100'은 항상 거짓으로 평가 될 것입니다. –
사용중인 튜토리얼을 계속 진행하고, 기본적인 질문과 같은 질문보다는 기능에 관한 부분을 읽어보십시오. – TigerhawkT3
기록을 위해,이 예제 코드는 모든 의도와 목적을 위해 무한 루프입니다. 28 개 값 각각에 대해 27 개의 옵션이 있으며, 28 개 값 각각은 루프가 끝날 때까지 '목표'와 일치해야합니다. 우연히 발생하는 확률 (확률을 0으로 줄일 수있는 PRNG 출력에서의 사이클 문제를 무시 함)은 27 * 28에서 1입니다. RNG가 정말로 무작위 적이라면 (사이클이 안됨) 132 비트가 넘을 것입니다 목표를 달성 할 확률이 50 %가되기도 전에 비교를 위해, AES128은 무력에 불가능한 것으로 간주되며, 그 작업은 128 비트에 불과합니다. 이것은 10 배 이상입니다. – ShadowRanger