2013-09-03 3 views
0

공백을 올바른 순차 위치 ('agbdf__'는 원하지 않음)로 바꾸려면 사용자가 입력 한 문자를 '문자'로 입력하고 모든 문자가 입력됩니다. 코드가 이제는 여러 번 문자를 입력해야하며, 'g'문자를 7 번 입력하면 문자가 입력됩니다. 이것은 구현하려고하는 행맨 코드의 일부입니다. 누구든지 이것을 프로그램 할 수있는 올바른 방법을 게시 할 수 있다면 (팁을 구현하는 방법을 찾아 내지 못할 가능성이 높기 때문에), 많은 도움이 될 것입니다. 당신은 순차적으로 교체, 밑줄/당신은 올바른 빈을 교체하지파이썬 공백을 문자로 바꾸기

for i in range(len(letters)): 
    letter = raw_input() 
    index = letters.index(letter) 
    blanks = blanks[:index] + letter + blanks[index + 1:] 
    print blanks 

:

letters='abcdefg' 
blanks='_'*len(letters) 
print('type letters from a to g') 
print(blanks) 
for i in range(len(letters)): 
    if letters[i] in input(): 
     blanks = blanks[:i] + letters[i] + blanks[i+1:] 
     print(blanks) 
+1

하여 [다른 질문을 폐쇄했다]해서 (HTTP : // 유래. co.kr/questions/18544747/python-replace-blanks/18546170 # 18546170)이 반복하여 중복을 만들 수 있다는 의미는 아닙니다. –

+0

당신이 나에게 준 대답에 대해 아무런 설명도하지 않았고 그 질문에 대답 한 사람들은 매우 무례했습니다. 그래서 다시 물어 보면 실제로 나를 도울 해답을 얻었습니다. Burhan. – user2734880

답변

1
는 당신의 루프를 변경

. 대신 교체 할 올바른 공백을 찾아 교체해야합니다. 또한 공백이 완전히 채워질 때까지이 코드가 무한대로 실행되는 것을 기대하지 마십시오. 당신이 그것을 원한다면, 당신은 추측 할 수 있습니다. (귀하의 질문은 정확한 문자를 대체하는 것이기 때문에). 또한이 프로그램이 'abcdef'이외의 입력을 처리해야 할 수도 있습니다.

+0

고마워, 내가 잠시 동안 배우려고 노력 해왔다. 변수를 '.'변수와 연결할 때 호출되는 부분을 알려주시겠습니까? 그래서 나는 그것을 볼 수 있니? 또는, 정확히 '.'무엇이 나에게 말할 시간이 있다면. 이 코드에서 뭐하는거야? – user2734880

+0

'.'은 변수를 연결하지 않습니다. 객체에 속한 변수/메소드 호출. 오늘은 파이썬 튜토리얼 웹 사이트를 방문해야합니다. – TehTris

+0

분명히 아니지만 귀하의 의견에 감사드립니다. – user2734880

0
letters = 'abcdefg' 

print('type letters from a to g') 

all_letters = list(letters) 
blanks = ['_'] * len(letters) 

while True: 
    guessed_letter = input("guess > ") 

    while guessed_letter in all_letters: 
     index = all_letters.index(guessed_letter) 
     all_letters[index] = None 
     blanks[index] = guessed_letter 

    output = ''.join(blanks) 
    print(output) 

    if letters == output: 
     print("gg") 
     break 

아니면 더 힘줄 버전

letters = 'abcdefg' 

print('type letters from a to g') 

all_letters = list(letters) 
blanks = '_' * len(letters) 

while True: 
    guessed_letter = input("guess > ") 

    while guessed_letter in all_letters: 
     index = all_letters.index(guessed_letter) 
     all_letters[index] = None  
     blanks = blanks[:index] + guessed_letter + blanks[index+1:] 

    print(blanks) 

    if letters == blanks: 
     print("gg") 
     break 
0

을 prefere 경우이를위한 지능형리스트를 사용할 수 있습니다. 여기

Type the characters a through g: abdef 
ab_def_ 

를 우수 제조/더 완전한 교수형 집행 예제 :

letters = 'abcdefg' 
typed = raw_input('Type the characters a through g: ') 
print ''.join(s if s in typed else '_' for s in letters) 

샘플 출력 : 다음은 그 예이다 https://gist.github.com/dbowring/6419866

관련 문제