Pythonで色を変えたり出来るcoloramaが楽しい

f:id:sakage24:20170703221936j:plain

いわゆる「エスケープシーケンス」ですが、このモジュールは人間にわかりやすいように、抽象化してくれます。

普通にコード書いていると、黒の背景に白の文字列が無機質に流れていきますね。まあ別に色なんて無くても全く動作には関係ないし、問題無いっちゃ無いんですが、たまには気分変えて遊んでみたり、画面を更新したり出来てとっても便利です。

公式ドキュメントはこちらです。

事前準備

コマンドプロンプトからインストールしましょう。

pip install colorama

インストールが出来たら、coloramaをインポートしましょう。

from colorama import init, Fore, Back

init, Fore, Backについて

init

windowsでcoloramaを使うときに、import文の直下で実行する必要があります。これを行わないと、エスケープシーケンスが有効になりません。PyCharmのコンソール, Linux上では必要ありません。

なので開発中はどちらでも対応できるように、以下のような条件式を書いておくとうっかりを防止できます。


from colorama import init, Fore, Back
import os
# windowsOS = nt
if os.name == 'nt':
init()

Fore

文字列のを変えます。

strings = Fore.BLUE + "TEST" + Fore.RESET
print(strings)

実行結果

TEST

Back

文字列の背景色を変えます。

strings = Back.BLUE + "隣の客はよく柿食う客だ" + Back.RESET
print(strings)

実行結果

f:id:sakage24:20170703215148j:plain

実行した画像です。はてなブログのシンタックスハイライトでは再現出来ませんでしたw

(coloramaとは関係ないけど)知っておくべき便利なエスケープシーケンス

制御文字 効果
"\033[2J" 画面クリア
"\033[0K" カーソル位置からその行の右端までをクリア
"\033[1K" カーソル位置からその行の左端までをクリア
"\033[2K" カーソル位置の行をクリア

*1

使い方

print("\033[2J")  # 画面クリア

何に使えるのかよく分からないって?

以下のgifを御覧ください。現在他記事用に開発中のRPGですが、エスケープシーケンスを利用しない場合、出力がクリアされないため、移動するたびにどんどん下へ下へと押し込まれてしまいます。

画面クリアをしない場合

f:id:sakage24:20170703220320g:plain

画面クリアを行った場合

f:id:sakage24:20170703220957g:plain

おお~。それっぽく出来てますね。以上、意外と便利なcoloramaとエスケープシーケンスの紹介でした。

終わり

本当は、断片シリーズで解説しようと思っていましたが、長くなりそうなので単品の記事にしてみました。良かったらこちらの記事も、御覧下さい。

https://www.kiwi-bird.xyz/2017/07/01/20170701193017/

オススメの教科書類

指定教科書
入門 Python 3

入門 Python 3

これ無しでPython開発は無理です。私的にはあまり演習問題の類は説かずに知りたいことがあったら読む、辞書的な感じで使っています。

  • スライスって何?
  • リスト内包表記って何なんだよあれ?
  • リストとタプルはどう違うの?
  • そもそも集合って何に使うの?

少しでも上記に当てはまるなら購入しましょう。せっかくPythonを使っているんですから、有効に使えるようにしてみませんか?

副読本

以下の参考書があると勉強が非常にはかどります。是非ともご購入下さい。

Effective Python ―Pythonプログラムを改良する59項目

Effective Python ―Pythonプログラムを改良する59項目

  • 他言語を得意としているプログラマがPythonを書いた時にやりがちなこと…
  • ゲームの保存に使えるpickle
  • この機能はこう使うべきである
  • while, for文のelseを使うべきではない理由
  • Pythonでセッター, ゲッターを使うべきではない理由

みたいに、様々な事例とともにPythonのベストノウハウ、やってはいけないアンチパターンが紹介されています。pycon2016でも確か推されてましたw

初心者から上級者まで、手元に置いておくべき本です。

副読本2
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

ノンプログラマー向けとありますが、経験者の方も結構アイディアを貰える本でした。
序盤は文法の解説ですので、読み飛ばせます。後半は様々な局面で使えそうな自動化処理の書き方が載っていました。

ゲームの所持アイテムを辞書で表現しよう…みたいにゲームプログラマーに役立つ演習もありましたw

副読本3
ゲーム開発者のためのAI入門

ゲーム開発者のためのAI入門

  • 作者: David M. Bourg,Glenn Seemann,株式会社クイープ
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2005/01/12
  • メディア: 大型本
  • 購入: 24人 クリック: 395回
  • この商品を含むブログ (77件) を見る

C言語での解説が主ですが、しっかりとした説明があるので、だいたい分かりました。Pythonでも使える知識がほとんどです。ただ、ファジー理論など、数学的な要素は私にはどうともしがたい躓きポイントでしたw

ローグライクゲームに使える最短経路探索法やAIの作成法、確率の基本まで教えてもらえる良本でした!!

*1:http://7ujm.net/etc/esc.htmlより、一部抜粋しました。

コメントを残す

メールアドレスが公開されることはありません。