Друкарня від 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 та деякою частиною її функцій, що цілком можуть допомогти при створенні консольних додатків. Всім дякую за увагу!

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

  • CRM keyCRM: зручне рішення для продажів, комунікацій і керування командою

    Успіх компанії залежить від того, наскільки швидко вона здатна опрацьовувати вхідні запити. Коли дані про клієнтів розпорошені між різними месенджерами, виникає хаос. CRM keyCRM пропонує вихід із цієї ситуації, об’єднуючи всі робочі процеси в єдиному зручному інтерфейсі.

    Теми цього довгочиту:

    Crm
  • Різниця між UX і UI, яку варто зрозуміти ще до першого заняття

    Більшість людей, які обирають професію UX чи UI, довго вважають це одним і тим самим. Насправді це два різних підходи до роботи над продуктом, і плутанина між ними гальмує розвиток ще на старті.

    Теми цього довгочиту:

    Ui-ux
  • Логіка змін: як SEO оптимізація прибирає бар’єри до зростання

    Багато компаній приходять у SEO з очікуванням швидкого ривка, але дійсний ефект починається там, де сайт перестають латати точково. Тому в центрі роботи стоїть не окрема дія, а послідовні зміни. Оптимізація сайту має прибирати системні перешкоди, а не маскувати їх новими текстами

    Теми цього довгочиту:

    Seo
  • Музичний футуризм: неймовірні інструменти XXI століття

    Еволюція музичних інструментів це один із найкрутіших проявів потужності людської уяви і потреби виразити себе через мистецтво. І хоча багато традиційних інструментів майже не змінилися за століття існування, інновації і пошук не зупиняються.

    Теми цього довгочиту:

    Музичні Інструменти
  • Стіл – всьому голова? Так, якщо його правильно підібрати

    Коли починаєш вивчати пропозицію меблевих фабрик щодо столів, дивуєшся кількості варіантів, адже вони пропонують різні розміри, різні матеріали, різноманітні форми та дизайни. Скористайтесь нашим каталогом MebelOK, щоб Ви могли підібрати найкращу модель для Вашого приміщення

    Теми цього довгочиту:

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

Нічний читач

56Довгочити
995Перегляди
18Підписники
Підтримати
На Друкарні з 14 липня 2025

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

  • Список різноманітних бібліотек у Python

    Всіх вітаю! Сьогодні хочу поділитися великим списком бібліотек у Python для різного призначення та потреб:https://github.com/vinta/awesome-pythonТут багато цікавих бібліотек зібрано за сферами їхньго призначення.

    Теми цього довгочиту:

    It
  • Roadmap — ваш путівник до поставлених цілей.

    Сайт Roadmap вміщує у собі багато путівників до великої кількості професій та сфер, у яких доволі чітко описано, що саме потрібно для повноцінного вивчення того чи іншого предмету зацікавленості.

    Теми цього довгочиту:

    It
  • Клас itemgetter() у модулі operator

    Всіх вітаю! У даній статті ми продовжимо тему спеціальних властивостей словників у Python. На цей раз ми поговоримо про модуль operator та його клас itemgetter(), яка дозволяє працювати зі списками та словниками у Python.

    Теми цього довгочиту:

    Програмування

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

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

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

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