jupyter notebookのPythonもバージョンは2.7なのでしょうか?
.isdecimal()
はPython 3系で実装された関数ですから、2.7では動きません。
- 文字列 ->
.isdecimal()
なし
- ユニコード文字列 ->
.isdecimal()
あり
という関係があるみたいです。また、
- Python 2系は文字列≠ユニコード文字列、
- Python 3系は文字列=ユニコード文字列
という関係があるため、u'234'.isdecimal()
は両方で動きますが(Python 3系では本来u
は不要)、
'234'.isdecimal()
はPython 2系ではAttributeError
になります。
細かい違いはあるみたいですが、アラビア数字だけならば大差ないはずなので、.isdigit()
で代用すれば良さそうです。
おまけ
.isdigit()
だと全角でもTrue
になってしまうので、半角のアラビア数字だけにマッチする表現を考えてみました。.isdigit()
で充分かもしれませんが、参考になれば幸いです。
len(re.findall(r'^[0-9]+$',target)) != 0
使用例
Python
1import re
2
3target = input()
4
5if len(re.findall(r'^[0-9]+$',target)) != 0:
6 print('number')
7else:
8 print('not number')
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/04 06:45 編集
2018/02/04 06:53
2018/02/04 07:31