1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

クリスマスまでにPythonを使ってDiscordのBOTを作るAdvent Calendar 2022

Day 16

【16日目】ギコギコはしなさそうなスライサー! ~後編~【PythonでDiscordBOTを作ろう!】

Last updated at Posted at 2022-12-15

無限大の刃物 〜後編〜

(一応自分で書いたネタは擦ります)

復習

スライサーとは、文字列などを切り裂き、抜き出したりするときに使う。

「あいうえお」という例文を使っているが、それぞれの文字はプログラムの中では下記の通りに処理される。

文字 位置
0文字目
1文字目
2文字目
3文字目
4文字目

また、[n:m]n文字目からm-1文字目みたいな感じの意味だから気をつけてほしい。

ちなみに実行コードは下記の通りだ。

repl
>>> 'あいうえお'[0:3]
'あいう'
>>> 'あいうえお'[:4]
'あいうえ'
>>> 'あいうえお'[2:]
'うえお'
>>> 'あいうえお'[3]
''
>>> 'あいうえお'[3:10]
'えお'
>>> 'あいうえお'[:-2]
'あいう'

[3]

なんか急にコロンが消えましたね。どうしたんでしょうか。セミコロンに進化でもしてくれるのでしょうか。だとしたら今すぐ飴をあげなきゃいけませんね。それかBボタン連打でも。

このコロンなしの場合は「3文字目だけ」という意味です。

なので、先ほどの表に照らし合わせて、3文字目は「え」なので、結果としては「え」となります。
これは少しおぼえておいた方がいいです。(そのうち文字以外にも使います。)

[3:10]

これはそのまんま考えましょう。
3文字目から10文字目

「えーと...10文字もありましたっけ...?」

このように、5文字しかない中で、本当はMAXが「4」ですが、それより多く指定することもできます。
この場合、Pythonでは特に何も起きず、普通に最後まで帰ってきます。

しかし、とても推奨されないものです。
基本的には、範囲内でのみ使いましょう。
後で「範囲外でもいけるんだよな」みたいな知識で色々作ってると、エラーが起きたりする場合があります。

[:-2]

マイナスですね。
0文字目より下に行くと思ったあなた、観点は素晴らしいですが違います。

マイナス数字は、最後からの数字を表しています。
よって、-2は最後から2文字目を表していることになりますね。

よりわかりやすく説明しましょう。
[:-0]あいうえお(0だから変化なし)
[:-1]あいうえ
[:-2]あいう
です。(?)
まぁ、減っていくと考えて貰えば...

結果として、あいうとなります。

どうよ! これがスライサーよ!

これがスライサーです。
文字列や、配列などを分裂させます。

次回は、このスライサーや更に新しい関数を使って、コマンドっぽいものを再現してみましょう。

というわけで、今日の記事はここまでです。
もしよろしければ記事へのいいねをして、次回記事をお楽しみに!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?