- トップページ
- 特集PC技術
- Pythonを学ぼう
- 第18回 文字列の作成
Pythonを学ぼう
第18回 文字列の作成
1.Pythonの文字列について
これまでの回で文字列は何度も扱ってきました。
'abc'
のように'で囲ったものが文字列です。
Pythonでは、バイト文字列とUnicode文字列を扱うことができます。
Unicode文字列は、英数字以外の日本語などのマルチバイト文字を扱うときに使用します。
2.直接指定して作成
文字列を直接指定して作成する場合、'で囲む方法を含めて次の方法があります。
'作成する文字列'
"作成する文字列"
'''作成する文字列'''
"""作成する文字列"""
"で囲む方法は'と同じ扱いになります。
'''で囲む方法は、文字列中の改行をそのまま含めることができます。
"""で囲む方法は、'''と同じ扱いになります。
また、Unicode文字列を使用する場合は、上記の'や"の前に「u」を付加します。
使用方法は、次のプログラムを見てください。
# coding: utf-8 # 'で囲む場合 a = 'str' print(a) # "で囲む場合 b = "str" print(b) # '''で囲む場合 c = '''s t r''' print(c) # 日本語を扱う場合 print(u'日本語') |
実行結果
str
str
s
t
r
日本語
実行結果より、'''で囲むと改行を含めた文字列を作成できることがわかります。
日本語を表現する場合は、Unicode文字列を使用するため、「u」を付加します。
3.スライスで作成
リストでも扱いましたが、スライスを使用すると、文字列の一部分から新しい文字列を作成できます。
文字列[開始インデックス:終了インデックス:ステップ]
使用方法は、次のプログラムを見てください。
# coding: utf-8 # インデックス1から5未満の文字列を作成 print('abcdefg'[1:5]) # インデックス1から5未満の文字列から1ステップして作成 print('abcdefg'[1:5:2]) |
実行結果
bcde
bd
4.フォーマット文字列から作成
%演算子を用いて、フォーマット文字列を扱うことができます。
format % values
valuesには、タプルや辞書が入ります。
formatには「変換型」を含めると、それに対応するvaluesの値が指定され、
formatに従った文字列を作成します。
変換型の一覧は、次の通りです。
変換型 | 説明 |
---|---|
d | 符号付き10進整数 | i | 符号付き10進整数 | o | 符号なし8進数 | u | 符号なし10進数 | x | 符号なし16進数(小文字) | X | 符号なし16進数(大文字) | e | 指数表記の浮動小数点数(小文字) | E | 指数表記の浮動少数点数(大文字) | f | 10進浮動小数点数 | F | 10進浮動小数点数 | g | 指数部が-4以上か精度以下の場合に"e"、それ以外の場合は"f"と同じ | G | 指数部が-4以上か精度以下の場合に"E"、それ以外の場合は"F"と同じ | c | 文字一文字(整数または一文字からなる文字列を受理) | r | 文字列(Pythonオブジェクトをrepr()で変換) | s | 文字列(Pythonオブジェクトをstr()で変換) | % | 引数を変換せず、返される文字列中では文字"%" |
使用方法は、次のプログラムを見てください。
# coding: utf-8 # タプルを使用して、フォーマット文字列を作成 print('a b %s d %s' % ('c', 'e')) # 辞書を使用して、フォーマット文字列を作成 print('a b %(dir1)s d %(dir2)s' % {'dir1':'c', 'dir2':'e'}) |
実行結果
a b c d e
a b c d e
5.Javaとの比較
Javaのソースコードとの比較をします。
文字列はJavaにはStringクラスがあるため、
このクラスとの比較をします。
Javaを知っている方は参考にしてください。
Python | Java |
---|---|
# coding: utf-8 # 英字の文字列を作成 a = 'str' print(a) # 日本語の文字列を作成 b = u'日本語' print(b) |
public class Java18 { public static void main(String[] args) { // 英字の文字列を作成 String a = "str"; System.out.println(a); // 日本語の文字列を作成 String b = "日本語"; System.out.println(b); } } |
コメントの投稿
トラックバックURL
http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1776