ばぁど・うぉっちんぐ

セキュリティに強いWeb屋。自由と春を求めて羽ばたく渡り鳥。

このブログはGoogle Analyticsを利用しています

くだらないことで、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でした

docs.python.org

Pythonにはいくつかの型があります。 数値を扱う'int型'や、文字列を扱う'str型'、配列を扱うlist型などがあります。

その中の一つにtuple()というものがあります。

このtuple()というのが、list()と非常に似通っているのですが、list()とは違い不変な値を扱うのに長けています。

反省

Pythonの基本は勉強していたのですが、プログラムを書くのが久々でstr()だと思っていたデータが、Tuple()になっているのに気付くのが遅れてしまいました。

いやー。やっぱりしばらく触っていないと、感が鈍るものですね。

草生やし再開しようと思います。