本記事は某鯖4 Advent Calendar 2021の12月08日分記事です。
前日の記事はこちら↓
ボルボロスさんの素晴らしいむかしばなしが読めます。
私は深夜に読んで一人で爆笑してました。
はじめに
これは超大事なことなので最初に書きますが、私はプログラミングとかに関しては初学者なので、鯖内にいる本職のSEとかPGみたいな技術系の人には遠く及ばない存在だと思っていただければ幸いです。
ということを前提に置いていただくとして…
皆様こんにちは、こんばんは、おはようございます。Kaidoです。
今回はPythonで遊ぼうのコーナーをやっていこうと思います。
一応以下のような人向け記事です。
- 年末で時間があって暇な人
- 何かプログラミングとかよく分からないけど興味ある人
書こうと思った理由
某鯖2周年記念きも○いちを作ったものの出しそびれた。
↓
12/23のアドカレ記事に付録として付けようかなーとか考えてたけど
↓
何か普通に載せるのもあれだなーと思ってた。
↓
ちょうどその頃、Pythonを使って色々することがあって
↓
せやPythonで出力したろ。ついでに初心者向け記事ってことにしたろ
↓
って感じでたまたま思いついた感じです。
ちなみに、きっかけとなった2周年きも○いちは色々あってお蔵入りになりました。
ではさっそく本題に入っていこうと思います。知識を付けようのコーナーも用意してましたが長いので折り畳みました。興味ある人だけ見てね。
Q.Pythonって何? Q.プログラミング言語って何? Q.プログラミングって何? コンピュータープログラミング(英語: Computer Programming)とは、ある特定のコンピューティングの結果を得ることを目的として、実行可能なコンピュータープログラムを設計・構築するプロセスのことである。 プログラミングとは「コンピューターを用いて実現したいこと」を書き出す作業 って感じじゃないすかね多分? 書き出すと言っても、普通にやらせたい事を文章で書く訳じゃありません。 なんだそれ「低級言語 / 低水準言語」もあるのか?と思ったそこのあなた、あるんだなこれが。ここでは説明しませんが、気になる人は調べてみてね。 説明はいいからはよ次行けって誰かに言われた気がするので、そろそろ次行きましょうか。 とはいえ Pythonって何? だけだと流石に説明少なすぎじゃボケと言われそうなので、もう少し詳しくPythonについて見てみましょう。長々説明してもアレなので、今回はPythonの特徴を1つだけご紹介します。 Grassというプログラミング言語があります。 ちょっと話は変わりますが、プログラミングの世界で最も基本とされている文章に「Hello World」という文があります。 ではこの「Hello World」を表示するプログラムを、先ほどのGrassで書くとどうなるか見てみましょう。 めっちゃ読みやすい!!! もちろんシンプルなだけでなく、他にも優れた部分があるのですが今回は割愛。 前置きはこれぐらいにして、実際にPythonを動かしてみましょう。知識を付けようのコーナー
一問一答Q&A
A.プログラミング言語
A.プログラミングをするための言語。
ウィキペディアくんに聞きました
よく分からないので滅茶苦茶意訳すると
「プログラミング言語」という専用の言語を用いて書きます。「高級言語」とか「高水準言語」とも呼ばれたりします。
Pythonについてもう少し詳しく知る
画像は公式サイトから
A.プログラミング言語。
読みやすさと分かりやすさ
名前の通り「w」,「W」,「v」,「V」の草っぽいアルファベットで構成されたプログラミング言語なのですが、とにかく読みにくいことで有名です。
どんなプログラミング言語でも最初に学ぶことは、この「Hello World」を表示するプログラムだと言われるほどには有名な文章です。wvwWwwwwWwwwwwwWWWWWwWWWWWwwwwvwwwwWWWwwWwwWWWWWWwwwwWwwvwWWwWwwvwwWWwvwWWWwwWW
WWWwwwWwwWWWWWWwWWWWWWWwWWWWwWWWWWwWWWWWWwWWWWWWWWWWWWWWwwwwwwwwWwWwWWWwwWWWWww
wwwwwWWWWWwwwwwwwWWWWWWwwwwwwwWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwWwwwwww
wwwwwwwwwwwwwwWwwwwwwwwwwwwwWwwwwwwWWwwwwwwWWWwwwwwwWWWWWWwwwwwwwwwwwwwwwwwwwwW
wwwwwwwwwwWWwwwwWWWwwwwWWWWwWWWWWwwwwwwwwwwwwwwwwwwWWWWWWWWWWWwWwwwWWwWWWwWWWWw
WWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwww
wwwwwwWWwwwwwwwwwwwWWWwwwwwwwWWWWwWWWWWwwwwwwwwWWWWWWwwwwwwwwwwwwwwwwwwwwwWWWWW
WWwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWwwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wWWwwwwwwwwwwwwwWWWwwwwwwwwwwwwwWWWWwwwwwwwwWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwWWWW
WWwwwwwwwwwwwwwwwwwwwwwwwww
いや読めんわ。こんなの一瞬で読む気失せますよね。
ただでさえ難しそうなプログラミング言語なんだから、せっかく覚えるなら出来るだけ分かりやすい方がいいじゃないですか。
ここからが本題です。では同じ「Hello World」を表示するプログラムPythonで書くとどうなるか。
こうなります↓print('Hello World')
これGrassに限らず他の言語と比べても、かなりシンプルな方だったりします。
このシンプルさこそPythonの大きな特徴だと言えると思います。
Google Colaboratoryで遊ぶ
Pythonに限らずですが、本来ガチでプログラミングをするには、開発環境というものを構築する必要があります。
しかし今イケイケの言語と名高いPythonさんには、秘策がありました…
ということで、今回はGoogleが提供している「Google Colaboratory」というサービスを使って色々やってみます。
なにそれ
大正義Googleくんが提供しているブラウザ上でPythonを書いたり、動かしたり出来るサービス。
難しい環境構築とか設定が不要で、Googleアカウントがあれば誰でも使えます。
一応有料サービスもありますが、無料でも十分すぎるぐらい使えるので心配無用。
ということで早速触ってみます。
ノートブックを新規作成
画面左上の「ファイル」から「ノートブックを新規作成」をクリック。
するとなんかまっさらな画面が出てくると思います↓
これがGoogle ColaboratoryでPythonのコードを書いていくメインの画面になります。
画像ではダークモードになってますがそこら辺はお好みで。Googleアカウントアイコン横の歯車マークから設定できます。
ノートブックの名前がデフォルトのままなのはアレなので、名前の欄をクリックして何か適当に名前を付けておきます。(.ipynbは拡張子なので触らない方がいいです)
ここで作成したノートブックは、ログインしているアカウントのGoogle Driveに保存されます↓
試しにコードを書いてみる
※Python2.x系はサポート終了してるので、今回はPython3系の文法で書いていきます。
コードは「コードセル」と呼ばれる部分に書きます。左端に再生の▶マークが付いている細長い部分がコードセルと呼ばれるものです。
まずは「Hello World」と表示するプログラムでも書いてみましょうか。
コードセルに以下のように記述します。
print('Hello World')
記載出来たら、文の横の▶ボタンを押して実行してみます。
あーいい感じに出来てますわ。
何となく解説すると、このprint()
という文は( )の中にある値を出力するみたいな意味があります。(正確にはちょっと違う気がする)
文字が出力出来るようになったという事は、もう「きも○いち」も出力できるはずだ。
とりあえずさっき書いたコードは置いておいて、新しくコードセルを追加します。
左上にある「+コード」というところから、コードセルを新しく追加します。
Pythonで絵文字を出力する場合、下のように直接絵文字を入力しても普通に出力してはくれます。
print('🤔')
してはくれるんですけど、何かやってる感を出そうということで今回はPythonのライブラリ「emoji」を使って出力してみます。
ライブラリを入れてみる
ライブラリは簡単に言えば、機能の詰め合わせです。例えば乱数の機能を使いたいなーって時には、「random」というライブラリを使うと簡単に乱数を生成できます。
Python自体はかなりシンプルなものなのですが、このライブラリがあることで出来ることがグッと広がります。
別にライブラリを使わなくても、滅茶苦茶頑張れば自力で出来なくはないですよ。でもそんなことやる人は、あまりいないです。
で、Colaboratoryくんは優秀なので、よく使われるライブラリがデフォルトで300個以上入っているのですが、今回使ってみる「emoji」は入ってないので自分で入れます。
新たなコードセルに以下のコマンドを入力して実行します。
!pip install emoji
Successfully installed emoji-1.6.1
みたいなのが出ればインストール完了です。
完了したら、installコマンドを書いたコードセルは念のため削除しておいた方がいいです。右端にあるゴミ箱マークから削除できます。
では新しくコードセルを出して、ライブラリを使ったコードを書いてみます。
ライブラリを使うには、import文というのを書く必要があります。
import emoji
次に絵文字を出力する部分をprint文で書きますが、emojiの機能であるemoji.emojize
も使って絵文字を出力します。先ほど記述したimport文と同じコードセルに改行して書いてあげましょう。
emoji.emojize('ここに絵文字の名前')
という感じで記述します。絵文字はこのページのリストに掲載されている絵文字が使えます。
あと、デフォルトだと一部の絵文字しか出力されないので、unicodeでサポートされている絵文字全部を使えるように、use_aliases
というオプションをオン(True)にします。
を出力したいならこんな感じ↓
print(emoji.emojize(':thinking:',use_aliases=True))
合わせるとこんな感じ↓
import emoji
print(emoji.emojize(':thinking:',use_aliases=True))
きも○いちを出力してみる
ではいよいよ本題の「きも○いち」を出力するコードを書いてみましょう。
みなさんご存知なのは多分こんな感じのやつ↓
しかしここで大きな誤算が生じてしまいます…
今の絵文字 目の色青じゃないやんけ!!!
そうなんですよ…去年辺りに色が変わっちゃったんですよね…
某モデレーターも過去にこのようにおっしゃってることから分かるように、大きな変化だったんですよ。※プライバシー保護のため画像の一部を加工しています
現在は鯖に専用の目の絵文字が実装されているのでDiscord内では問題なく使えます。
本当は妥協したくないんですけど、こればかりはどうしようも無いので妥協します。
ということで妥協した結果出来たのがこちら↓
import emoji
kimo = ":flexed_biceps::eye::eye::flexed_biceps:\n :leg::leg:"
print(emoji.emojize(kimo, use_aliases=True))
kimoという名前の変数に出力内容を記述しています。変数は、まあ…値を入れておく箱みたいなものです。
足の位置を調整するためにDiscordでは何も描かれていない絵文字を使うのですが、本来そんな絵文字は無いので半角スペース3個で代用しています。「\n」は改行です。(Colaboratory上では\は¥マークに変換されてますが同じ意味)
終わりに
本当は、きも○いちをコマンド1つで表示できるDiscordのbotとか作りたかったけど、時間が足りなかった!!!
botが作れたらメッセージを送るだけなので、デフォルトに無い絵文字も使えて2周年きも○いちもお披露目出来たんですが、これはお蔵入りですね。
追記:某鯖5の12/9担当であるKohehanさんが、pixivのイラスト全体を見るbotのついでに、「きも○いち」を表示するbotを作ってくれました。→記事はこちらから
ということで最後までありがとうございました!
次は12/23の某鯖3 Advent Calendar用記事でお会いしましょう。