teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

細かい修正

2018/02/04 07:25

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -10,8 +10,8 @@
10
10
  - Python 2系は文字列≠ユニコード文字列、
11
11
  - Python 3系は文字列=ユニコード文字列
12
12
 
13
- という関係があるため、`u"123".isdecimal()`は両方で動きますが(Python 3系では本来`u`は不要)、
13
+ という関係があるため、`u'234'.isdecimal()`は両方で動きますが(Python 3系では本来`u`は不要)、
14
- `"123".isdecimal()`はPython 2系では`AttributeError`になります。
14
+ `'234'.isdecimal()`はPython 2系では`AttributeError`になります。
15
15
 
16
16
  [細かい違い](http://kk6.hateblo.jp/entry/20110526/1306395713)はあるみたいですが、アラビア数字だけならば大差ないはずなので、`.isdigit()`で代用すれば良さそうです。
17
17
 

3

おまけの追記

2018/02/04 07:25

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -13,4 +13,23 @@
13
13
  という関係があるため、`u"123".isdecimal()`は両方で動きますが(Python 3系では本来`u`は不要)、
14
14
  `"123".isdecimal()`はPython 2系では`AttributeError`になります。
15
15
 
16
- [細かい違い](http://kk6.hateblo.jp/entry/20110526/1306395713)はあるみたいですが、アラビア数字だけならば大差ないはずなので、`.isdigit()`で代用すれば良さそうです。
16
+ [細かい違い](http://kk6.hateblo.jp/entry/20110526/1306395713)はあるみたいですが、アラビア数字だけならば大差ないはずなので、`.isdigit()`で代用すれば良さそうです。
17
+
18
+ # おまけ
19
+
20
+ `.isdigit()`だと全角でも`True`になってしまうので、半角のアラビア数字だけにマッチする表現を考えてみました。`.isdigit()`で充分かもしれませんが、参考になれば幸いです。
21
+
22
+ `len(re.findall(r'^[0-9]+$',target)) != 0`
23
+
24
+ 使用例
25
+
26
+ ```Python
27
+ import re
28
+
29
+ target = input()
30
+
31
+ if len(re.findall(r'^[0-9]+$',target)) != 0:
32
+ print('number')
33
+ else:
34
+ print('not number')
35
+ ```

2

細かい修正

2018/02/04 07:21

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -5,12 +5,12 @@
5
5
  - 文字列 -> `.isdecimal()`なし
6
6
  - ユニコード文字列 -> `.isdecimal()`あり
7
7
 
8
- Python 2系は文字列≠ユニコード文字列
8
+ という関係があるみたいです。また
9
- Python 3系は文字列=ユニコード文字列
10
9
 
10
+ - Python 2系は文字列≠ユニコード文字列、
11
- という関係があるみたいです。
11
+ - Python 3系は文字列=ユニコード文字列
12
12
 
13
- よって`u"123".isdecimal()`は両方で動きますが(Python 3系では本来`u`は不要)、
13
+ という関係があるため、`u"123".isdecimal()`は両方で動きますが(Python 3系では本来`u`は不要)、
14
14
  `"123".isdecimal()`はPython 2系では`AttributeError`になります。
15
15
 
16
16
  [細かい違い](http://kk6.hateblo.jp/entry/20110526/1306395713)はあるみたいですが、アラビア数字だけならば大差ないはずなので、`.isdigit()`で代用すれば良さそうです。

1

追記&修正

2018/02/04 07:08

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -1,5 +1,16 @@
1
1
  jupyter notebookのPythonもバージョンは2.7なのでしょうか?
2
2
 
3
- `.isdecimal()`はPython 3系で実装された関数ですから、2.7では動きません。
3
+ ~~`.isdecimal()`はPython 3系で実装された関数ですから、2.7では動きません。~~
4
4
 
5
+ - 文字列 -> `.isdecimal()`なし
6
+ - ユニコード文字列 -> `.isdecimal()`あり
7
+
8
+ Python 2系は文字列≠ユニコード文字列、
9
+ Python 3系は文字列=ユニコード文字列
10
+
11
+ という関係があるみたいです。
12
+
13
+ よって`u"123".isdecimal()`は両方で動きますが(Python 3系では本来`u`は不要)、
14
+ `"123".isdecimal()`はPython 2系では`AttributeError`になります。
15
+
5
- [細かい違い](http://kk6.hateblo.jp/entry/20110526/1306395713)はあるみたいですが、2.7で実行したば`.isdigit()`を使いましょう。
16
+ [細かい違い](http://kk6.hateblo.jp/entry/20110526/1306395713)はあるみたいですが、アラビア数字だなら大差ないはずなので、`.isdigit()`で代用すれば良さそです