python怎么判断输入的是不是数字_Python 判断字符串是否为数字

进一步扩展到全角数字:

# 进一步扩展到全角数字

def is_number(s):

try:

float(s)

return True

except ValueError:

pass

import unicodedata

try:

unicodedata.numeric(s)

return True

except (TypeError, ValueError):

pass

if len(s) < 2:

return False

try:

d = 0

if s.startswith('-'):

s = s[1:]

for c in s:

if c == '-': # 全角减号

return False

if c == '.': # 全角点号

if d > 0:

return False

else:

d = 1

continue

unicodedata.numeric(c)

return True

except (TypeError, ValueError):

pass

return False

# 测试字符串和数字

print(f'{is_number("foo")}')

print(f'{is_number("1") }')

print(f'{is_number("1.3") }')

print(f'{is_number("-1.37") }')

print(f'{is_number("1e3") }')

print(f'{is_number("2.345.6") }')

print(f'{is_number("-5.2-8") }')

print(f'{is_number("52-8") }')

print(f'{is_number("-.5") }')

print(f'{is_number("-5.") }')

print(f'{is_number(".5") }')

# 测试Unicode

# 阿拉伯语 5

print(f'{is_number("٥") }')

# 泰语 2

print(f'{is_number("๒") }')

# 中文数字

print(f'{is_number("四") }')

print(f'{is_number("四卅") }')

# 全角数字

print(f'{is_number("123") }')

print(f'{is_number("-123") }')

print(f'{is_number("-123") }')

print(f'{is_number("12-3") }')

print(f'{is_number("123-") }')

print(f'{is_number("1.23") }')

print(f'{is_number("1.23") }')

print(f'{is_number(".23") }')

print(f'{is_number("-.23") }')

print(f'{is_number("1.23") }')

print(f'{is_number("1.2.3") }')

# 版权号

print(f'{is_number("©") }')

leaf_cq

leaf_cq

all***[email protected]个月前 (08-05)

你可能感兴趣的:(python怎么判断输入的是不是数字_Python 判断字符串是否为数字)