ページへ戻る
印刷
Python/文字列の連結
をテンプレートにして作成 ::
NJF Wiki
xpwiki
:Python/文字列の連結 をテンプレートにして作成
開始行:
[[Python]]の文字列の連結は、簡単なものなら+演算子で行いま...
>>> a = "1 " + "2"
>>> a
'1 2'
しかし、+は演算のたびに新しい文字列オブジェクトを生成する...
そのような場合は、たとえばリストやタプルを連結するならjoi...
>>> b = ("This", "is", "a", "pen.")
>>> " ".join(b)
'This is a pen.'
joinは指定された文字を挟んで文字列を連結します。
>>> "|".join(b)
'This|is|a|pen.'
空文字列も使えます。
>>> "".join(b)
'Thisisapen.'
%を使うと文字列を文字列の中に埋め込めます。
>>> "%s pen %s %s ballpoint %s" % b
'This pen is a ballpoint pen.'
これらを使った方が、多くの文字列を連結するときには処理が...
**文字列定義を連続して書くときの注意
文字列の定義は連続して書くとひとつの文字列に連結されます。
>>> a = 'abc' 'defg'
>>> a
'abcdefg'
「\」を使って改行したいときには便利です。
>>> a = 'abc' \
... 'def'
>>> a
'abcdef'
一方で、文字列の配列を定義しようとして、「,」を忘れるとつ...
>>> a = ['a', 'b' 'c']
>>> a[1]
'bc'
わかりにくいバグの原因になるので要注意です。
**Unicodeに関する注意
Unicodeを使う時にはStr型との混在に気をつける必要がありま...
例えば
s = u"これは%sです" % "Python"
print type(s)
結果
<type 'unicode'>
となり、Str型にStr型で扱える文字のみが含まれる場合は、問...
一方、
s = u"これは%sです" % "パイソン"
結果:
File "unicode_test.py", line 12, in <module>
s = u"これは%sです" % "パイソン"
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3...
となり、エラーとなります。
joinでも同じことが言えます。
a = [u"あ",u"い",u"う",u"え",u"お"]
print "ん".join(a)
これは「ん」がUnicodeでないため、エラーになります。
このため、テストの時はたまたま英数しかなくうまくいったの...
Python2.7での文字列の連結では、かならずStrとUnicodeが混在...
またテスト時に可能性があるならマルチバイト文字もテストし...
またはPythonのバージョン3以降を使うと自動で変換してくれる...
終了行:
[[Python]]の文字列の連結は、簡単なものなら+演算子で行いま...
>>> a = "1 " + "2"
>>> a
'1 2'
しかし、+は演算のたびに新しい文字列オブジェクトを生成する...
そのような場合は、たとえばリストやタプルを連結するならjoi...
>>> b = ("This", "is", "a", "pen.")
>>> " ".join(b)
'This is a pen.'
joinは指定された文字を挟んで文字列を連結します。
>>> "|".join(b)
'This|is|a|pen.'
空文字列も使えます。
>>> "".join(b)
'Thisisapen.'
%を使うと文字列を文字列の中に埋め込めます。
>>> "%s pen %s %s ballpoint %s" % b
'This pen is a ballpoint pen.'
これらを使った方が、多くの文字列を連結するときには処理が...
**文字列定義を連続して書くときの注意
文字列の定義は連続して書くとひとつの文字列に連結されます。
>>> a = 'abc' 'defg'
>>> a
'abcdefg'
「\」を使って改行したいときには便利です。
>>> a = 'abc' \
... 'def'
>>> a
'abcdef'
一方で、文字列の配列を定義しようとして、「,」を忘れるとつ...
>>> a = ['a', 'b' 'c']
>>> a[1]
'bc'
わかりにくいバグの原因になるので要注意です。
**Unicodeに関する注意
Unicodeを使う時にはStr型との混在に気をつける必要がありま...
例えば
s = u"これは%sです" % "Python"
print type(s)
結果
<type 'unicode'>
となり、Str型にStr型で扱える文字のみが含まれる場合は、問...
一方、
s = u"これは%sです" % "パイソン"
結果:
File "unicode_test.py", line 12, in <module>
s = u"これは%sです" % "パイソン"
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3...
となり、エラーとなります。
joinでも同じことが言えます。
a = [u"あ",u"い",u"う",u"え",u"お"]
print "ん".join(a)
これは「ん」がUnicodeでないため、エラーになります。
このため、テストの時はたまたま英数しかなくうまくいったの...
Python2.7での文字列の連結では、かならずStrとUnicodeが混在...
またテスト時に可能性があるならマルチバイト文字もテストし...
またはPythonのバージョン3以降を使うと自動で変換してくれる...
ページ名: