Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/47: Рейтинг темы: голосов - 47, средняя оценка - 4.70
168 / 8 / 1
Регистрация: 15.11.2018
Сообщений: 256

Вывод элементов списка без скобок и запятых в игре "Виселица"

07.06.2019, 14:51. Показов 8793. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень прошу!! Скажите как сделать чтобы угаданные буквы(маленький скрин 1) выводились без квадратных скобок и запятых. То есть грамотно преобразовать список в строку
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
from tkinter import *
from random import choice
import os
 
class Hangman:
    WORD_LIST = []
 
    def __init__(self, root):
        # Заполнить WORD LIST словами из текстового файла.
        with  open("words.txt") as fp:
            for word in fp:
                self.WORD_LIST.append(word.strip())
 
        os.startfile("Krematory.mp3")
        self.root = root
        root.title("Виселица")
 
        self.strikes = 0 # Счетчик ошибок
        self.word = choice(self.WORD_LIST).upper()
        self.word_underscored = [" "] * len(self.word)
        self.guess = ""
        self.guessed = "ДОГАДКИ: "
        self.photo = PhotoImage(file="images/hangman01.png")
 
        # Холст, где будет размещено изображение.
        self.canvas = Canvas(root, width=600, height=500)
        self.canvas.grid(row=0, columnspan=3)
        self.canvas.create_image(340, 240, image=self.photo)
 
        # Отображает слово с подчеркиванием.
        self.word_blank = StringVar() # Промежуточный компонент
        self.word_blank.set(" _ " * len(self.word))
        self.word_blank_label = Label(root, textvariable=self.word_blank)
        self.word_blank_label.grid(row=1, column=0, sticky=W+E) # Выровнять по центру
 
        self.enter_letter_label = Label(root, text="ВВЕДИТЕ БУКВУ: ")
        self.enter_letter_label.grid(row=1, column=1, sticky=W+E)
 
        # Поле ввода букв.
        letterfield = root.register(self.validate)
 
        self.entry = Entry(root, validate="key", validatecommand=(letterfield, "%P"))
        self.entry.grid(row=1, columnspan=4, column=2, sticky=W+E)
 
        # Отображает сделанные предположения
        self.guesses = StringVar()
        self.guesses.set(self.guessed)
        self.guesses_label = Label(root, textvariable=self.guesses)
        self.guesses_label.grid(row=2, column=3, sticky=W)
 
        # Кнопка: Новая игра.
        self.new = Button(root, text="Новая игра", command=self.new_game)
        self.new.grid(row=2, column=0, sticky=W+E)
 
 
        # Кнопка отправки
        self.submit = Button(root, text="ОТПРАВИТЬ", command=self.check_guess)
        self.submit.grid(row=2, column=2, sticky=W+E)
 
    def change_image(self):
        # Эта функция обновляет изображение
        image_lst = ["images/hangman01.png",
                    "images/hangman02.png",
                    "images/hangman03.png",
                    "images/hangman04.png",
                    "images/hangman05.png",
                    "images/hangman06.png",
                    "images/hangman07.png",
                    "images/hangman08.png"]
        self.strikes = self.strikes % len(image_lst)
        self.photo = PhotoImage(file=image_lst[self.strikes])
        self.canvas.create_image(340, 240, image=self.photo)
 
    def validate(self, text):
        # Проверяет ввод в поле ввода.
        if not text:
            return True
        else:
            try:
                self.guess = text.upper()
                return True
            except:
                return False
 
    def new_game(self):
        # Эта функция сбрасывает все значения и выбирает новое слово для новой игры
        self.strikes = 0
        self.change_image()
        self.word = choice(self.WORD_LIST).upper()
        self.word_blank.set(" _ " * len(self.word))
        self.word_underscored = [" "] * len(self.word)
        self.guessed = "ДОГАДКИ: "
        self.guesses.set(self.guessed)
 
    def check_guess(self):
        # Функция проверяет правильность предположения
        if self.guess in self.guessed[8:]:
            self.entry.delete(0, END)# Очищяет поле ввода
            return
        self.guessed += self.guess
        self.guesses.set(self.guessed)
        if self.guessed[-1] not in self.word:
            self.strikes += 1
            self.change_image()
        else:
            self.word_form()
 
        if " " in self.word_underscored:
            if self.strikes == 7:
                self.word_blank.set(self.word)
                self.guesses.set("Ты проиграл :( ")
 
        if ''.join(self.word_underscored) == self.word:
            self.guesses.set("ТЫ ПОБЕДИЛ!!!")
            self.photo = PhotoImage(file="images/FqAX.gif")
            self.canvas.create_image(340, 240, image=self.photo)
            self.word_blank.set(self.word)
 
        self.entry.delete(0, END)
 
    def word_form(self):
        # Функция проверяет отображение подчеркиваемых слов
        if self.guessed[-1] in self.word:
            for index, letter in enumerate(self.word_underscored):
                if self.word[index] == self.guessed[-1]:
                    self.word_underscored[index] = self.word[index]
        self.word_blank.set(str(self.word_underscored))
 
