くだらないことで、Pythonにハマった話(Tupleのお話)
どーも。ばぁどです。
セキュリティに強いWeb屋を名乗っています。Webアプリケーション開発と脆弱性診断ができます。セキュア開発できます。
とはいえ、業務ではサイバーセキュリティが主になっており、普段はあまりプログラミングを行なっておりません。
なので、GitHubの草生やす作業を復活させようかなと思いました。
そんな、こんなで久々にくだらないことで、pythonにハマってしまったので事例を紹介。
事象
Pythonの文字列の切り取り作業を行なっていたのですが、思ったような挙動になってくれませんでした。
想定していた挙動
>>> 'Sample Text'[:6] 'Sample'
Sample Text
という文字列の0桁目から6桁目の文字列を切り取って'Sample'という文字列を出力するプログラムです。
これだけ見れば、非常にシンプルで、ハマるようなところはありません。
Typoしていたプログラム
>>> 'Sample Text'[:6], ('Sample',)
実際にはまっていたプログラムは上記です。なんとも惜しいことに、文字列の切り取りの最後部分に,
が追加されてしまっています。
非常に見つけにくい、なんともTypoらしい、 Typoだなと反省の日々。
Pythonにおいて、文字列の最後に,
がつくことが、どのような結果を招くのでしょうか?
Tupleでした
Pythonにはいくつかの型があります。
数値を扱う'int型'や、文字列を扱う'str型'、配列を扱うlist型
などがあります。
その中の一つにtuple()
というものがあります。
このtuple()
というのが、list()
と非常に似通っているのですが、list()
とは違い不変な値を扱うのに長けています。
反省
Pythonの基本は勉強していたのですが、プログラムを書くのが久々でstr()
だと思っていたデータが、Tuple()
になっているのに気付くのが遅れてしまいました。
いやー。やっぱりしばらく触っていないと、感が鈍るものですね。
草生やし再開しようと思います。