判断一个字符串是否为数字、字母
fastnumbers参考文档: https://fastnumbers.readthedocs.io,
除了提供fast_float,fast_real等函数来加速builtins API外,此包还提供了isreal, isfloat, isint, isintlike等API,方便调用判断输入是否为float或者int。 比调用float函数或者int函数,然后异常报错后得到判断结果(如代码一)更为优雅;
需要注意的是 num_only,str_only并不是指明输入参数 必须数字[0-9]串或者必须是字符串,而是数据类型是数字或者字符串。
代码一:
def isfloat(abc): try: float(abc) return True except: return False print(isfloat("abc")) print(isfloat("-7\n"))
fastnumbers有一例外是会将非ascii码的纯数字也做判断并返回True,所以需要进行过滤;
isfloat, isint, isreal等函数返回True; 叠加判断是否为ascii吗,防止中文、其他语言的中的数字被判断为float类型; isascii代码如代码段二:
if isfloat(segs[0]) and isascii(segs[0]):
代码二:
def is_ascii(str_): try: if str_.encode("ascii"): return True except: return False