TL;DR;
>>> ls_a = ['a' 'A']
>>> ls_a
['aA']
はじめに
みなさん、エラーについてどう思ってますか?筆者はエラーが出ると萎えますが、間違ってるところを指摘してくれるし、どうすれば解決する(maybe)かも書いてくれるので、必ずしも嫌いではありません。
>>> ls_a = ['a', 'A]
File "<python-input-10>", line 1
ls_a = ['a', 'A]
^
SyntaxError: unterminated string literal (detected at line 1)
上記の例だと、文字列を '
で閉じ忘れてるって言ってくれてますね。
さて、筆者は競プロ・研究etc で Python
を使うんですよ。そんな中、全然想定と違う動きをすることがありました。
本題
- 2つの
str
を配列に入れて初期化しました。 - その配列の要素を確認してみましょう。
>>> ls_a = ['a' 'A']
>>> ls_a
['aA']
???
え。なんで繋がってるんだ? str
って勝手につなげるの?(エラー吐いてくれないの?)なので、以下のコードを試してみました。
>>> str_b = 'b' 'B'
>>> str_b
'bB'
どうやら、文字列の連結は +
を用いなくても実現できるようです。一見便利な仕様かもしれませんが、配列を初期化するときにカンマを忘れるとバグにつながるかもしれませんね。。。
おわりに
- まあ、
linter
formatter
を入れればこういうことも減らせるかもしれないんですけどね...