python怎么判断字符串是否为整数

小编给大家分享一下python怎么判断字符串是否为整数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

成都创新互联是一家集网站建设,魏都企业网站建设,魏都品牌网站建设,网站定制,魏都网站建设报价,网络营销,网络优化,魏都网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

python判断字符串是否为整数的方法:首先可以根据字符串的第一个字符确定整数的正负;然后对字符串从右向左遍历,例如111,可以看成【11*10+1】,而11又可以看成【1*10+1】。

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怎么判断字符串是否为整数
链接URL:http://azwzsj.com/article/jeophh.html