91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么判斷字符串是否為整數

發布時間:2021-03-03 11:46:02 來源:億速云 閱讀:1507 作者:小新 欄目:編程語言

小編給大家分享一下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怎么判斷字符串是否為整數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝坻区| 沈丘县| 大同市| 怀宁县| 榆树市| 达孜县| 乌兰县| 仪陇县| 札达县| 芜湖市| 郁南县| 哈密市| 科技| 泗洪县| 隆德县| 珠海市| 陕西省| 岳普湖县| 武冈市| 永顺县| 常熟市| 金坛市| 许昌市| 东阿县| 萍乡市| 浙江省| 康平县| 旅游| 博湖县| 西安市| 榕江县| 莱芜市| 吉安县| 星座| 确山县| 社旗县| 富锦市| 彰化市| 长汀县| 安塞县| 光泽县|