簡體   English   中英

用列表中相同位置的相同字母替換字符串中的字母 - Python

[英]Replacing a letter from a string with that same letter in the same position in a list - Python

我是一名 Python 初學者,並且在制作基本的劊子手游戲時遇到了最困難的時期。 當猜到一個正確的字母時,我應該填寫空白。 只是在尋找一種簡單的初學者方法來做到這一點。 這就是我正在嘗試但目前不起作用的方法:

word = random.choice(word_list)
word_dis.append("*" * len(word))
for chtr in word:
     chtr_pos = word.find(current_guess)
     print(chtr_pos)
     if chtr == current_guess:
          word_dis[chtr_pos] = chtr

我得到:

 list assignment index out of range

嘗試這個:

word = random.choice(word_list)
word_dis = list("*" * len(word))

num_guesses = len(word)
while(num_guesses > 0):
    current_guess = input("Enter your guess")
    chtr_pos = word.find(current_guess)
    if chtr_pos is not -1:
        word_dis[chtr_pos] = word[chtr_pos]
    num_guesses -= 1
    print(word_dis)

我試圖將它盡可能分解,以便您可以拼湊如何創建它並使其成為您自己的。

word = 'random'
word = list(word)
blank = '-'*len(word)

while blank != ''.join(word):
    print(blank)
    letter = input('Enter a letter: ')
    if letter in word:
        x = word.index(letter)
        for idx, item in enumerate(blank):
            blank = list(blank)
            blank[x] = letter
            blank = ''.join(blank)
    else:
        continue

print('Congratulations! The word was {}'.format(''.join(word)))

我使用了一個預先選擇的單詞,因為我沒有你的單詞列表。

你可以做的是讓你的單詞成為一個list它現在每個字母都有自己的index ,我們可以從那里制作一個相同長度的blank占位符。

接下來我們可以創建一個循環,直到它們匹配為止,這里我使用''.join(word)作為比較來維護list版本但仍然能夠比較。

然后我們可以猜測letterif letter in word那么我們可以從單詞word.index(letter)獲取該字母的索引,有了這個索引,我們現在可以enumerate(blank)這允許我們訪問item and index和我們可以在一個list版本的blank''.join(blank把它放回一起替換相應的index

這個過程將繼續直到兩個單詞匹配,然后在循環中斷后我們可以打印我們的Congratulations

把它變成你自己的,但這只是一個讓你動起來的模板,干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM