表示数值的字符串(python)
2021-05-07 01:27
标签:出现 教程 遍历 ret 资料 tin 分析 strong 字符 一,问题 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 二,分析 表示数值的:"+100" , "5e2" , "-123" , "3.1416","-1E-16" 不表示数值的:"12e" , "1a3.14" , "1.2.3" , "+-5","12e+4.3" 通过观察, 我们发现:第一,要能表示数值,里面的元素只能是‘0到9的数字’ 或者 ‘+ ,-号’ 或者 ‘小数点 . ’或者 ‘E,e ’ 只要出现除此以外的元素,就直接判定False 先全部转成小写 s=s.lower() 然后去遍历元素,看看有没有规定以外的元素出现 for i in s: if i in [‘+‘,‘-‘,‘e‘,‘.‘] continue if i =‘0‘: continue else: return False 第二,看含‘e’量 在这里先介绍一下split()函数 我们看到,根据含e量的不同,可以简单判断出这个字符串是不是False 含e量大于等于2,切出来的长度一定大于等于3,直接False掉 含e量等于1或者0的,继续判断 ss=s.split(‘e‘) if len(ss)>2: retutn False 如果含e量等于1 则s被分成两端,分别看这两段含不含‘+,-’号,在第几位,‘+,-’号不在首位的都直接干掉 在这里介绍一下find()函数,资料来自菜鸟教程 if left_c.find("+") > 0: 第三 检查小数点 看左边的含点量,有两个或两个以上的小数点,直接干掉 lcc = left_c.split(".") 看右边小数点有没有,有的话在不在首位。否则直接干掉 不含e时,比如‘1.2.3’或者‘+-5’ 就要检查正负号在不在首位 小数点有没有多的 注意,12e+4是个数字,他表示12乘以10的4次方 三,代码 表示数值的字符串(python) 标签:出现 教程 遍历 ret 资料 tin 分析 strong 字符 原文地址:https://www.cnblogs.com/buyaodong/p/13187035.html
return False
if left_c.find("-") > 0:
return False
if right_c.find("+") > 0:
return False
if right_c.find("-") > 0:
return False
if len(lcc) > 2:
return False
if right_c.find(".") > 0:
return False
return True