Как писать в позиции x, y в терминале на python (на основе текста)

#python

#python

Вопрос:

Я хочу писать символы в определенной позиции (x, y) в терминале на python (на основе текста).

Предположим, у меня есть терминал размером 25×80 и я хочу написать символ в позиции (2,20). Могу ли я сделать это на Python.

Теперь я использую массив 25×80 и записываю в этот массив. Для отображения на экране я очищаю экран и записываю все содержимое этого массива на экран, но это неэффективно…

Может кто-нибудь помочь мне с этим?

Комментарии:

1. вы ищете модуль python curses

Ответ №1:

 x = int(input('Enter value of x : '))
y = int(input('Enter value of y : '))
ch = input('Enter the Character : ')

print('n' * y    ' ' * x    ch)
print('nnnn') #just for sparing some lines after the output
 

Если вы хотите оставить остальную часть экрана пустой и просто вывести один символ, это хороший способ.

Все, что я сделал, это ввел символ (новой строки), пока я достиг нужных y-строк. n

После этого я вводил пробел до тех пор, пока не достиг x шнуров.

Комментарии:

1. Предположим, я хочу отбросить мяч от границ, разве я не могу просто заменить предыдущую позицию пробелом, а текущую — моим символом «ball»?

2. Я так не думаю. Строка в python неизменяема. Если бы я должен был воспроизвести прыгающий мяч, я бы очищал экран после каждой итерации и пересчитывал значения x и y. И выполните инструкцию print('n' * y ' ' * x ch) .

3. Тогда создание 2D-списка — лучший способ (на мой взгляд). Вы можете обратиться к 2D-списку через его строку, координаты col (т.е. y, x). После этого вы просматриваете список и записываете его на экран после очистки экрана. Мне было интересно, можете ли вы записывать непосредственно на экран для определенной координаты, не используя строку или 2D-список.

4. Да, есть графические библиотеки и для python. Вы можете выполнить поиск в Интернете для одного из них. С них легко начать. Если вы создаете простую анимацию, вы также можете попробовать PyGame. Или для простых графиков Matplotlib.

5. Я все еще думаю, что непрерывная печать строки после очистки экрана по-прежнему более эффективна, чем печать 2D-списка после cllear screen. непрерывно.