def main():
    root = Tk()
 
    app = Hangman(root)
 
    root.mainloop()
 
if __name__ == "__main__":
    main()
Миниатюры
Вывод элементов списка без скобок и запятых в игре "Виселица"  
Изображения
 
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.06.2019, 14:51
Ответы с готовыми решениями:

Вывести содержимое списка в одну строку, без запятых и скобок
Как это вывести на экран в один рядок без запятых и скобок? a =

Вывести кортеж с кортежами без запятых и скобок
Элементы кортежа l надо вывести в столбик без запятых, ковычек и скобок, то есть вот так: 4 str1 2 str2 1 str3 Этот код: ...

Вывод элементов множества без фигурных скобок
Привет всем! :) При решении одной задачи возник вопрос - а как, собственно, вывести элементы множества без фигурных скобок? Можно...

7
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
07.06.2019, 15:15
Python
1
2
ls = ['C', ' ']
print(' '.join(ls))
0
168 / 8 / 1
Регистрация: 15.11.2018
Сообщений: 256
07.06.2019, 15:33  [ТС]
Вопрос остается открытым
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
07.06.2019, 16:18
Так покажи строчку, где данные выводятся. Никто не будет её искать в 100+ строчках кода.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.06.2019, 18:45
Цитата Сообщение от alexfandr Посмотреть сообщение
Вопрос остается открытым
Для кого как. Твой вопрос уже здесь задавался тьму раз. И ответ (в большинстве случаев) был именно таким, какой привел Рыжий Лис.
Так что отметь его ответ как лучший и дальше начинай думать сам.
На будущее - экстрасенсы на другом форуме.
0
168 / 8 / 1
Регистрация: 15.11.2018
Сообщений: 256
07.06.2019, 19:29  [ТС]
Рыжий Лис, Вот здесь это проверяется
Python
1
2
3
4
5
6
7
def word_form(self):
        # Функция проверяет отображение подчеркиваемых слов
        if self.guessed[-1] in self.word:
            for index, letter in enumerate(self.word_underscored):
                if self.word[index] == self.guessed[-1]:
                    self.word_underscored[index] = self.word[index]
        self.word_blank.set(str(self.word_underscored))
А здесь выводится
Python
1
2
3
4
5
# Отображает слово с подчеркиванием.
        self.word_blank = StringVar() # Промежуточный компонент
        self.word_blank.set(" _ " * len(self.word))
        self.word_blank_label = Label(root, textvariable=self.word_blank)
        self.word_blank_label.grid(row=1, column=0, sticky=W+E) # Выровнять по центру
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
07.06.2019, 19:44
Цитата Сообщение от alexfandr Посмотреть сообщение
self.word_blank.set(str(self.word_unders cored))
не передавайте массив просто так, сделайте как вам показали в сообщении 2
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
07.06.2019, 21:22
Лучший ответ Сообщение было отмечено Рыжий Лис как решение

Решение

alexfandr, У меня вопрос, Вы сами писали этот код или просто где то взяли?

Добавлено через 16 минут
Подозреваю, что не сами.
Здесь для вывода используется объект класса StringVar из tkinter. Этот объект работает со строкой, о чем кстати говорит и название класса.
Поэтому мы здесь имеем
Python
1
2
        self.word_blank = StringVar() # Промежуточный компонент
        self.word_blank.set(" _ " * len(self.word))
Объект класса StringVar(), имеет методы get/set.
Соответственно: get() - извлекаем значение, set("value") - задаем значение

Добавлено через 43 минуты
tooru, Вы правы. Если воспользоваться советом Рыжий Лис, и заменить 127 строку
Python
1
        self.word_blank.set(str(self.word_underscored))
на строку
Python
1
        self.word_blank.set(' '.join(self.word_underscored))
то все работает без квадратных скобок, запятых и кавычек.
Я это проверил на тестирующем коде.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2019, 21:22
Помогаю со студенческими работами здесь

Чтение текста из файла и вывод на экран предложений без запятых
Помогите, пожалуйста, написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых. ...

Считывание текста из файла и вывод в другой файл предложения без запятых
Составить программу, которая считывает текст из файла и выводит на экран и в другой файл исходный текст и предложения, не содержащие...

Программа к игре Виселица.Срочно...
Задается 2 массива один из "-", причем количество "-" равно количству букв заданного слова.А второй массив это количество попыток. Нужно...

Как сделать код в игре виселица
Нужно написать игру "виселица" или "поле чудес" на VB. Вот я начала писать: Private Sub Start_Click() Dim InpName As String For...

Как из списка взять одно и так же абсолютно все значения без скобок и кавычек?
В крациях: мне нужно понять как из списка взять одно и так же абсолютно все значения без скобок и ковычек, что бы доделать мой калькулятор....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru