2015-01-04 4 views
0

У меня проблема, когда в игре Hangman есть слово, подобное счастливому, оно только добавляет 1 'p' в список ... запустите мой код и, пожалуйста, скажите мне, что делать? проверить мои петли.Повторяющееся слово в игре палача Python

import random 
import time 
File=open("Dict.txt",'r') 
Data = File.read() 
Word = Data.split("\n") 

A = random.randint(0,len(Word)-1) 

Dict = Word[A] 

print(Dict) 
Dash = [] 
print("\n\n\t\t\t","_ "*len(Dict),"\n\n") 
i = 0 
while i < len(Dict): 

    letter = str(input("\n\nEnter an alphabet: ")) 
    if letter == "" or letter not in 'abcdefghijklmnopqrstuvwxyz' or len(letter) != 1: 
     print("\n\n\t\tPlease Enter Some valid thing\n\n") 
     time.sleep(2) 
     i = i - 1 

    if letter in Dict: 
     Dash.append(letter) 
    else: 
     print("This is not in the word") 
     i = i - 1 


    for item in Dict: 
     if item in Dash: 
      print(item, end = " ") 
     else: 
      print("_", end = " ") 

    i = i + 1 

ответ

1

Ошибка с «перерывом» на линии 25: как только вы залили в одном пространстве с буквой «р», цикл прерывается и не заполнит во втором пространстве с «р».

Вы должны иметь переменный флаг, чтобы помнить ли какое-либо пространство было успешно заполнено, как это:

success = False 
for c in range(len(Dict)): 
    if x == Dict[c]: 
    Dash[c] = x 
    success = True 
if not success: 
    Lives -= 1 

P.S. Что-то не так с отступом кода, который вы опубликовали.

Смежные вопросы