Select Language

AI Technology Community

2.18、Python str文字列の説明

文字列は最も一般的なデータ型の一つで、現実生活では、名前や詩詞など、文字列で表すのに適したオブジェクトがあります。文字列は、順序付けられた文字の集合を表し、例えば「床前明月光」は文字列で、「床」と「前」はそれぞれ文字です。

したがって、文字列の最も基本的な属性は長さで、つまり含まれる文字の数です。他の言語と同様に、Pythonでは長さが0の文字列も有効で、空文字列と呼ばれます。ただし、C言語やJava言語とは異なり、Pythonには文字型はなく、文字は長さが1の文字列と見なすことができます。

Python 2では、2種類の文字列があります:

  • 1つはstr型の文字列で、バイト列と見なすことができ、一般的にASCIIコードの文字で表せる文字列に使用されます。この種の文字列は、直接中国語の文字を表すことはできません。

  • もう1つはunicode型の文字列で、この種の文字列は中国語を表すことができます。


一方、Python 3では、str型のみですが、この型はPython 2のunicode型に相当し、任意の文字を表すことができます。Python 2のstr型は、Python 3ではbytes型で表されます。

このセクションでは、主にPython 3での文字列の使い方について説明します。

文字列は以下の4つの方法で表すことができます:

  • シングルクォートで囲んだ1連の文字を使用します。

  • ダブルクォートで囲んだ1連の文字を使用します。

  • 3つのシングルクォートで始まり、3つのシングルクォートで終わり、その間に1連の文字を入れます。

  • 3つのダブルクォートで始まり、3つのダブルクォートで終わり、その間に1連の文字を入れます。


以下は、様々な文字列の表記法の例です:

>>> a = ''         # シングルクォートを使用した空文字列
>>> a = 'abc'      # シングルクォートを使用し、a、b、cの3つの文字を含む文字列
>>> a = ""         # ダブルクォートを使用した空文字列
>>> a = "abc"      # ダブルクォートを使用し、a、b、cの3つの文字を含む文字列
>>> a = """"""     # 3つのダブルクォートを使用した空文字列
>>> a = """abc"""  # 3つのダブルクォートを使用し、a、b、cの3つの文字を含む文字列
>>> a = """abc     # 3つのダブルクォートを使用し、改行文字を含む文字列
    def            # 2行目
    ekl"""         # 3行目
>>> a              # 内容を確認する 'abc\ndef\nekl'
>>> a = '''abc     # 3つのシングルクォートを使用し、改行文字を含む文字列
    def            # 2行目
    ijl'''         # 3行目
>>> a              # 内容を確認すると、改行文字\nが見られる 'abc\ndef\nijl'

str型の関連インターフェース関数

文字列の基本的な操作には、部分文字列の取得や文字列の長さの取得などがあります。このセクションでは、文字列型の一般的なインターフェース関数とその使い方を紹介します。

1) 文字列の長さを取得する——len()

この関数は、文字列に含まれる文字の数を返します。

>>> len("")     # 空文字列の場合、長さは0
0
>>> len("a")    # 単一の文字なので、長さは1
1
>>> len("ab")   # 2つの文字を含むので、長さは2
2
>>> len("abc")  # 3つの文字を含むので、長さは3
3
>>> a = "私はpythonが好きです"
>>> len(a)      # 8つの文字を含む
8

2) 部分文字列を取得する——[開始位置:終了位置]

文字列は変更できないことに注意してください。したがって、部分文字列は読み取り専用で、書き込みはできません。

>>> in_str="abcdefghijklmn"
>>> in_str[2:]            # 3番目から最後までの文字列 'cdefghijklmn'
>>> in_str[2]             # 3番目の文字のみ 'c'
>>> in_str[2:5]           # 3番目から5番目までの文字 'cde'
>>> in_str[2:5]="1234"    # 書き込み操作を試みると、失敗して例外が発生する
Traceback (most recent call last):
  File "", line 1, in TypeError: 'str' object does not support item assignment

