Друкарня від WE.UA

Інстументи для введення та вибору варіантів у терміналі за допомогою questionary

Зміст

Всіх вітаю! У сьогоднішній статті ми розберемо бібліотеку questionary, яка має корисні інструменти для введення тексту та вибору варіантів прямо у терміналі.

Встановлення бібліотеки

Windows:

pip install questionary

MacOS:

pip install questionary

Linux:

pip install questionary

Де запускати програму?

Перед роботою з цією бібліотекою варто зазначити, що її необхідно запускати саме у командному рядку вашої ОС. Тобто у консолі іншого середовища розробки код працювати не буде.

Windows

У цій ОС вам треба просто відкрити командний рядок (пишете cmd у пошуку) та перейти у шлях файлу з програмою за допомогою такої команди:

cd тут буде ваш шлях до файлу

Якщо ж вам для цього потрібно перейти на інший диск, тоді додаєте /d після cd:

cd /d тут буде ваш шлях до файлу

Ось приклад моєї команди:

cd /d "D:\Hobbies\Programming\Python\Channel posts\QuestionaryLibrary"

Після цього ви опиняєтеся у потрібному шляху і тепер можете заускати код. Заустити код у командному рядку Windows можна за такою командою:

python your_filename.py

Для MacOS та Linux

У цих ОС також використовується команда cd, але після неї шлях повинен бути записаний за допомогою переднього слешу (/). У MacOS та Linux також обов’язково треба ставити шлях у лапки, якщо якийсь каталог має у назві пробіл.

Для запуску коду у цих ОС треба використовувати цю команду:

python3 your_filename.py

Функції введення даних

Функція text()

Спершу імпортуємо бібліотеку:

import questionary as quest

Функція text() приймає і виводить відповідний текст, а функція ask() чекає відповіді від користувача.

Ось приклад:

quest.text("Enter your username:").ask()
? Enter your username: Harry

Функція password()

Функція password() також чекає відповіді користувача, але на відміну від text() вона приховує його введення.

Приклад:

quest.password("Enter your password:").ask()
? Enter your password: ******

Функція confirm()

Функція confirm() чекає на відповідь користувача, при цьому надає йому лише два варіанти відповіді: так або ні.

quest.confirm("Did you have an experience in programming?").ask()
? Did you have an experience in programming? (Y/n)

Функції вибору варіантів

Функція select()

Функція select() приймає текст, який вона потім виведе у консоль та список із варіантами відповідей. Далі ми можемо просто обирати варіанти за допомогою стрілочок.

Приклад:

mood_type = ["Scared", "Happy", "Satisfied", "Anxious"]
quest.select("Describe your mood", mood_type).ask()
? Describe your mood (Use arrow keys)
   Scared
 » Happy
   Satisfied
   Anxious

Функція rawselect()

Функція rawselect() за сенсом ідентична до select(), але має пронумеровані варіанти відповідей та дозволяє обирати їх тільки через цифрові клавіші.

Приклад:

years_list = ["20-25 years old", "30-35 years old", "40-45 years old", "50-55 years old"]
quest.rawselect("How old are you?", years_list).ask()
? How old are you? (Use shortcuts)
 » 1) 20-25 years old
   2) 30-35 years old
   3) 40-45 years old
   4) 50-55 years old

Функція checkbox()

Функція checkbox() також дає змогу обрати варіанти, але у ній можна обирати більше одного варіанта та контролювати вибір іншими клавішами.

Приклад:

wordlist = ["Biblioklept", "Audacity", "Draconian", "Insomnia"]
quest.checkbox("Select unknown words", wordlist).ask()
? Select unknown words (Use arrow keys to move, <space> to select, <a> to toggle, <i> to invert)
 » ○ Biblioklept
   ○ Audacity
   ○ Draconian
   ○ Insomnia

Функція path()

Функції path() приймає лише текст та чекає конкретно шлях до файла. ЇЇ особливість у тому, що вона додає підказки під час твого вводу. Це якраз і показано у прикладі:

quest.path("Enter the path to your python file:").ask()
Приклад функції path()

Функція form()

Якщо ми захочемо задати два питання підряд, то для цього треба використовувати функцію form(), яка приймає потрібну нам кількість питань.

first_name = quest.text("Enter your first name:")
surname = quest.text("Enter your surname:")
secret_key = quest.password("Secret key:")

sign_up_form = quest.form(firstname=first_name, lastname=surname, key=secret_key).ask()
? Enter your first name: John
? Enter your surname: Clifford
? Secret key: *****

Варто зауважити, що дані у form() передається за допомогою словника, тобто firstname, lastname, key — це ключі словника, а first_name, surname та secret_key — його значення.

Якщо ми виведемо значення змінної sign_up_form, то отримаємо такий словник:

{'firstname': 'John', 'lastname': 'Clifford', 'key': 'quest'}

Функція autocomplete()

Функція autocomplete() приймає текст для виведення та список з елементами. Дана функція автоматично заповнює введення користувача за елементами у списку. Тобто функція очікує відповідь від користувача, паралельно надаючи йому підказки, що конкретно треба ввести.

Приклад:

languages = ["Python", "Java", "JavaScript", "Kotlin", "Mojo", "TypeScript", "C#", "C++", "C"]
quest.autocomplete("Programming language:", languages).ask()
Приклад функції autocomplete()

Висновок

Отже, у даній статті ми ознайомилися з бібліотекою questionary та деякою частиною її функцій, що цілком можуть допомогти при створенні консольних додатків. Всім дякую за увагу!

Статті про вітчизняний бізнес та цікавих людей:

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Mystique Lord
Mystique Lord@nocturnal_reader

Нічний читач

440Прочитань
21Автори
12Читачі
Підтримати
На Друкарні з 14 липня

Більше від автора

Це також може зацікавити:

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити: