2014-05-05 104 views
0

我在想如果字符串中有多余的字符和列表,你会怎么显示。让我更好地解释一下。假设你有一个清单“_”表示一个空格符号:显示一个字符串中是否有多余字符

word = ["_","_","_","_"] 

现在,假设你有一个字符串:

string = "door" 

比方说,你希望用户猜词是通过输入什么字符Hang子手式。如果他们的猜测是正确的,那么您希望该字符在字符串中的同一位置处的“字”数组中,所以如果他们猜测“d”,则“字”列表将如下所示:

word = ["d","_""_""_"] 

它会打印出来看起来像“d _ _ _”。到目前为止,我没有任何问题,但是当显示冗余字符时,我遇到了问题。例如,如果用户猜测“O”,我似乎无法在“门”与阵列同时显示“O” S,它总是看起来是这样的:

word = ["_", "o", "_", "_"] 

我希望它看起来像这样的:

word = ["_", "o", "o", "_"] 

现在,请注意,这个问题是非常相似,我的最后一个,但一个没有解释如何在列表中显示出来。我也不确定这是否曾被问过,我还没有发现任何类似的问题,但仍然可能会有一些。我只是很困惑,我不知道还有什么要做!感谢您的时间。如果我通过提出这个问题来破坏一个stackoverflow命令,我很抱歉。

+0

告诉我们代码是''“_”,“o”,“_”,“_”]' – mhlester

回答

0

你需要循环的话,每次:

ans = 'door' 
word = ['_' for _ in ans] 

while '_' in word: 
    guess = raw_input('Guess a char') 
    for i, c in enumerate(ans): 
     if guess.lower() == c.lower(): 
      word[i] = c 
    print word 

为了避免问题的情况下,在输入和c使用str.lower

输出:

Guess a char 
d 
['d', '_', '_', '_'] 
Guess a char 
o 
['d', 'o', 'o', '_'] 
Guess a char 
r 
['d', 'o', 'o', 'r'] 

Process finished with exit code 0 
0

您目前修改word的方式是什么?为了确保每个字符都会出现,您可以遍历string:如果i处的索引string中的字母等于猜测值,请设置word[i] = guess。这可确保所有信件都会被捕获。

0

这将是很高兴看到你有什么代码,到目前为止,能够为您指出正确的方向,但看看这个:

def check_guess(word, guessed_character, guess_list): 
    if guessed_character in word: 
     for index, character in enumerate(word): 
      if guessed_character == character: 
       guess_list[index] = character 

    return guess_list 

WORD = 'door' 
guess_list = ['_'] * len(WORD) 

while '_' in guess_list: 
    guessed_character = raw_input() 
    print '{}'.format(check_guess(WORD, guessed_character, guess_list)) 
0

因为我想看看我能得到这是一个内衬:

string = 'door' 
guesses = ['o'] # fill this in as you get guesses 
word = [i in guesses and i or '_' for i in string] 
+0

对不起,我的错误。显然今天有点触发快乐。 –

+0

@SteinarLima吓了我一秒钟:P –

0
word = 'door' 
blanks = ['_' for x in word] # easy way to generate blanks from word 
guess = 'o' 
[guess if x == guess else '_' for x in word] #=> ['_','o','o','_'] 
相关问题