HighLine to biblioteka Ruby do łagodzenia wejścia i wyjścia konsoli. Udostępnia metody, które umożliwiają żądanie wprowadzenia i sprawdzenie poprawności. Czy jest coś, co zapewnia funkcjonalność podobną do tej w Pythonie?Czy istnieje odpowiednik Python dla HighLine?
Aby pokazać co HighLine widzi następujący przykład:
require 'highline/import'
input = ask("Yes or no? ") do |q|
q.responses[:not_valid] = "Answer y or n for yes or no"
q.default = 'y'
q.validate = /\A[yn]\Z/i
end
on pyta: „Tak czy nie?” I pozwala na coś wprowadzania danych przez użytkownika. Dopóki użytkownik nie wprowadzi y lub n (bez rozróżniania wielkości liter), wypisuje "Odpowiedź y lub n dla tak lub nie" i pozwala użytkownikowi ponownie wpisać odpowiedź. Także jeśli użytkownik naciśnie Enter, to domyślnie jest ustawiony na y. W końcu, gdy jest to zrobione, dane wejściowe są przechowywane w input
. Oto przykładowy wynik, w którym użytkownik najpierw wprowadza "EH ???" a następnie "y":
Yes or no? |y| EH??? Answer y or n for yes or no ? y
Czy istnieje podobny prosty sposób, aby zrobić to samo w Pythonie?
Nie wydaje się tak trudne do wdrożenia. To tylko wyrażenie regularne. Zobacz moduł ['re'] (http://docs.python.org/2/library/re.html). – Bakuriu
Twój dokładny przykład w Pythonie jest dostępny na [github Sergii Boiko] (https://github.com/cris/ruby-quiz-in-python/blob/master/src/highline.py) –
@BurhanKhalid Jeśli odpowiada pytanie, które możesz chcieć rozwinąć w odpowiedzi. –