2017-11-20 1 views
0

추측 한 문자 입력과 추측 할 수있는 비밀이 주어진 행맨 스타일 출력을 반환하는 함수를 작성하려고합니다. 나는 새로운 목록 a-으로 설정하여 비밀의 길이만큼 시작합니다. 그런 다음이 변수를 반복하고 테스트합니다. a[stepper] == letter 여기서 letter은 반복 할 때 워커입니다.Python에서 스테퍼 변수를 사용하여 목록을 반복하는 방법은 무엇입니까?

현재이 스텝을 추적하기 위해이 코드

a = ["-"] * len(secret) 
for curr in guessed: 
    letter_count = 0 # Stepper 
    for letter in secret: 
     if curr == letter: 
      a[letter_count] = curr 
     letter_count += 1 

이되어 사용하고 내가 여기에 사용하고 같은 letter_count에 대한 기능 내장? 이 같은

+0

무엇입니까'A' : 문자 또는 -을 표시 할 필요가있는 경우에 추측은 set과 삼항 연산자 검사에 저장됩니다? ... – DeepSpace

+0

@DeepSpace'a'는 설정된 길이의 대시리스트입니다 – Travis

+0

'a == '-'* len (secret)','curr'이 언제' '? –

답변

3

사용 enumerate() 내장 기능 :

a = ['-'] * len(secret) 
for curr in guessed: 
    for i, letter in enumerate(secret): 
     if curr == letter: 
      a[i] = curr 
+0

변수'a'는'list' 또는'dict'이어야합니다. 'list'의 경우'secret'와 같은 길이를 가져야합니다. –

+0

a는 비밀 번호와 같은 길이의 목록입니다 – Travis

+0

새로운 'a'리스트를 만드시겠습니까? –

3

동적 join과 이해로 표시된 단어를 만들 수 있습니다.

>>> word = "hangman" 
>>> guessed = set() 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-------' 
>>> guessed.add('a') 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-a---a-' 
>>> guessed.add('m') 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-a--ma-' 
>>> guessed.add('e') 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-a--ma-' 
>>> guessed.add('n') 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-an-man' 
관련 문제