3) 26文字のアルファベットかどうかを判定する——isalpha()

文字列が複数の文字を含む場合、すべての文字が26文字のアルファベット(大文字と小文字を含む)であるかどうかを判定します。

>>> "".isalpha()   # 空文字列は26文字のアルファベットではない
False
>>> "a".isalpha()  # "a"は26文字のアルファベットである
True
>>> "a1".isalpha()
False
>>> "aB".isalpha()
True

4) すべてが10個の数字文字かどうかを判定する——isdigit()

この関数は、すべての文字が0から9の数字文字であるかどうかを判定します。1つでも該当しない文字がある場合はFalseを返し、それ以外の場合はTrueを返します。

>>> "".isdigit()        # 空文字列はFalseを返す
False
>>> "0".isdigit()       # 単一の文字0はTrueを返す
True
>>> "0a".isdigit()      # 数字以外の文字aを含むので、Falseを返す
False
>>> "009876".isdigit()  # すべてが数字文字なので、Trueを返す
True

5) 26文字のアルファベットまたは10個の数字文字かどうかを判定する——isalnum()

文字列の各文字が26文字のアルファベットまたは10個の数字文字である場合はTrueを返し、それ以外の場合はFalseを返します。

>>> "009876".isalnum()   # すべてが条件を満たす
True
>>> "a009876".isalnum()  # すべてが条件を満たす
True
>>> "".isalnum()         # 空文字列はFalseを返す
False
>>> "abc_def".isalnum()  # _文字は条件を満たさないので、Falseを返す
False

6) 小文字に変換する——lower()

この関数は、すべての大文字を小文字に変換し、それ以外の文字はそのままにします。

>>> "abCD987".lower()  # CD は cd に変換され、それ以外は変化しない 'abcd987'

7) 大文字に変換する——upper()

この関数は、すべての小文字を大文字に変換し、それ以外の文字はそのままにします。

>>> "abCD987".upper()  # ab は AB に変換され 'ABCD987'
>>> "私はpythonが好きです".upper() '私はPYTHONが好きです'

8) 単語の先頭文字を大文字にする——title()

複数の単語が含まれる場合、各単語の先頭文字が大文字に変換されます。

>>> "abc".title()                        # 単一の単語のみ 'Abc'
>>> "this is our favorite book".title()  # 複数の単語が含まれ、各単語の先頭文字が大文字になる 'This Is Our Favorite Book'

9) 文字列リストに分割する——split(分割文字)

分割文字は、単一の文字でも文字列でもかまいません。以下の例には、単一の文字からなる分割文字と、複数の文字からなる分割文字の両方が含まれています。

>>> "a:b:c".split(":")            # 分割文字が単一の文字
['a', 'b', 'c']
>>> "abc--def".split('--')        # 分割文字が2つの文字
['abc', 'def']
>>> "abc:def:".split(':')         # 末尾に分割文字がある
['abc', 'def', '']
>>> "::::abc:def::::".split(':')  # 先頭に分割文字があり、連続する分割文字もある
['', 
post
  • 26

    item of content
Pythonの基本データ型は全部で26章あります。
この章では、整数型、浮動小数点数、文字列、ブール型、リスト、タプル、セットおよび辞書など、Pythonが提供する基本的なデータ型について紹介します。また、これらのデータ型に対する演算操作についても解説します。
私たちはPythonが強タイプ言語であることを知っています。つまり、各変数の型は特定の時点でのみ確定します。言い換えれば、Pythonにおける任意の生存しているオブジェクトの型は一意です。異なる型のオブジェクトには異なる属性があり、異なる操作を実行できます。
さらに、この章の最後では変数やオブジェクトなどの概念についても触れられます。それぞれのオブジェクトには確定した型があり、各変数は特定のオブジェクトを指し示します。