本文摘自php中文网,作者coldplay.xixi,侵删。
python判断字符串是否为整数的方法:首先可以根据字符串的第一个字符确定整数的正负;然后对字符串从右向左遍历,例如111,可以看成【11*10+1】,而11又可以看成【1*10+1】。

本教程操作环境:windows7系统、python3.9版,DELL G3电脑。
python判断字符串是否为整数的方法:
方法一:递归法
对于整数而言,例如111,可以看成11*10+1,而11又可以看成1*10+1。而-111可以看成(-11)*10-1,-11可以看成(-1)*10-1.根据这个特点可以采用递归的方法求解,可以先根据字符串的第一个字符确定整数的正负,接着对字符串从右向左遍历.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 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。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 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如何判断字符串是否为整数的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python语言实现百度语音识别功能的实例
Python安装完后怎么用
Python编译器有哪些
Python怎么批量注释
Python中的%是什么意思
Python中怎样把矩阵转换为列表
Python和selenium开发环境搭建的图文教程
Python读取文本中数据并转化为dataframe的实例_Python
Python 列表推导式使用注意事项
input Python怎么用
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python如何判断字符串是否为整数