# Просто для удовольствия
Если вы хотите продуктивно изучать Python, эта статья может быть не для вас. Все, что последует, может быть глупостью, глупостью и пустой тратой времени. Но это весело!
Вариант 1
import time d = {'-':'\\', '\\':'|', '|':'/', '/':'-'} x = '-' while True: print((x+' ')*20, end='\r') x = d[x] time.sleep(0.25)
^ запустите этот фрагмент кода и посмотрите, что произойдет! (не нужно ничего устанавливать)
Вариант 2
import time d = {'+':'x', 'x':'+'} x = '+' while True: print((x+' ')*20, end='\r') x = d[x] time.sleep(0.25)
^ запустите этот фрагмент кода и посмотрите, что произойдет!
Вариант 3
import time d = {'v':'<', '<':'^', '^':'>', '>':'v'} x = 'v' while True: print((x+' ')*20, end='\r') x = d[x] time.sleep(0.25)
^ запустите этот фрагмент кода и посмотрите, что произойдет!
Что происходит, когда вы запускаете код
У нас получаются крутящиеся узоры.
Но как?
Во-первых, нам нужно понять, что делает символ \r
.
Символ возврата каретки \r
Символ возврата каретки \r
— это escape-символ, который перемещает курсор обратно в начало строки. Другими словами, это позволяет нам печатать то, что мы ранее печатали.
import time print(1, end='\r') time.sleep(1) print(2, end='\r') time.sleep(1) print(3)
Здесь time.sleep(1)
заставляет нашу программу ничего не делать в течение 1 секунды. Если вы запустите эту программу, она сначала напечатает 1. Через 1 секунду 1 станет 2. А еще через секунду 2 станет 3.
Это из-за end='\r'
. После того, как мы напечатаем 1, вместо перехода к новой строке \r
заставляет наш курсор вернуться к началу строки. Таким образом, печать 2
переопределяет существующий 1
.
Анимация вращающейся вещи
import time print('-', end='\r') time.sleep(1) print('\\', end='\r') time.sleep(1) print('|', end='\r') time.sleep(1) print('/', end='\r') time.sleep(1) print('-')
^ это печатает -
, затем \
, затем |
, затем /
. Из-за символа \r
каждый новый напечатанный символ заменяет старый, что создает эффект вращающейся строки. Автоматизируйте это с помощью цикла while, напечатайте 20 из них подряд, и мы получим то, что видим выше!
Заключение
Надеюсь, это было забавным дополнением к вашему репертуару Python.
Несколько заключительных слов
Если эта история была полезной и вы хотите оказать небольшую поддержку, вы можете:
- Похлопайте 50 раз за эту историю (мне это очень-очень помогает)
- Подпишитесь на членство в Medium, используя мою ссылку (5 долларов в месяц, чтобы читать неограниченное количество историй на Medium)
Получить мои бесплатные электронные книги: https://zlliu.co/books