당신은 세 가지 문제를 가지고 내가 볼 수 있습니다
"cab "
에 공백이, 그리고 LETTERS
이 없습니다 우주. 따라서 공간을 추측 할 수는 없습니다.
guess
을 재설정하지 마십시오. 당신은 단순히 계속 계속 추가합니다.
- for 루프에서
LETTERS
을 변경하므로 while 루프의 두 번째 반복에서 완전히 비어있게됩니다. 다음 _LETTERS = "abc"
correct = "cab"
guess = ""
while guess != correct:
LETTERS = _LETTERS[:]
guess = ""
for i in LETTERS:
position = random.randrange(len(LETTERS))
guess += LETTERS[position]
LETTERS = LETTERS[:position] + LETTERS[(position + 1):]
print(guess)
난 당신이 무슨 말을 하려는지 인 (임의의 검색을 수행 할 방법은 다음과 같습니다
이 난 당신이 (최소한의 수정으로) 수행하려고하는 일을 가겠어요 어떻게 해야 할 일 :
guess = "abc"
correct = "cab"
while guess != correct:
guess = list(guess)
random.shuffle(guess)
guess = ''.join(guess)
print(guess)
print(guess)
물론 "cab"
을 올바르게 추측하는 더 좋은 기술이 있습니다. 철저한 검색을 실제로하고 싶다면 역 추적 DFS를 사용할 수 있습니다 :
def DFS(letters, correct, sofar=None)
if sofar is None:
sofar = ''
if not letters:
if sofar == correct:
print("Yay! I found it")
else:
print("Oops! I found %s instead" %sofar)
else:
for i,char in enumerate(letters):
DFS(letters[:i]+letters[i+1:], correct, sofar+char)
올바른 값을 공백으로 끝내시겠습니까? –
그리고 실패한 후에 추측을 재설정하겠습니까? – user2357112
OP는 for 루프의 모든 반복에서'LETTERS '도 변경합니다. while 루프 내에서 즉시 myLetters = LETTERS [:]로 문자의 사본을 변경해야합니다. (다시'추측 '을 재설정하십시오.) – inspectorG4dget