2016-06-21 139 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) 

百萬美元的問題是,爲什麼這可能不是一個好主意......

相關問題