- 1. 概要
- 2. 判定していないと
- 3. 型の取得
- 4. 参考サイト
1. 概要
厳密に型を使わないとえらいことになったりするのです。
2. 判定していないと
下記のようなソースを書いて。
array = [ 'abc', 'def', 1 ]
for obj in array:
print(obj)
if (obj.startswith('a')):
print(' → a で始まっている')
else:
print(' → a で始まっていない')
実行すると。
abc
→ a で始まっている
def
→ a で始まっていない
1
Traceback (most recent call last):
File "/home/hogehoge/lang/python/string/type01.py", line 6, in <module>
if (obj.startswith('a')):
AttributeError: 'int' object has no attribute 'startswith'
てなことになっちゃいます。
「string」型じゃないものに「startswith()」は、使っちゃだめよってことですな。
3. 型の取得
前項のような場合。
例えば。
array = [ 'abc', 'def', 1 ]
for obj in array:
print(obj)
if (type(obj) is str):
if (obj.startswith('a')):
print(' → a で始まっている')
else:
print(' → a で始まっていない')
else:
print(' → 文字型じゃないのよ')
てな書き方をすれば、結果が。
abc
→ a で始まっている
def
→ a で始まっていない
1
→ 文字型じゃないのよ
となります。
すくなくとも、こけたりは、しません。
4. 参考サイト
本ページは、下記の記事を参考にさせていただきました。
「Pythonで型を取得・判定するtype関数, isinstance関数 | note.nkmk.me」
|
|