入力のTips
- inputで標準入力から文字を入力する場合に、カーソルキー(矢印キー)は扱いが特殊なので注意。環境依存になるが、入力されたカーソルキーをrepr付きで出力(print(repr(x)))してみると、各キーをASCIIコードでどう取得しているかわかる。
- Linux(Ubuntu)だと、上矢印が\x1b[Aのようになる。16新で1b,[は制御文字、でAみたいな意味合い。CUIアプリとしてはとりあえずそれを使えば良い。
x = input
if x == '\x1b[A':
elif x == '\x1b[B':
elif x == '\x1b[C':
elif x == '\x1b[D':
出力のTips
- 標準出力に色付き文字で出力したい場合がある。
- Bashのターミナルへの色付き文字のやり方と同じで、対象の文字をASCII制御コードで囲ってやれば良い。
- 例えば、hogeを赤くする場合、赤=\033[31mと、終了コード(END)=\033[\0mで囲う。
- こんなモジュールを用意しておくと便利。
END = '\033[0m'
colors = {'BLACK': '\033[30m',
'RED': '\033[31m',
'GREEN': '\033[32m',
'YELLOW': '\033[33m',
'BLUE': '\033[34m',
'PURPLE': '\033[35m',
'CYAN': '\033[36m',
'WHITE': '\033[37m',
'BOLD': '\033[38m'}
def coloring(str, color):
if color in colors:
return colors[color] + str + END
else:
return colors['RED'] + 'Given color does NOT exist.' + END
if __name__ == '__main__':
s = 'hello'
print(coloring(s, 'RED'))
print(coloring(s, 'BLUE'))
print(coloring(s, 'GRAY'))