Python isdigitの動き
先生に教えてもらった内容が面白かったので、覚書です。
やり方だけ覚えて自分で検証した内容なので、「ここ間違ってる」と気づいた方はぜひご一報をば。
isdigitは「str型」の「整数」をTrue ,Falsで返す。
特徴
・str型の数字(整数)のみであればTrue。(0もTrue。ただし、0始まりの数字はエラー)
・str型の数字でも、負の数はFalse。(マイナスが文字とみなされている?)
・str型の数字でも、少数はFalse。(小数点以下が0でもFalse)
・str型の数字でも、文字や記号が混ざるとFalse。(演算記号もFalse)
・str型、int型共に、0始まりの数字はSyntaxError。
・’’はFalse。
・文字はFalse。
・int型の数字はSyntaxError。(計算結果含む)
・0以外の、0始まりの数字は、型によらずAttributeError。
’’’
print('1'.isdigit()) #True
print('100'.isdigit()) #True
print('0'.isdigit()) #True
print('a'.isdigit()) #False
print('10.0'.isdigit()) #False
print('2*3'.isdigit()) #False
print(''.isdigit()) #False
print('11a'.isdigit()) #False
print('-1'.isdigit()) #False
print(1.isdigit()) # SyntaxError: invalid syntax
print(5%3.isdigit()) # SyntaxError: invalid syntax
print(3+4.isdigit()) #SyntaxError: invalid syntax
print(01.isdigit()) #SyntaxError: invalid character in identifier
print('01'.isdigit()) #SyntaxError: invalid character in identifier
print('0.1'.isdigit()) # AttributeError: 'float' object has no attribute 'isdigit'
print(0.1.isdigit()) # AttributeError: 'float' object has no attribute 'isdigit'
’’’
以上。