PythonでDiscord bot 「5.トピック紹介(1)split」

スポンサーリンク

こんにちは。前回から少し間が空いてしまいました。
前回までで「〇/hello」の説明が終わりました。

ここからは、私がこれまで学んできたコード記述について、トピック形式で紹介していきたいと思います。それぞれのトピック自体は単純でも、それらを組み合わせていくと色々なことができるようになると思います。また、1つのトピックの中にも色々な要素を織り込んでいくつもりです。少しずつ身につけていってください。

初回は「split」です。

(1)split

「split」は、文字列を分ける命令です。
「k1/hello」コマンドのコードを再掲してみます。

 if message.content.startswith('k1/hello'):
  await message.channel.send("Hello, world!")

これに少し手を加えてみます。

 if message.content.startswith('k1/hello'):
  msg = message.content.split()
  await message.channel.send("Hello, " + str(msg[1]) + "!")

プログラムが3行になり、見慣れない記載も出てきました。

1行目は前回と同じですが、2行目が追加されています。
「msg」という「変数」に、「message.content.split()」を格納しなさい、という命令です。
msgに格納された値はこれ以降繰り返し使用することができるので、プログラムが長くなるのを防ぐことができます。
「message.content.split()」が少しわかりにくいですが、「メッセージの内容を区切り文字で分けなさい」という命令です。どんな区切り文字で分けるのかはsplit()の最後の()で定義しますが、何も指定しないと、「区切り文字らしきもの」で分けてくれます。(半角スペースなど)
もし指定する場合は、 message.content.split(“,”)のような形で、文字列を表す” ”で囲って指定します。

次に進みます。もし、「k1/hello こげさん」とDiscordに打ち込んだ場合、msgはsplit()によって「k1/hello」と「こげさん」の2つに分解されます。msg[0]が「k1/hello」、msg[1]が「こげさん」です。
splitは0から始まることに注意してください。

最後のコードの「”Hello, ” + str(msg[1]) + “!”」は、「”Hello, “」と「str(msg[1])」と「”!”」を「+」で結合しています。str()は中身を文字列に変換する命令です。

わかりましたでしょうか。
実際に命令を実行すると以下のようになります。

今回はここまでです。是非実際にやってみてください。
こういった形で、トピックを少しずつ記事にできればと思います。
次回をお楽しみに!

最後に~寄付のお願い~

私のbotは、無償で開発しています。また、稼働しているサーバー代が毎月かかっており、完全持ち出しの状況です。もし寄付してもいいよ、という方がいらっしゃいましたらよろしくお願いいたします。リンク先はMONAの寄付ですが、他の通貨でのご寄付をいただける場合は私までご連絡いただけると大変ありがたいです。 (私、こげさんは「アルファDIscord」にいます。)
ほしいMONAリスト (komikikaku.com)

よろしければ記事のシェアをお願いします!