やり直しPython3(文字列)

2016-03-30(Wed) by Makoto Yamahira

Python3の勉強(2) 文字列

Python基礎勉強2日目です。今回は文字列について。

基本

Pythonの文字列リテラルはダブルクォートかシングルクォートを利用して書く。 基本は文字列を囲むことで表現する。

    >>> letters1 = 'abc'  
    >>> letters2 = "abc"  

どちらを使っても同じ意味になるが、ダブルクォートやシングルクォート自体を文字として使いたい場合にうまく使うと便利だ。

    >>> letters3 = 'Double quotes: " '  
    >>> letters4 = "Single quotes: ' "  

エスケーブ文字の「\」(バックスラッシュ)を使ってもダブルクォートやシングルクォート文字を利用できる。(日本語環境の多くでは「¥」を使う)

    >>> letters5 = 'I\'m makohira.'
    >>> letters5
    "I'm makohira."

エスケープシーケンス

エスケープシーケンスで特殊文字を表現できる。

エスケープシーケンス 意味
\n 改行
\r キャリッジリターン
\t 水平タブ
\v 垂直タブ
\a ベル
\b バックスペース
\f 改ページ
\\ バックスラッシュ
\' シングルクォート
\" ダブルクォート

型変換

他の型からのキャスト(型変換)にはstr()関数を使う。

    >>> str(1.41421356)
    '1.41421356'

連結と繰り返し

「+」演算子を使うと文字列の連結ができる。

    >>> 'hello, ' + 'makohira'
    'hello, makohira'

「*」演算子を使うと繰り返し文字列を表現できる。

    >>> 'hello ' * 3
    'hello hello hello '

部分文字列の抽出

[]を使うと文字列から文字を取り出すことができる。

    >>> letters = 'hello'  
    >>> c1 = letters[0]  
    >>> c1
    'h'

    >>> c2 = letters[2]  
    >>> c2
    'l'

    >>> c3 = letters[-4]
    >>> c3  
    'e'  (マイナスを使うと最後の文字から数えられる)

スライスを使うと文字列の一部分を取り出すことができる。
書き方は、[start:end:step]の形式。

    >>> letters = '0123456789'
    >>> s1 = letters[2:8:1]
    >>> s1
    '234567'  ('2345678'ではないことに注意)  

    >>> s2 = letters[2:8:2]
    >>> s2
    '246'

    >>> s3 = letters[2:8]
    >>> s3  
    '234567'  (ステップは省略すると1になる)

    >>> s4 = letters[:8]
    >>> s4  
    '01234567'  (スタートは省略すると0になる)

    >>> s5 = letters[2:]
    >>> s5
    '23456789'  (エンドを省略すると最後までになる)

    >>> s6 = letters[-5:-2]
    >>> s6
    '567'

    >>> s7 = letters[-5:0:-1]
    >>> s7  
    '54321'  ('543210'ではないことに注意)

    >>> s8 = letters[-5::-1]
    >>> s8  
    '543210'

トリプルクォート

「'''」または「"""」を使うとエスケープシーケンスを使わずに文字列を表現できる。
始まりと終わりの部分にトリプルクォートをつける。

   >>> letters = '''Hello! I'm makohira.
   ... It's a nice day!'''
   >>> letters  
   "Hello! I'm makohira.\nIt's a nice day!"

長さの取得

組み込み関数のlen()を使って長さを取得できる。

    >>> len('hello')
    5

分割と結合

組み込み関数のsplit()で分割、join()で結合処理ができる。(文字列とリストの変換)

    >>> colors = 'blue,red,yellow,green'
    >>> colors.split(',')
    ['blue', 'red', 'yellow','green']

    >>> animals = ['bird', 'monkey', 'lion', 'python']
    >>> ','.join(animals)
    'bird,monkey,lion,python'

    >>> ' '.join(animals)
    'bird monkey lion python'

文字列関数

文字列関数を使うと多彩な表現ができる。

関数 内容
startswith() 先頭文字列の判定
endswith() 末尾文字列の判定
find() 最初の出現箇所のオフセットを取得
rfind() 最後の出現箇所のオフセットを取得
count() 出現回数のカウント
isalnum() 英数字のみ使われているかどうか判定
strip() 文字列の両端から指定文字を削除
capitalize() 先頭文字のみ大文字にする(タイトルケース)
title() すべての単語をタイトルケースにする
upper() すべての文字を大文字にする
lower() すべての文字を小文字にする
swapcase() 大文字小文字を逆にする
center() 指定した文字数の中でセンタリング
ljust() 指定した文字数の中で左寄せ
rjust() 指定した文字数の中で右寄せ
replace() 部分文字列を置き換える

今日はここまで。

勉強に使っている本はオライリーの「入門Python3」


Comments