>>33
default=0 は判るけど、 errors='ignore' したらその関数の結果はどうなるの?

「実行して例外出たら」というのは、基本的にそういうポリシーでやってる。
なんでそんなポリシーなのかというと、
1. 先行チェック関数と実行関数の二つが必要になると、それだけ要素が増える
2. 先行チェックの関数を用意しても、実行用関数でチェックが不要になるわけではない。
3. 先行チェックだけが必要になる場合はあんまりない。

if int.tryparse(s):
 x = int(s)
else:
 x = 0
と書くのと、
try:
 x = int(s)
except ValueError:
 x = 0
と書くのと比べて、別に格好悪い事なんてなんにもないし。