2017-10-13 162 views
0

所以我剛開始嘗試使用python,並且我學習了一些與Im試圖創建hangman遊戲的命令。如果玩家第一次找到一封信,程序就會正常工作,並將丟失的字母顯示爲'_',將字母顯示在正確的位置上。但是,如果玩家發現第二個字母,則該字會重置並顯示它的內容中的第二個字母,缺少的字母顯示爲'_'。有沒有可以幫助我解決這個問題的命令?香港專業教育學院使用該代碼爲部分Python-如何防止變量在while循環中重置

word = input('Give word:\n') 
word = word[0].upper()+word[1:] 
wordC =word[1:-1] 
wordUkn = ' _ '*len(wordC) 


while '_' in wordUkn and mist < 3 :  
    ans=input('Give a letter:\n') 
    if ans in wordC : 
      pos=wordC.index(ans) 
      wordUkn=(' _ '*pos)+str(ans)+' _ '*(len(wordC)-(pos+1)) 
      print(word[0]+wordUkn+word[-1]) 

霧=錯誤 ANS =回答

而且如果進出口新這裏,所以如果有什麼我應該做不同的看法張貼問題,請通知我。 我也會讚揚它,如果有人能告訴我如何處理這個世界包含2次相同的信件的情況。 謝謝你的時間。 :)

+1

相關:https://stackoverflow.com/questions/11122291/python-find-char-in-string-can-i-get-all-indexes – jarmod

回答

0

我知道你想填寫wordUkn變量,因爲用戶發現每個字母。

爲了替換Python中字符串的字符,有一個更簡單的方法: 您可以將字符串更改爲列表,更改已有列表索引中的字符,然後將列表轉換爲字符串,一個小例子在這裏:

pos = 5 
s = 'good dye' 
li = list(s) 
li[pos] = 'b' 
s = "".join(li) 

如果用當前找到的字母替換'b',就完成了!

+0

非常感謝,這真的很有幫助。 不幸的是,由於我的聲望水平,我無法讚揚你。 –

+0

不用擔心,我很樂意幫助:) – agelakis