2016-06-21 137 views
2

假设rand_word是字符串= 'petite'guess是单个字符Python - 如何将字符串结果放入if变量中?

for char in rand_word: 
    if char in guess: 
     print(char,end='') 
    else: 
     print('_',end="") 

的代码的用户输入上面,如果我输入的字母“E”作为我的输入 它将输出这个

_e___e 

我的问题是如何把这个输出放在一个变量中?

回答

1

把你的角色在列表中,并加入它str.join()

result = [] 
for char in rand_word: 
    if char in guess: 
     result.append(char) 
    else: 
     result.append('_') 
result = ''.join(result) 

使用条件表达式和列表理解,你可以把所有这一切在同一行:

result = ''.join([c if c in guess else '_' for c in rand_word]) 
+0

嗨, 我正在使用python一个刽子手游戏,我用了你提供的代码和它的工作。 但我的问题是,只要我输入一个字母,它会输出让我们说在'娇小',如果我输入字母'e'的输出是>> _e___e 但是,当我输入另一个字母可以说字母't'它会输出>> __t_t_ 我要的是第一输出也包括像这样,每当我得到一个正确的字母>> _e_t_te 这里是我的代码: http://pastebin.com/HrV27pxT – rccnls27

+0

@ rccnls27:这是最好,如果你把它放在一个* new *问题中;一旦你目前的问题得到解决,评论不是一个很好的地方去问你遇到的新问题。你还需要记住以前的猜测。做一个列表或设置'guesses'并添加每个'guess'字母,然后使用'if char in guesses'。 –

0

另一种方式要做到这一点:

result = [char if char in guess else "_" for char in rand_word] 
str_result = "".join(result) 
0

更简单,也许

to_print = "" 
for char in rand_word: 
    if char in guess: 
     to_print += char 
    else: 
     to_print += '_' 
print(to_print) 

百万美元的问题是,为什么这可能不是一个好主意......

相关问题