ホームページ  >  記事  >  バックエンド開発  >  Python で文字列が整数かどうかを判断する方法

Python で文字列が整数かどうかを判断する方法

coldplay.xixi
coldplay.xixiオリジナル
2021-03-03 11:10:0612390ブラウズ

文字列が整数であるかどうかを判断する Python の方法: まず、文字列の最初の文字に基づいて整数の符号を判断し、次に文字列を右から左に走査します (例: 111)。これは [11 *10 1] として見ることができ、11 は [1*10 1] として見ることができます。

Python で文字列が整数かどうかを判断する方法

このチュートリアルの動作環境: Windows 7 システム、Python バージョン 3.9、DELL G3 コンピューター。

文字列が整数であるかどうかを判断する Python メソッド:

メソッド 1: 再帰的メソッド

整数の場合、Forたとえば、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 >= &#39;0&#39; and c <= &#39;9&#39;
 
    # 判断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] == &#39;-&#39;:
                return self.strtoint(strs, length - 1) * 10 - (ord(list[length - 1]) - ord(&#39;0&#39;))
            else:
                return self.strtoint(strs, length - 1) * 10 + ord(list(strs)[length - 1]) - ord(&#39;0&#39;)
 
        else:
            if list(strs)[0] == &#39;-&#39;:
                return 0
            else:
                if not self.isNumber(list(strs)[0]):
                    print("不是数字")
                    self.flag = False
                    return -1
                return ord(list(strs)[0]) - ord(&#39;0&#39;)
 
    def strToint(self, s):
        self.flag = True
        if s == None or len(s) <= 0 or (list(s)[0] == &#39;-&#39; and len(s) == 1):
            print("不是数字")
            self.flag = False
            return -1
 
        if list(s)[0] == &#39;+&#39;:
            return self.strToint(s[1:len(s)], len(s) - 1)
        else:
            return self.strToint(s, len(s))

#方法 2: 非再帰的方法

まず、文字負の値によって整数の正負を判断し、次に符号ビットを削除し、次の文字列を正の数として扱い、処理後に正に基づいて正しい結果を返します。完成しました。実装方法は、文字列を左から右に走査して整数の値を計算します。「123」を例にすると、「2」まで走査すると結果は 1*10 2=12 となり、「 」まで走査すると結果は 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] == &#39;-&#39;:  # 结果是负数
            minus = True
            i += 1
 
        if list(strs)[i] == &#39;+&#39;:  # 结果是正数
            i += 1
        while i < len(strs):
            if self.isNumber(list(strs)[i]):
                res = res * 10 + ord(list(strs)[i]) - ord(&#39;0&#39;)
            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 で文字列が整数かどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。