Как обновлять отображаемые значения, а не печатать каждый раз в Python?

1

Это самый простой способ объяснить это.

В настоящее время у меня есть список, который я показываю, печатая его каждый раз, когда он изменяется. Я хочу назвать его списком "карты" со следующими назначенными ему.

cards = ["A", "B", "C", "D"]

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

  • 1
    Где ты это печатаешь? Вы используете библиотеку графического интерфейса? Также вы хотите сказать, что, например, второй элемент меняется с "B" на "S" , вы хотите просто напечатать «S»?
  • 0
    Вы хотите просто запустить программу, а затем хотите, чтобы она продолжала меняться сама по себе?
Теги:

2 ответа

1

Вы можете использовать небольшой графический интерфейс с tkinter для отображения ваших значений или, исходя из предложения @kevinkayaks, распечатать карты в консоли:

import tkinter as tk
import random


def print_cards(cards):
    print("\r" + ' '.join(cards), end='', flush=True)


def shuffle_cards():
    random.shuffle(cards)
    print_cards(cards)
    for card, text in zip(cards, texts):
        text.set(card)
    root.after(1000, shuffle_cards)


cards = ["A", "B", "C", "D"]

root = tk.Tk()
texts = [tk.StringVar() for _ in range(4)]
for idx in range(4):
    tk.Label(root, textvariable=texts[idx]).grid(row=0, column=idx)
    texts[idx].set(cards[idx])

shuffle_cards()

root.mainloop()
1
>>> cards = ["A", "B", "C", "D"]    
>>> from time import sleep
>>> for i in range(400):
>>>     print("\r" + str(cards), end="")
>>>     sleep(0.5)

Взято из qaru.site/questions/53021/...

Разве это не будет служить вашей цели? Вы перепечатываете все это, но в том же положении, поэтому это не имеет значения, если скорость не является проблемой

Ещё вопросы

Сообщество Overcoder
Наверх
Меню