资讯内容
python怎样判断字符串是否为整数
python判断字符串是否为整数的方法:1、递归法,可以先根据字符串的第一个字符确定整数的正负,接着对字符串从右向左遍历;2、非递归法,实现方法为从左向右遍历字符串计算整数的值。6Ti少儿编程网-https://www.pxcodes.com
6Ti少儿编程网-https://www.pxcodes.com
本教程操作环境:windows7系统、python3.9版,DELL G3电脑。6Ti少儿编程网-https://www.pxcodes.com
python判断字符串是否为整数的方法:6Ti少儿编程网-https://www.pxcodes.com
方法一:递归法6Ti少儿编程网-https://www.pxcodes.com
对于整数而言,例如111,可以看成11*10+1,而11又可以看成1*10+1。而-111可以看成(-11)*10-1,-11可以看成(-1)*10-1.根据这个特点可以采用递归的方法求解,可以先根据字符串的第一个字符确定整数的正负,接着对字符串从右向左遍历.6Ti少儿编程网-https://www.pxcodes.com
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))方法二:非递归法6Ti少儿编程网-https://www.pxcodes.com
首先通过一个字符的值确定整数的正负性,然后去掉符号位,把后面的字符串当做正数来处理,处理完成后再根据正负性返回正确的结果。实现方法为从左向右遍历字符串计算整数的值,以“123”为例,遍历到'2'的时候结果为1*10+2=12,遍历到‘3’的时候结果为12*10+3=123。6Ti少儿编程网-https://www.pxcodes.com
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视频教程6Ti少儿编程网-https://www.pxcodes.com
以上就是python怎样判断字符串是否为整数的详细内容,更多请关注少儿编程网其它相关文章!6Ti少儿编程网-https://www.pxcodes.com
- 上一篇
python中range函数用法是什么
简介python中range函数用法:【range()】函数可创建一个整数列表,一般用在for循环中,函数语法为【range(start,stop[,step])】,其中start是开始计数,stop是停止,step是步长。本教程操作环境:windows7系统、python3.9版,DELLG3电脑。p
- 下一篇
python中spyder怎么安装
简介python中spyder的安装方法:首先登录网址,根据安装的python版本,选择spyder安装包下载;然后将该安装包剪切到python的运行工作目录下;最后输入相关语句打开即可。本教程操作环境:windows7系统、python3.9版,DELLG3电脑。python中spyder的安装方法: