基于python实现判断字符串是否数字算法
作者:anne的夏天 发布时间:2022-10-15 00:46:58
标签:python,判断,字符串,算法
算法1
1、分小数和整数:如果小数点个数为1,则可能是小数。如小数点个数为0,则可能是整数。小数点个数非0也非1,那么就不是数字。
2、如果是小数,再分正数和负数的情况:如果首位为负号,则可能是负小数。如果首位不为负号,则可能是正小数。
1)如果首位为负号,则去掉负号。
2)如果首位不为负号;或者是首位为负号,去掉首位负号之后。则判断是否为是否为“.”,如果是,那么就不是数字,如果不是,就去掉"."
3)再判断剩下字符是否都在"0123456789"内,如果不都在则不是数字,否则就是数字
3、如果是整数,也同样分正数和负数的情况。如果首位为负号,则可能是负整数,如果首位不为负号,则可能是正整数。
1)如果首位诶负号,则去掉负号。
2)如果首位不为负号;或者是首位为负号,去掉首位负号之后。判断剩下字符是否都在"0123456789"内,如果不都在则不是数字,否则就是数字
#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"))
算法2
1、判断首位是否是负号或者数字,如果不是,则不是数字。如果是,则可能是数字。
2、判断"."和"-"的个数是否都小于等于1,如果不是,则不是数字,如果是,则可能是数字。
3、去掉"."和"-" 。
4、判断剩下的字符是否都在"0123456789"内,如果不都在则不是数字,否则就是数字
#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"))
来源:https://www.cnblogs.com/anne32184/p/13258653.html
0
投稿
猜你喜欢
- 示例代码: BulkStockBll bll = new BulkStockBll(); DataSet ds = bll.GetBulkS
- Sun周三宣布,准备以10亿美元收购MySQL开源数据库公司。据悉,Sun将支付大约8亿美元现金给MySQL,以获得其私募股票,另外,Sun
- 在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这
- 一、前言相关知识来自《python算法设计与分析》。初级排序算法是指几种较为基础且容易理解的排序算法。初级排序算法包括插入排序、选择排序和冒
- Session StaticObjects 集合StaticObjects 集合包含 Session 对象范围中用 <OBJECT&g
- 北京时间2月15日据国外媒体报道,美国知名sns网站Facebook全球活跃用户量已突破1.75亿大关。数据显示,全球20%的网民都使用Fa
- 基于的phantomjs的自动化,会出现1.flash不支持2.部分基于view的按钮点不到,部分按钮是基于flash的(尤其是在于上传按钮
- 在蓝色看到的几个js日历代码,整理了一下。大家可以用在blog上,或者可以用在表单的日期类型的数据选择中,方便大家填写日期。1.动感的日历,
- 数据库镜像方案有两种镜像运行模式。一种是“高安全性模式”,它支持同步操作。在高安全性模式下,当会话开
- 最最简单的操作import numpy as npimport matplotlib.pyplot as pltfig = plt.figu
- 对于access数据库的日期时间类型字段存储的日期,直接从数据库中读出显示的效果是带时间的如,2009-06-13 18:00 ,如果只是希
- 在TypeScript 项目中,我们经常需要使用声明一系列的ts类型。然而,手动写的效率实在太低,编写一个自动生成ts类型的工具可以解放生产
- 今天帮一同学导入一个excel数据,我把excel保存为txt格式,然后建表导入,失败!分隔符格式不匹配,无法导入!!!!怎么看两边都是\t
- 1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表
- 简介  在现在的移动端App中,由于开发效率、需求频繁变更的需求情况下,经常有相关的运营需求,经常要进行更新,如果全部采用
- 如果你是个赛车手,并且按一下按钮就能够立即更换引擎而不需要把车开到车库里去换,那会是什么感觉呢?MySQL数据库为开发人员所做的就好像是按按
- 实例如下所示:from xml.etree.cElementTree import ElementTree,Elementimport xl
- 如今,互联网越来越走近我们的生活,网上冲浪也渐渐成为我们生活不可缺少的一部分。网络世界五彩缤纷,涌现出大量优秀精美的网页。大量网络信息的呈现
- phpinfo函数phpinfo函数 PHP中提供了PHPInfo()函数,该函数返回 PHP 的所有信息,包括了 PHP 的编译选项及扩充
- python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。例如,在py脚本所在目录中,有如下文件:readabili