ちょっと変わった入力方法を使えるPythonの「bullet」

Pythonの通常の値の入力

Pythonを使ってターミナルで値の入力をさせるときは次のようにします。

result = input("入力:")

基本的には文字列の入力しか受け付けません。

bulletで値の入力

bulletを使うと様々な入力方法を使うことができます。

GitHub – bchao1/bullet: 🚅 Interactive prompts made simple. Build a prompt like stacking blocks.

ここでは次の方法を試しました。

bullet

選択肢から一つを選択。
上下のキーで選択してエンターで入力。

check

選択肢から複数を選択。

numbers

数値のみを入力。

yesno

yまたはnのみを入力。
他の文字は入力できない。
※使いにくいです。

bulletのインストール

$ pip install bullet

サンプルコード

from bullet import Bullet, Check, Numbers, YesNo

def main():
  result = input("入力:")
  sample_bullet()
  sample_check()
  sample_numbers()
  sample_yesno()

def sample_bullet():
  cli = Bullet(
    prompt = "カーソルを動かしエンターを押してください。:",
    choices = ["北海道", "青森", "岩手", "宮城", "秋田"]
  )
  result = cli.launch()
  print("入力値:", result)

def sample_check():
  cli = Check(
    prompt = "カーソルを動かしスペースで選択してください(複数選択可)。決まったらエンターを押してください。:",
    choices = ["北海道", "青森", "岩手", "宮城", "秋田"]
  )
  result = cli.launch()
  print("入力値:", result)

def sample_numbers():
  cli = Numbers("数値を入力:", type = int)
  result = cli.launch()
  print("入力値:", result)

def sample_yesno():
  # cli = YesNo("YesNoを入力:", default = "y")
  cli = YesNo("YesNoを入力:")
  result = cli.launch()
  print("入力値:", result)

if __name__ == '__main__':
  main()

コメント

タイトルとURLをコピーしました