基于python实现判断字符串是否数字算法

(编辑:jimmy 日期: 2025/11/4 浏览:2)

算法1

1、分小数和整数:如果小数点个数为1,则可能是小数。如小数点个数为0,则可能是整数。小数点个数非0也非1,那么就不是数字。

2、如果是小数,再分正数和负数的情况:如果首位为负号,则可能是负小数。如果首位不为负号,则可能是正小数。

1)如果首位为负号,则去掉负号。

2)如果首位不为负号;或者是首位为负号,去掉首位负号之后。则判断是否为是否为“.”,如果是,那么就不是数字,如果不是,就去掉"."

3)再判断剩下字符是否都在"0123456789"内,如果不都在则不是数字,否则就是数字

3、如果是整数,也同样分正数和负数的情况。如果首位为负号,则可能是负整数,如果首位不为负号,则可能是正整数。

1)如果首位诶负号,则去掉负号。

2)如果首位不为负号;或者是首位为负号,去掉首位负号之后。判断剩下字符是否都在"0123456789"内,如果不都在则不是数字,否则就是数字

基于python实现判断字符串是否数字算法

 #encoding=utf-8
def is_number(s):
  if s.count(".")==1:  #小数的判断
    if s[0]=="-":
      s=s[1:]
    if s[0]==".":
      return False
    s=s.replace(".","")
    for i in s:
      if i not in "0123456789":
        return False
    else:        #这个else与for对应的
      return True
  elif s.count(".")==0:  #整数的判断
    if s[0]=="-":
      s=s[1:]
    for i in s:
      if i not in "0123456789":
        return False
    else:
      return True
  else:
    return False
print(is_number("1334345345"))
print(is_number("1.12344565"))
print(is_number("-14344343"))
print(is_number("-1.123456"))
print("**********************")
print(is_number("abc"))
print(is_number("1.32.2"))
print(is_number(".2344"))
print(is_number("1234a"))
print(is_number("--1.1"))
print(is_number("--1abc"))

基于python实现判断字符串是否数字算法

算法2

1、判断首位是否是负号或者数字,如果不是,则不是数字。如果是,则可能是数字。

2、判断"."和"-"的个数是否都小于等于1,如果不是,则不是数字,如果是,则可能是数字。

3、去掉"."和"-" 。

4、判断剩下的字符是否都在"0123456789"内,如果不都在则不是数字,否则就是数字

基于python实现判断字符串是否数字算法

#encoding=utf-8
def is_number(s):
  if s[0]=="-" or s[0] in "0123456789":
    if s.count(".")<=1 and s.count("-")<=1:
      s=s.replace("-","").replace(".","")
      #print (s)
      for i in s:
        if i not in "0123456789":
          return False
      else:        #这个else与for对应
        return True
    else:
      return False 
  else:
    return False
print(is_number("1334345345"))
print(is_number("1.12344565"))
print(is_number("-14344343"))
print(is_number("-1.123456"))
print("**********************")
print(is_number("abc"))
print(is_number("1.32.2"))
print(is_number(".2344"))
print(is_number("1234a"))
print(is_number("--1.1"))
print(is_number("--1abc"))

基于python实现判断字符串是否数字算法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?