Note:
План:
Світ повний Хаосу. Будь-який програміст про це знає, але все навіть гірше. Будь-який програміст може додати ще більше Хаосу в наш Світ.
І перше, що потрібно навчитись, це контролювати Хаос, який привноситься у Світ.
А уже після того можна котролювати Світ.
demo_chaos.py
Живий кодинг, експерименти, демо
Note:
Копія коду для тих, хто не був присутній на лекції і не дивився відео.
Python скрипт виконується рядок за рядком, рядок за рядком. Деякі рядки важливі, деякі – ігноруються, деякі – непотрібні.
Вибери один з виправлених варіантів програми demo_chaos.py
.
Програма маленька, тому перебери всі варіанти.
(написання коду)
Контроль Хаосу. В рядках 7 та 8 оригінального demo_chaos.py
вказані числа. Спробуй змінити ці числа на якісь інші.
Ці числа можна змінити так, щоб Хаос був вузьким
Ці числа можна змінити так, щоб Хаос з'їхав вліво
Ці числа можна змінити так, щоб Хаос зник!
Віднайди ці числа!
time.sleep(0.01)
! При якій найменшій затримці все ще можна вийти з програми по Ctrl+C?Запустити програму на своєму комп'ютері. Прочитай код і знайди, що спільного з демонстрацією Хаосу.
P.S. Якщо раптом ти дівчина і тебе звати Наталка – знайди і зміни ім'я в коді
Хаос можна зробити і без random
. Наприклад,
Перед запуском цієї програми переконайся, що на комп'ютері не запущено нічого важливого і все збережено. Бо комп ЗАВИСНЕ!!Image Not Showing Possible ReasonsLearn More →
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
А питання ось у чому – чому комп зависає після запуску програми? Як від цього захиститись?
Якщо використати print()
кілька разів, то можна "намалювати" ASCII-арт.
Завдання – вивести ASCII-арт замість тексту в демо Хаос. Арт вибираєш який завгодно, хочеш – свій, хочеш – шукай тут https://www.asciiart.eu/ .
P.S. Замість time.sleep()
можна написати input()
. Тоді програма буде після кожної ітерації зупинятись і чекати коли ти натиснеш Enter.
Бекграунд термінала як правило чорний, а текст – світлий. А що як спробувати намалювати щось фоновим кольором, наприклад, печеру? Якщо стіни печери зробити білими символами, то печера якраз і вийде чорною.
Досі ми виводили на екран рядок за рядком, бо так працює простий print()
. Але це не обов'язково, можна виводити все в один рядок. Для цього знадобиться таке знання:
print(..., end='', flush=True)
– не буде переводити курсор на новий рядок після виводу на екранprint('\b', end='', flush=True)
– перевід курсору на один символ назад. Наприклад, print('Hello, \b\b\bboy')
виведе на екран Hellboy
.print('\r', end='', flush=True)
– перевід курсору на початок рядка. Наприклад,
переведе курсор на початок і виведе 80 прогаликів, фактично, очистисть рядокЗавдання: зробити Хаос у вигляді одного рядка!
В демо Хаос заміни a = random.randrange()
на a = (a + 1) % 70
. Стало трошки менше хаосу?
Тепер використай це знання щоб візуалізувати прогрес-бар.