python判断一个字符串是否为整数,python判断是否是整数形式字符串
Python判断字符串是否为整数的方法:1。递归法,可以先根据字符串的第一个字符确定一个整数的正负,然后从右向左遍历字符串;2.非递归方法,通过从左到右遍历字符串来计算整数的值来实现。
本教程运行环境:windows7系统,python3.9版本3.9,戴尔G3电脑。
python判断字符串是否为整数的方法:
方法一:递归法
对于整数,比如111,可以看成11 * 10 ^ 1,11可以看成1 * 10 ^ 1。而-111可以看作是(-11)*10-1,-11可以看作是(-1)*10-1。根据这个特点,我们可以用递归的方法来解决问题,可以先根据字符串的第一个字符来确定整数的正负,然后从右向左遍历字符串。
类别测试:
def __init__(self):
self.flag=无
def getFlag(self):
返回自己的标志
#判断C是否为数字,如果是,返回一个数字并设置flag=True,否则返回False。
def isNumber(self,c):
返回c=0 和c=9
#确定str是否为数字
def strtoint(self,strs,length):
如果长度为1:
if not self . is number(list(strs)[length-1]):
#不是一个数字
打印(“不是数字”)
self.flag=False
返回-1
if list(strs)[0]==-:
return self . str point(strs,length-1)* 10-(ord(list[length-1])-ord( 0 ))
else:
return self . str point(strs,length-1)* 10 ord(list(strs)[length-1])-ord( 0 )
else:
if list(strs)[0]==-:
返回0
else:
if not self . is number(list(strs)[0]):
打印(“不是数字”)
self.flag=False
返回-1
return order(list(strs)[0])-order( 0 )
def strToint(self,s):
self.flag=True
如果s==None或len(s)=0或(list(s)[0]==- and len(s)==1):
打印(“不是数字”)
self.flag=False
返回-1
if列表[0]== :
return self . str point(s[1: len(s)],len(s) - 1)
else:
返回self . str point(s,len(s))方法二:非递归法
先用一个字符的值确定一个整数的正负,然后去掉符号位,把后面的字符串当作正数,处理完成后根据正负返回正确的结果。方法是通过从左到右遍历字符串来计算整数值。以“123”为例,遍历到‘2’时结果为1 * 10 ^ 2=12,遍历到‘3’时结果为12 * 10 ^ 3=123。
类别测试:
def __init__(self):
self.flag=无
def getFlag(self):
返回自己的标志
#判断C是否为数字,如果是,返回True,否则,返回False
def isNumber(self,c):
返回c=0 和c=9
定义strToint(self,strs):
如果strs==None:
self.flag=False
打印(“不是数字”)
返回-1
self.flag=True
res=0
i=0
Minus=False #是负数吗?
list(strs)[I]==-- 3360 #结果是否定的
减=真
i=1
If (strs) [i]== 3360 #结果是正数
i=1
而我贷款(strs):
if self . is number(list(strs)[I]):
RES=RES * 10 order(list(strs)[I])-order( 0 )
else:
self.flag=False
打印(“不是数字”)
返回-1
i=1
return -res if减去else res
if __name__==__main__:
t=测试()
s=-543
打印(t.strToint(s))
s=543
打印(t.strToint(s))
s= 543
打印(t.strToint(s))
s= 43
result=t . str point(s)
if t.getFlag():
打印(结果)相关免费学习推荐:python视频教程
这就是python如何判断一个字符串是否为整数的细节。更多信息请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。