Kの備忘録(仮)

Python、VBA、Excelを中心に記事を投稿

【Python学習中】 文字列1(概要とスライス)

今回から全3回にわたって文字列の扱い方について学習していきます。

◆目次◆

文字列とは

文字、文章のこと(文字列型:String)

登場する用語

  • インデックス
    見出し
  • シーケンス
    順番のある文字列、配列など
  • スライス
    区切り
  • リテラル
    数値や文字列を直接に記述した定数、変数の対義語
    例 文字列リテラル → 文字列の定数

文字列を扱うときのルール

Pythonで文字列を扱う際は、必ず「’」または「"」で囲む必要があります。
ただし、文字列内の「'」を表示させたい場合は、必ず文字列全体を「"」で囲む必要があります。

'Python'
"It's Wonderful World"

よくあるエラー

文字列を「’」または「"」で正しく囲んでいなかったら
こんなエラーが出ます。

print('Hello Python)

f:id:lbibouroku:20210616220017p:plain

SyntaxError: EOL*1 while scanning string literal
構文エラー:文字列リテラルのスキャン中に行が終わってしまった

もしもこのエラーが出たら、文字列を「’」または「"」で正しく囲んでいるか確認します。

文字列のスライス

Pythonでは、文字列の範囲を指定して、区切ることができます。

スライスを使うときの考え方

インデックスが文字と文字の間 を指していると考えます。

Python」という文字列では
最初の文字「P」は「0と1の間」、最後の文字「n」 は「5と6の間」考えます。
1行目の数字は、文字列の 0 から 6 までのインデックスの位置を指します。
2行目の数字は、対応する負のインデックスを指します。

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1
  • 文字列のスライス
変数[開始位置(インデックス):終了位置(インデックス):ステップ数]

例1
wordに文字列’Python'を代入する
wordに対してスライスの指定を
「開始位置・インデックス1」「終了位置・インデックス5」として出力する
wordに対してスライスの指定を「開始位置・インデックス1」として出力する
wordに対してスライスの指定を「終了位置・インデックス5」として出力する
wordに対してスライスの指定を
「開始位置・インデックス1」「終了位置・インデックス5」「ステップ数2」として
出力する

word = 'Python'

print(word[1:5])
print(word[1:])
print(word[:5])
print(word[1:5:2])

# 出力結果
# ytho
# ython
# Pytho
# yh

例2
wordに文字列’Python'を代入する
wordに対してスライスの指定を
「開始位置・インデックス-5」「終了位置・インデックス-1」として出力する
wordに対してスライスの指定を「開始位置・インデックス-1」として出力する
wordに対してスライスの指定を「終了位置・インデックス-5」として出力する
wordに対してスライスの指定を「ステップ数-1」として出力する

word = 'Python'

print(word[-5:-1])
print(word[-1:])
print(word[:-5])
print(word[::-1])

# 出力結果
# ytho
# n
# P
# nohtyP

今回は、文字列の概要とスライスについて学習しました。

次回も文字列の扱いについて、引き続き学習していきます。

【Python学習中】 文字列2(文字列の連結とエスケープシーケンス) - Kの備忘録(仮)
【Python学習中】 文字列3(フォーマット済み文字列とraw文字列) - Kの備忘録(仮)

*1:End Of Lineの略。「行の終わり」の意味