Python怎样辨别字符串是否是整数,方法是啥?
导读:Python怎样辨别字符串是否是整数?因为字符串可以是整字符也可以是数字,因此首先我们需要判断是不是数字,然后再判断整数,那么具体怎样来实现呢?下面给大家介绍了两种方法,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧! 本教程操作环...
Python怎样辨别字符串是否是整数?因为字符串可以是整字符也可以是数字,因此首先我们需要判断是不是数字,然后再判断整数,那么具体怎样来实现呢?下面给大家介绍了两种方法,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!
本教程操作环境:windows7系统、python3.9版,DELL G3电脑。
python判断字符串是否为整数的方法:
方法一:递归法
对于整数而言,例如111,可以看成11*10+1,而11又可以看成1*10+1。而-111可以看成(-11)*10-1,-11可以看成(-1)*10-1.根据这个特点可以采用递归的方法求解,可以先根据字符串的第一个字符确定整数的正负,接着对字符串从右向左遍历.
class Test: def __init__(self): self.flag = None def getFlag(self): return self.flag # 判断c是否是数字,如果是返回数字,且设置flag=True,否则返回False def isNumber(self, c): return c > = '0' and c = '9' # 判断str是否是数字 def strtoint(self, strs, length): if length > 1: if not self.isNumber(list(strs)[length - 1]): # 不是数字 print("不是数字") self.flag = False return -1 if list(strs)[0] == '-': return self.strtoint(strs, length - 1) * 10 - (ord(list[length - 1]) - ord('0')) else: return self.strtoint(strs, length - 1) * 10 + ord(list(strs)[length - 1]) - ord('0') else: if list(strs)[0] == '-': return 0 else: if not self.isNumber(list(strs)[0]): print("不是数字") self.flag = False return -1 return ord(list(strs)[0]) - ord('0') def strToint(self, s): self.flag = True if s == None or len(s) = 0 or (list(s)[0] == '-' and len(s) == 1): print("不是数字") self.flag = False return -1 if list(s)[0] == '+': return self.strToint(s[1:len(s)], len(s) - 1) else: return self.strToint(s, len(s))
方法二:非递归法
首先通过一个字符的值确定整数的正负性,然后去掉符号位,把后面的字符串当做正数来处理,处理完成后再根据正负性返回正确的结果。实现方法为从左向右遍历字符串计算整数的值,以“123”为例,遍历到'2'的时候结果为1*10+2=12,遍历到‘3’的时候结果为12*10+3=123。
class Test: def __init__(self): self.flag = None def getFlag(self): return self.flag # 判断c是否是数字,如果是返回True,否则返回False def isNumber(self, c): return c > = "0" and c = "9" def strToint(self, strs): if strs == None: self.flag = False print("不是数字") return -1 self.flag = True res = 0 i = 0 minus = False # 是否是负数 if list(strs)[i] == '-': # 结果是负数 minus = True i += 1 if list(strs)[i] == '+': # 结果是正数 i += 1 while i len(strs): if self.isNumber(list(strs)[i]): res = res * 10 + ord(list(strs)[i]) - ord('0') else: self.flag = False print("不是数字") return -1 i += 1 return -res if minus else res if __name__ == "__main__": t = Test() s = "-543" print(t.strToint(s)) s = "543" print(t.strToint(s)) s = "+543" print(t.strToint(s)) s = "++43" result = t.strToint(s) if t.getFlag(): print(result)
以上就是Python怎样辨别字符串是否是整数的方法,上述两个方法和示例具有一定的参考价值,有需要的朋友可以了解看看,希望对大家学习Python有帮助,想要了解更多可以继续浏览网络其他相关的文章。
文本转载自PHP中文网
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Python怎样辨别字符串是否是整数,方法是啥?
本文地址: https://pptw.com/jishu/651144.html