Проблема с КОРРЕКТНЫМ выводом результата строки

Reaperz

Новичок
Пользователь
Май 29, 2020
1
0
1
OC: Windows
Python 3.7.1

Проблема начинается с 27 строчки, поясню, что необходимо вывести отгаданные буквы вместе с точками(т.е, загаданное слово машина, игрок угадал букву и код выведет ".а....", при повторном успехе с угаданной буквой, к примеру м код выведет "ма...."), заранее извиняюсь за возможные вырвеглазные строчки, работаю на питоне 3 день.


Python:
#python 3.7.1
import random

print ("Здравствуй, игрок")
words_list = ("красивый", "телевизор", "портфель", "машина", "водитель", "источник", "здание", "издание")
AZ = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
POINT = "........."
word = random.choice(words_list)
word_lenght = len(word)
str_end = ""
str_edit = ""
temple_str = ""
print(f"Длина загаданного слова = '{word_lenght}'\n")
print("У вас есть 5 попыток, чтобы отгадать буквы в слове")
for i in range(5):
  ch = input("Введите букву: ")
  ch = ch.lower()
  if(ch not in AZ and len(ch) > 1):
    print("Вы ввели неверное значение")
    exit(0)
  elif(ch not in AZ):
    print("Вы ввели неверное значение")
    exit(0)
  elif(len(ch) > 1):
    print("Вы ввели неверное значение")
    exit(0)
  else:
      if(ch in word):
        temple_str = str_edit
        num = len(word)
        point_edit = POINT[0:num]
        pos = int(word.find(ch))
        str_edit= point_edit[:pos] + ch + point_edit[pos+1:]
        str_end = temple_str.join(str_edit)
        print(str_end[0:num])
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Вот немного переделанный код:
Python:
import random

print("Здравствуй, игрок")
words_list = ("красивый", "телевизор", "портфель", "машина", "водитель", "источник", "здание", "издание")
AZ = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
word = random.choice(words_list)
temple_str = '.' * len(word)
print(f"Длина загаданного слова = '{len(word)}'\n")
print("У вас есть 5 попыток, чтобы отгадать буквы в слове")
for i in range(5):
    ch = input("Введите букву: ").lower()
    if ch not in AZ or len(ch) > 1:
        print("Вы ввели неверное значение")
        exit(0)
    elif ch in word:
        temple_str = temple_str[:word.index(ch)] + ch + temple_str[word.index(ch) + 1:]
        print(temple_str)
 

Форум IT Специалистов