「Krita」を始める前にー「Python」の基本的な文法を押さえよう

2024年7月2日(火)
大西 武 (オオニシ タケシ)
第2回の今回は、「Krita」を始める前に、まず「Python」の「変数」「データ型」「制御構文」「関数」などの基本的な文法について解説します。

はじめに

実際にPythonでKritaを制御する前に、まずはPythonのおさらいをしておきましょう。Pythonは極力シンプルな文法でスクリプトを書くことができるとても簡単な言語ですが、使い方次第で「ChatGPT」のような高度なプログラムまで作れてしまう優れた言語です。

他のプログラミング言語が使えるなら、Pythonと似たような文法もたくさんあるのですぐに理解できると思います。なお、今回解説するのはPythonの文法の全てではなく、最低限知っておくべき文法だけです。

筆者の経験上、プログラミングは数学を駆使しそうなイメージがありますが、ほとんどの業務アプリで大げさな数学を使うことはあまりありません。「言語」と言うだけあって英語を使うのに近いと思います。ただし本連載は2DCGを扱うため、三角関数などの数学の知識も多少は必要です。

Pythonの文法

まず「変数」「代入」「データ型」「計算式」「辞書型」について解説します。「リスト」と「タプル」についてもここで解説すべきですが、記事構成の都合上それらは「制御構文」の中で解説します。もちろんPythonの文法だけのサンプルスクリプトもKritaの「スクリプター」でそのままスクリプティングして実行できます。

変数とデータ型

プログラミングには図1のように必ずと言っていいほど「変数」が出てきます。これは「値」を記憶して残しておき、後でその値を使いまわすために必要なものです。

代入できる値には「整数」「小数」「文字列」「リスト」「タプル」「辞書型」「オブジェクト」などがあります。つまり「=」でデータを代入できます。プログラミングにおいて=は数学の「等号」ではなく「代入」を意味します。

ところで「数」についてよく間違うのが、整数(int)や小数(float)としての「数値」と、文字列(str)としての「数」がある点です。数値としての数は計算することができますが、文字列としての数は計算には使えません。ただし数値と文字列の数は次のサンプルスクリプト「data_type.py」のように互いに変換し合うことができます。

図1:変数に代入

・サンプルスクリプト「data_type.py」
# 小数を変数fに代入
f = 2.01
# 小数fを文字列に
print("fの値は"+str(f))
# 小数fを整数iに
i = int(f)
# 整数iを文字列に
print("iの値は"+str(i))
# 文字列を変数sに代入
s = "0.1"
# 文字列sを小数fに
f = float(s)

計算式

プログラミングの計算には「ベクトル」や「行列」などもありますが、突き詰めれば「算数」で習う加減乗除でほとんど表現できてしまいます。「+」が「加算」、「-」が「減算」、「*」が「乗算」、「/」が「除算」、「%」が「剰余(除算した余り)」です。だから簡単なことなら小学校でもプログラミングを習うことができるわけですね。

・サンプルスクリプト「keisan.py」
# 代入
i = 10
# 加算
plus = i + 1
# 減算
minus = i - 1
# 乗算
multiply = i * 2
# 除算
divide = i / 2
# 剰余
surplus = i % 3
# ターミナルに表示
print(plus)
print(minus)
print(multiply)
print(divide)
print(surplus)
# 加算
plus += 1
# 減算
minus -= 1
# 乗算
multiply *= 2
# 除算
divide /= 2
# 剰余
surplus %= 3
# ターミナルに表示
print(plus)
print(minus)
print(multiply)
print(divide)
print(surplus)

辞書型

辞書型は図2のように変数を「辞書(Dictionary)」的に扱う文法です。例えば辞書で「multiply」を引くと「かける」という意味が出てくるように、「multiply」が「キー」となり、それに対応する「値(バリュー)」が「かける」となります。辞書型の要素は「{」「}」で囲います。

図2:辞書型

・サンプルスクリプト「dict.py」
# 辞書型の初期化
dict = {"key":"value","キー":10}
# ターミナルに表示
print(dict["key"])
# 辞書型の追加
dict["きー"] = "値"
# ターミナルに表示
print(dict["きー"])
【コラム】「スクリプターの注意事項について」

筆者がKritaのスクリプターでつまずいた点を1つ注意しておきます。Pythonをスクリプティングするたびに「Krita」→「ツール」→「スクリプト」→「スクリプター」メニューを実行してしまいがちですが、既にスクリプターウィンドウが開いているとさらにウィンドウが増えてしまいます。そこでWindowsの場合、図3のようにタスクバーからスクリプターウィンドウをアクティベートします。macOSやLinuxの場合はスクリプターウィンドウ自体をクリックしてアクティベートします。

図3:「スクリプター」ウィンドウのアクティベート

著者
大西 武 (オオニシ タケシ)
1975年香川県生まれ。大阪大学経済学部経営学科中退。プログラミング入門書など30冊以上を商業出版する作家。Microsoftで大賞やNTTドコモでグランプリなど20回以上全国区のコンテストに入賞するアーティスト。オリジナルの間違い探し「3Dクイズ」が全国放送のTVで約10回出題。
https://profile.vixar.jp

連載バックナンバー

開発言語技術解説
第7回

「Krita」と「Python」でダイアログUIを構築してみよう

2024/10/11
第7回の今回は「Krita」の「Python」で「PyQt5」モジュールの「ウィジェット」を使って、ダイアログUIを構築する解説をします。
開発言語技術解説
第6回

「Krita」と「Python」でアニメーションを描いてみよう

2024/9/24
第6回の今回は「Krita」で「Python」をプログラミングして、正方形が回転するアニメーションを作成する解説をします。
開発言語技術解説
第5回

「Krita」と「Python」で「ベジェ曲線」を描いてみよう

2024/9/5
第5回の今回は「Krita」でベジェ曲線のフキダシを描いたり、指定したフォントで文字を書いたりする解説をします。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています